aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim.Physics
diff options
context:
space:
mode:
authorgareth2007-03-26 00:27:22 +0000
committergareth2007-03-26 00:27:22 +0000
commit95e45e5b6379ffece7c51ec1f59822c473b7b859 (patch)
tree2b9ec09c591bcdd883da7dc1f323520c617ede2e /OpenSim.Physics
parentHopefully fixed the texture uploading and the crashing when a prim with a upl... (diff)
downloadopensim-SC_OLD-95e45e5b6379ffece7c51ec1f59822c473b7b859.zip
opensim-SC_OLD-95e45e5b6379ffece7c51ec1f59822c473b7b859.tar.gz
opensim-SC_OLD-95e45e5b6379ffece7c51ec1f59822c473b7b859.tar.bz2
opensim-SC_OLD-95e45e5b6379ffece7c51ec1f59822c473b7b859.tar.xz
Added height field building to ODE plugin
Diffstat (limited to 'OpenSim.Physics')
-rw-r--r--OpenSim.Physics/OdePlugin/OdePlugin.cs22
1 files changed, 20 insertions, 2 deletions
diff --git a/OpenSim.Physics/OdePlugin/OdePlugin.cs b/OpenSim.Physics/OdePlugin/OdePlugin.cs
index cb96533..3337a37 100644
--- a/OpenSim.Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim.Physics/OdePlugin/OdePlugin.cs
@@ -27,6 +27,7 @@
27using System; 27using System;
28using System.Collections.Generic; 28using System.Collections.Generic;
29using OpenSim.Physics.Manager; 29using OpenSim.Physics.Manager;
30using Ode.NET;
30 31
31namespace OpenSim.Physics.OdePlugin 32namespace OpenSim.Physics.OdePlugin
32{ 33{
@@ -69,10 +70,21 @@ namespace OpenSim.Physics.OdePlugin
69 70
70 public class OdeScene :PhysicsScene 71 public class OdeScene :PhysicsScene
71 { 72 {
72 73 private IntPtr world;
74 private IntPtr space;
75 private IntPtr contactgroup;
76 private double[] _heightmap;
77
73 public OdeScene() 78 public OdeScene()
74 { 79 {
75 80 world = d.WorldCreate();
81 space = d.HashSpaceCreate(IntPtr.Zero);
82 contactgroup = d.JointGroupCreate(0);
83 d.WorldSetGravity(world, 0.0f, 0.0f, -0.5f);
84 d.WorldSetCFM(world, 1e-5f);
85 d.WorldSetAutoDisableFlag(world, true);
86 d.WorldSetContactMaxCorrectingVel(world, 0.1f);
87 d.WorldSetContactSurfaceLayer(world, 0.001f);
76 } 88 }
77 89
78 public override PhysicsActor AddAvatar(PhysicsVector position) 90 public override PhysicsActor AddAvatar(PhysicsVector position)
@@ -117,6 +129,12 @@ namespace OpenSim.Physics.OdePlugin
117 129
118 public override void SetTerrain(float[] heightMap) 130 public override void SetTerrain(float[] heightMap)
119 { 131 {
132 for(int i=0; i<65536; i++) {
133 this._heightmap[i]=(double)heightMap[i];
134 }
135 IntPtr HeightmapData = d.GeomHeightfieldDataCreate();
136 d.GeomHeightfieldDataBuildDouble(HeightmapData,_heightmap,1,256,256,256,256,1.0f,0.0f,2.0f,0);
137 d.CreateHeightfield(space, HeightmapData, 0);
120 } 138 }
121 } 139 }
122 140