diff options
author | Robert Adams | 2013-01-31 10:26:53 -0800 |
---|---|---|
committer | Robert Adams | 2013-01-31 15:56:02 -0800 |
commit | ed71c939fc22059b03572fe6380fcc754c89a284 (patch) | |
tree | b10e0be30b391e0e90c855f4cf671fa42d4faf16 /OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs | |
parent | BulletSim: clean up TargetVelocity implementation by using the default defn i... (diff) | |
download | opensim-SC_OLD-ed71c939fc22059b03572fe6380fcc754c89a284.zip opensim-SC_OLD-ed71c939fc22059b03572fe6380fcc754c89a284.tar.gz opensim-SC_OLD-ed71c939fc22059b03572fe6380fcc754c89a284.tar.bz2 opensim-SC_OLD-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 'OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSShapeCollection.cs | 11 |
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 | ||