aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-07-12 02:33:09 +0100
committerJustin Clark-Casey (justincc)2011-07-12 02:33:09 +0100
commitdf0e5cc9fe9b0851ae5442bdeeb49ab7778d5fe1 (patch)
tree1435bbc275609382086cd57c905b85f4bac67cb2 /OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
parentFix permissions problem where newly uploaded meshes rezzed from inventory cou... (diff)
downloadopensim-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.cs21
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
861Console.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
1327Console.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
1949Console.WriteLine("changesize 1"); 1950Console.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
2062Console.WriteLine("changeshape needed meshing"); 2063Console.WriteLine("changeshape needed meshing");
2063#endif 2064#endif