aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-12 16:22:23 +0000
committerTeravus Ovares2007-11-12 16:22:23 +0000
commit9b6e747d789bfc1ba0a193f7b5f8a02f19bf6654 (patch)
tree0ae34d9fbd4b464ab6a45e8cadef81c6f82ab606
parentset svn:eol-style, reset default config (diff)
downloadopensim-SC-9b6e747d789bfc1ba0a193f7b5f8a02f19bf6654.zip
opensim-SC-9b6e747d789bfc1ba0a193f7b5f8a02f19bf6654.tar.gz
opensim-SC-9b6e747d789bfc1ba0a193f7b5f8a02f19bf6654.tar.bz2
opensim-SC-9b6e747d789bfc1ba0a193f7b5f8a02f19bf6654.tar.xz
* Sets ZeroMesher as default. (If you want to cut and hollow, you'll need to uncomment the Meshmerizer in OpenSim.ini)
* Fixes a geometry issue in ODE when using ZeroMesher
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs2
-rw-r--r--OpenSim/Region/Physics/OdePlugin/OdePlugin.cs23
-rw-r--r--bin/OpenSim.ini.example12
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 10meshing = ZeroMesher
11meshing = Meshmerizer 11;meshing = Meshmerizer
12 12
13; Choose one of the physics engines below
13physics = basicphysics 14physics = 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
25asset_database = "sqlite" 29asset_database = "sqlite"
26verbose = true 30verbose = 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.
27physical_prim = true 33physical_prim = true
28 34
29[StandAlone] 35[StandAlone]