diff options
author | Justin Clark-Casey (justincc) | 2011-07-12 02:33:09 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-07-12 02:33:09 +0100 |
commit | df0e5cc9fe9b0851ae5442bdeeb49ab7778d5fe1 (patch) | |
tree | 1435bbc275609382086cd57c905b85f4bac67cb2 /OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |
parent | Fix permissions problem where newly uploaded meshes rezzed from inventory cou... (diff) | |
download | opensim-SC_OLD-df0e5cc9fe9b0851ae5442bdeeb49ab7778d5fe1.zip opensim-SC_OLD-df0e5cc9fe9b0851ae5442bdeeb49ab7778d5fe1.tar.gz opensim-SC_OLD-df0e5cc9fe9b0851ae5442bdeeb49ab7778d5fe1.tar.bz2 opensim-SC_OLD-df0e5cc9fe9b0851ae5442bdeeb49ab7778d5fe1.tar.xz |
When a mesh object is added to a scene, delay adding the physics actor until the sculpt data has been added to the shape (possibly via an async asset service request)
This prevents spurious 'no asset data' for meshes added on startup.
Diffstat (limited to 'OpenSim/Region/Physics/OdePlugin/ODEPrim.cs')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 123c8ff..56e3b7e 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -638,7 +638,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
638 | float profileEnd; | 638 | float profileEnd; |
639 | 639 | ||
640 | if (_pbs.PathCurve == (byte)Extrusion.Straight || _pbs.PathCurve == (byte)Extrusion.Flexible) | 640 | if (_pbs.PathCurve == (byte)Extrusion.Straight || _pbs.PathCurve == (byte)Extrusion.Flexible) |
641 | { | 641 | { |
642 | taperX1 = _pbs.PathScaleX * 0.01f; | 642 | taperX1 = _pbs.PathScaleX * 0.01f; |
643 | if (taperX1 > 1.0f) | 643 | if (taperX1 > 1.0f) |
644 | taperX1 = 2.0f - taperX1; | 644 | taperX1 = 2.0f - taperX1; |
@@ -648,9 +648,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
648 | if (taperY1 > 1.0f) | 648 | if (taperY1 > 1.0f) |
649 | taperY1 = 2.0f - taperY1; | 649 | taperY1 = 2.0f - taperY1; |
650 | taperY = 1.0f - taperY1; | 650 | taperY = 1.0f - taperY1; |
651 | } | 651 | } |
652 | else | 652 | else |
653 | { | 653 | { |
654 | taperX = _pbs.PathTaperX * 0.01f; | 654 | taperX = _pbs.PathTaperX * 0.01f; |
655 | if (taperX < 0.0f) | 655 | if (taperX < 0.0f) |
656 | taperX = -taperX; | 656 | taperX = -taperX; |
@@ -660,9 +660,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
660 | if (taperY < 0.0f) | 660 | if (taperY < 0.0f) |
661 | taperY = -taperY; | 661 | taperY = -taperY; |
662 | taperY1 = 1.0f - taperY; | 662 | taperY1 = 1.0f - taperY; |
663 | 663 | } | |
664 | } | ||
665 | |||
666 | 664 | ||
667 | volume *= (taperX1 * taperY1 + 0.5f * (taperX1 * taperY + taperX * taperY1) + 0.3333333333f * taperX * taperY); | 665 | volume *= (taperX1 * taperY1 + 0.5f * (taperX1 * taperY + taperX * taperY1) + 0.3333333333f * taperX * taperY); |
668 | 666 | ||
@@ -859,7 +857,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
859 | 857 | ||
860 | public void ProcessTaints(float timestep) | 858 | public void ProcessTaints(float timestep) |
861 | { | 859 | { |
862 | //Console.WriteLine("ProcessTaints for " + Name); | 860 | #if SPAM |
861 | Console.WriteLine("ZProcessTaints for " + Name); | ||
862 | #endif | ||
863 | if (m_taintadd) | 863 | if (m_taintadd) |
864 | { | 864 | { |
865 | changeadd(timestep); | 865 | changeadd(timestep); |
@@ -1323,7 +1323,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1323 | 1323 | ||
1324 | public void CreateGeom(IntPtr m_targetSpace, IMesh _mesh) | 1324 | public void CreateGeom(IntPtr m_targetSpace, IMesh _mesh) |
1325 | { | 1325 | { |
1326 | //Console.WriteLine("CreateGeom:"); | 1326 | #if SPAM |
1327 | Console.WriteLine("CreateGeom:"); | ||
1328 | #endif | ||
1327 | if (_mesh != null) | 1329 | if (_mesh != null) |
1328 | { | 1330 | { |
1329 | setMesh(_parent_scene, _mesh); | 1331 | setMesh(_parent_scene, _mesh); |
@@ -1944,7 +1946,6 @@ Console.WriteLine(" JointCreateFixed"); | |||
1944 | if (_parent_scene.needsMeshing(_pbs)) | 1946 | if (_parent_scene.needsMeshing(_pbs)) |
1945 | mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); | 1947 | mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); |
1946 | 1948 | ||
1947 | //IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); | ||
1948 | #if SPAM | 1949 | #if SPAM |
1949 | Console.WriteLine("changesize 1"); | 1950 | Console.WriteLine("changesize 1"); |
1950 | #endif | 1951 | #endif |
@@ -2056,8 +2057,8 @@ Console.WriteLine("changesize 2"); | |||
2056 | if (IsPhysical) | 2057 | if (IsPhysical) |
2057 | meshlod = _parent_scene.MeshSculptphysicalLOD; | 2058 | meshlod = _parent_scene.MeshSculptphysicalLOD; |
2058 | 2059 | ||
2059 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); | ||
2060 | // createmesh returns null when it doesn't mesh. | 2060 | // createmesh returns null when it doesn't mesh. |
2061 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size, meshlod, IsPhysical); | ||
2061 | #if SPAM | 2062 | #if SPAM |
2062 | Console.WriteLine("changeshape needed meshing"); | 2063 | Console.WriteLine("changeshape needed meshing"); |
2063 | #endif | 2064 | #endif |