diff options
author | Teravus Ovares | 2007-11-06 17:19:10 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-11-06 17:19:10 +0000 |
commit | 919118f0ef67d188753ac551414951ed653e814b (patch) | |
tree | 8074baf183af7ec278914eb1e938822dd139730c | |
parent | * Added better logging to AssetCache (diff) | |
download | opensim-SC-919118f0ef67d188753ac551414951ed653e814b.zip opensim-SC-919118f0ef67d188753ac551414951ed653e814b.tar.gz opensim-SC-919118f0ef67d188753ac551414951ed653e814b.tar.bz2 opensim-SC-919118f0ef67d188753ac551414951ed653e814b.tar.xz |
* fix for Bug 563
* fix for ODE geoms not getting disposed of properly when resizing.
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/Meshing/Meshmerizer.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/OdePlugin/Meshing/Meshmerizer.cs index 2a304cb..37fbb8a 100644 --- a/OpenSim/Region/Physics/OdePlugin/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/OdePlugin/Meshing/Meshmerizer.cs | |||
@@ -361,7 +361,11 @@ namespace OpenSim.Region.Physics.OdePlugin.Meshing | |||
361 | CalcNormals(mesh); | 361 | CalcNormals(mesh); |
362 | break; | 362 | break; |
363 | default: | 363 | default: |
364 | mesh = null; | 364 | mesh = CreateBoxMesh(primName, primShape, size); |
365 | CalcNormals(mesh); | ||
366 | //Set default mesh to cube otherwise it'll return | ||
367 | // null and crash on the 'setMesh' method in the physics plugins. | ||
368 | //mesh = null; | ||
365 | break; | 369 | break; |
366 | } | 370 | } |
367 | 371 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 4bd36aa..8b8aac6 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -1086,9 +1086,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1086 | // Construction of new prim | 1086 | // Construction of new prim |
1087 | if (this._parent_scene.needsMeshing(_pbs)) | 1087 | if (this._parent_scene.needsMeshing(_pbs)) |
1088 | { | 1088 | { |
1089 | 1089 | ||
1090 | |||
1090 | // Don't need to re-enable body.. it's done in SetMesh | 1091 | // Don't need to re-enable body.. it's done in SetMesh |
1091 | Mesh mesh = Meshmerizer.CreateMesh(oldname, _pbs, _size); | 1092 | Mesh mesh = Meshmerizer.CreateMesh(oldname, _pbs, _size); |
1093 | // createmesh returns null when it's a shape that isn't a cube. | ||
1094 | if (mesh != null) | ||
1092 | setMesh(_parent_scene, mesh); | 1095 | setMesh(_parent_scene, mesh); |
1093 | } else { | 1096 | } else { |
1094 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); | 1097 | prim_geom = d.CreateBox(_parent_scene.space, _size.X, _size.Y, _size.Z); |