aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
diff options
context:
space:
mode:
authorRobert Adams2013-01-31 10:26:53 -0800
committerRobert Adams2013-01-31 15:56:02 -0800
commited71c939fc22059b03572fe6380fcc754c89a284 (patch)
treeb10e0be30b391e0e90c855f4cf671fa42d4faf16 /OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
parentBulletSim: clean up TargetVelocity implementation by using the default defn i... (diff)
downloadopensim-SC-ed71c939fc22059b03572fe6380fcc754c89a284.zip
opensim-SC-ed71c939fc22059b03572fe6380fcc754c89a284.tar.gz
opensim-SC-ed71c939fc22059b03572fe6380fcc754c89a284.tar.bz2
opensim-SC-ed71c939fc22059b03572fe6380fcc754c89a284.tar.xz
BulletSim: make sure vehicle physical properties are set when going
physical by delaying setting until pre-step time. Change vehicle.Refresh() to schedule the pre-step setting. Comments and updating of TODO list.
Diffstat (limited to '')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs11
1 files changed, 5 insertions, 6 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs b/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
index 9fbfcdc..e2daa72 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs
@@ -116,8 +116,7 @@ public sealed class BSShapeCollection : IDisposable
116 // rebuild the body around it. 116 // rebuild the body around it.
117 // Updates prim.BSBody with information/pointers to requested body 117 // Updates prim.BSBody with information/pointers to requested body
118 // Returns 'true' if BSBody was changed. 118 // Returns 'true' if BSBody was changed.
119 bool newBody = CreateBody((newGeom || forceRebuild), prim, PhysicsScene.World, 119 bool newBody = CreateBody((newGeom || forceRebuild), prim, PhysicsScene.World, bodyCallback);
120 prim.PhysShape, bodyCallback);
121 ret = newGeom || newBody; 120 ret = newGeom || newBody;
122 } 121 }
123 DetailLog("{0},BSShapeCollection.GetBodyAndShape,taintExit,force={1},ret={2},body={3},shape={4}", 122 DetailLog("{0},BSShapeCollection.GetBodyAndShape,taintExit,force={1},ret={2},body={3},shape={4}",
@@ -933,8 +932,7 @@ public sealed class BSShapeCollection : IDisposable
933 // Updates prim.BSBody with the information about the new body if one is created. 932 // Updates prim.BSBody with the information about the new body if one is created.
934 // Returns 'true' if an object was actually created. 933 // Returns 'true' if an object was actually created.
935 // Called at taint-time. 934 // Called at taint-time.
936 private bool CreateBody(bool forceRebuild, BSPhysObject prim, BulletWorld sim, BulletShape shape, 935 private bool CreateBody(bool forceRebuild, BSPhysObject prim, BulletWorld sim, BodyDestructionCallback bodyCallback)
937 BodyDestructionCallback bodyCallback)
938 { 936 {
939 bool ret = false; 937 bool ret = false;
940 938
@@ -951,6 +949,7 @@ public sealed class BSShapeCollection : IDisposable
951 { 949 {
952 // If the collisionObject is not the correct type for solidness, rebuild what's there 950 // If the collisionObject is not the correct type for solidness, rebuild what's there
953 mustRebuild = true; 951 mustRebuild = true;
952 if (DDetail) DetailLog("{0},BSShapeCollection.CreateBody,forceRebuildBecauseChangingBodyType,bodyType={1}", prim.LocalID, bodyType);
954 } 953 }
955 } 954 }
956 955
@@ -962,12 +961,12 @@ public sealed class BSShapeCollection : IDisposable
962 BulletBody aBody; 961 BulletBody aBody;
963 if (prim.IsSolid) 962 if (prim.IsSolid)
964 { 963 {
965 aBody = PhysicsScene.PE.CreateBodyFromShape(sim, shape, prim.LocalID, prim.RawPosition, prim.RawOrientation); 964 aBody = PhysicsScene.PE.CreateBodyFromShape(sim, prim.PhysShape, prim.LocalID, prim.RawPosition, prim.RawOrientation);
966 if (DDetail) DetailLog("{0},BSShapeCollection.CreateBody,mesh,body={1}", prim.LocalID, aBody); 965 if (DDetail) DetailLog("{0},BSShapeCollection.CreateBody,mesh,body={1}", prim.LocalID, aBody);
967 } 966 }
968 else 967 else
969 { 968 {
970 aBody = PhysicsScene.PE.CreateGhostFromShape(sim, shape, prim.LocalID, prim.RawPosition, prim.RawOrientation); 969 aBody = PhysicsScene.PE.CreateGhostFromShape(sim, prim.PhysShape, prim.LocalID, prim.RawPosition, prim.RawOrientation);
971 if (DDetail) DetailLog("{0},BSShapeCollection.CreateBody,ghost,body={1}", prim.LocalID, aBody); 970 if (DDetail) DetailLog("{0},BSShapeCollection.CreateBody,ghost,body={1}", prim.LocalID, aBody);
972 } 971 }
973 972