diff options
-rw-r--r-- | OpenSim/Region/Application/OpenSimMain.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 23 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 12 |
3 files changed, 30 insertions, 7 deletions
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index e3c326b..7efe408 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -213,7 +213,7 @@ namespace OpenSim | |||
213 | { | 213 | { |
214 | m_sandbox = !startupConfig.GetBoolean("gridmode", false); | 214 | m_sandbox = !startupConfig.GetBoolean("gridmode", false); |
215 | m_physicsEngine = startupConfig.GetString("physics", "basicphysics"); | 215 | m_physicsEngine = startupConfig.GetString("physics", "basicphysics"); |
216 | m_meshEngineName = startupConfig.GetString("meshing", "Meshmerizer"); | 216 | m_meshEngineName = startupConfig.GetString("meshing", "ZeroMesher"); |
217 | m_verbose = startupConfig.GetBoolean("verbose", true); | 217 | m_verbose = startupConfig.GetBoolean("verbose", true); |
218 | m_physicalPrim = startupConfig.GetBoolean("physical_prim", true); | 218 | m_physicalPrim = startupConfig.GetBoolean("physical_prim", true); |
219 | m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); | 219 | m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 646ccb5..2ba8827 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -308,7 +308,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
308 | p = (OdePrim) prim; | 308 | p = (OdePrim) prim; |
309 | p.disableBody(); | 309 | p.disableBody(); |
310 | } | 310 | } |
311 | d.GeomDestroy(((OdePrim)prim).prim_geom); | 311 | if (((OdePrim)prim).prim_geom != null) |
312 | { | ||
313 | if (((OdePrim)prim).prim_geom != (IntPtr) 0) | ||
314 | d.GeomDestroy(((OdePrim)prim).prim_geom); | ||
315 | } | ||
312 | _prims.Remove((OdePrim)prim); | 316 | _prims.Remove((OdePrim)prim); |
313 | 317 | ||
314 | } | 318 | } |
@@ -1181,7 +1185,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1181 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); | 1185 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); |
1182 | // createmesh returns null when it's a shape that isn't a cube. | 1186 | // createmesh returns null when it's a shape that isn't a cube. |
1183 | if (mesh != null) | 1187 | if (mesh != null) |
1184 | setMesh(_parent_scene, mesh); | 1188 | { |
1189 | setMesh(_parent_scene, mesh); | ||
1190 | } | ||
1191 | else | ||
1192 | { | ||
1193 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); | ||
1194 | } | ||
1185 | } else { | 1195 | } else { |
1186 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); | 1196 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); |
1187 | 1197 | ||
@@ -1228,7 +1238,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1228 | if (this._parent_scene.needsMeshing(_pbs)) | 1238 | if (this._parent_scene.needsMeshing(_pbs)) |
1229 | { | 1239 | { |
1230 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); | 1240 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); |
1231 | setMesh(_parent_scene, mesh); | 1241 | if (mesh != null) |
1242 | { | ||
1243 | setMesh(_parent_scene, mesh); | ||
1244 | } | ||
1245 | else | ||
1246 | { | ||
1247 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); | ||
1248 | } | ||
1232 | } else { | 1249 | } else { |
1233 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); | 1250 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); |
1234 | } | 1251 | } |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 1a61425..43af529 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -6,11 +6,15 @@ gridmode = false | |||
6 | ; sticking to the basic shapes the engine does support. Usually this is only a box. | 6 | ; sticking to the basic shapes the engine does support. Usually this is only a box. |
7 | ; Meshmerizer gives a better handling of complex prims by using triangle meshes. | 7 | ; Meshmerizer gives a better handling of complex prims by using triangle meshes. |
8 | ; Note, that only ODE physics currently deals with meshed prims in a satisfactoring way | 8 | ; Note, that only ODE physics currently deals with meshed prims in a satisfactoring way |
9 | ; ZeroMesher currently has a memory locking issue. | 9 | ; |
10 | ; meshing = ZeroMesher | 10 | meshing = ZeroMesher |
11 | meshing = Meshmerizer | 11 | ;meshing = Meshmerizer |
12 | 12 | ||
13 | ; Choose one of the physics engines below | ||
13 | physics = basicphysics | 14 | physics = basicphysics |
15 | ;physics = OpenDynamicsEngine | ||
16 | ;physics = modified_BulletX | ||
17 | |||
14 | ; Prim Storage | 18 | ; Prim Storage |
15 | ; if you would like to use sqlite uncomment the following line (and | 19 | ; if you would like to use sqlite uncomment the following line (and |
16 | ; comment the NullStorage line) | 20 | ; comment the NullStorage line) |
@@ -24,6 +28,8 @@ serverside_object_permissions = false | |||
24 | ; to try sqlite as the asset database , comment out the above line, and uncomment following one | 28 | ; to try sqlite as the asset database , comment out the above line, and uncomment following one |
25 | asset_database = "sqlite" | 29 | asset_database = "sqlite" |
26 | verbose = true | 30 | verbose = true |
31 | |||
32 | ; if you would like to allow prim to be physical and move by physics with the physical checkbox in the client set this to true. | ||
27 | physical_prim = true | 33 | physical_prim = true |
28 | 34 | ||
29 | [StandAlone] | 35 | [StandAlone] |