aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs')
-rwxr-xr-xOpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs30
1 files changed, 15 insertions, 15 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
index 6967108..b0cc63c 100755
--- a/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
+++ b/OpenSim/Region/Physics/BulletSPlugin/BSLinkset.cs
@@ -53,9 +53,9 @@ public class BSLinkset
53 53
54 // We keep the prim's mass in the linkset structure since it could be dependent on other prims 54 // We keep the prim's mass in the linkset structure since it could be dependent on other prims
55 private float m_mass; 55 private float m_mass;
56 public float LinksetMass 56 public float LinksetMass
57 { 57 {
58 get 58 get
59 { 59 {
60 m_mass = ComputeLinksetMass(); 60 m_mass = ComputeLinksetMass();
61 return m_mass; 61 return m_mass;
@@ -77,7 +77,7 @@ public class BSLinkset
77 // A simple linkset of one (no children) 77 // A simple linkset of one (no children)
78 LinksetID = m_nextLinksetID++; 78 LinksetID = m_nextLinksetID++;
79 // We create LOTS of linksets. 79 // We create LOTS of linksets.
80 if (m_nextLinksetID <= 0) 80 if (m_nextLinksetID <= 0)
81 m_nextLinksetID = 1; 81 m_nextLinksetID = 1;
82 PhysicsScene = scene; 82 PhysicsScene = scene;
83 LinksetRoot = parent; 83 LinksetRoot = parent;
@@ -276,7 +276,7 @@ public class BSLinkset
276 BSConstraint constrain; 276 BSConstraint constrain;
277 if (PhysicsScene.Constraints.TryGetConstraint(LinksetRoot.BSBody, child.BSBody, out constrain)) 277 if (PhysicsScene.Constraints.TryGetConstraint(LinksetRoot.BSBody, child.BSBody, out constrain))
278 { 278 {
279 // DetailLog("{0},BSLinkset.RecomputeLinksetConstraintVariables,taint,child={1},mass={2},A={3},B={4}", 279 // DetailLog("{0},BSLinkset.RecomputeLinksetConstraintVariables,taint,child={1},mass={2},A={3},B={4}",
280 // LinksetRoot.LocalID, child.LocalID, linksetMass, constrain.Body1.ID, constrain.Body2.ID); 280 // LinksetRoot.LocalID, child.LocalID, linksetMass, constrain.Body1.ID, constrain.Body2.ID);
281 constrain.RecomputeConstraintVariables(linksetMass); 281 constrain.RecomputeConstraintVariables(linksetMass);
282 } 282 }
@@ -392,14 +392,14 @@ public class BSLinkset
392 392
393 // create a constraint that allows no freedom of movement between the two objects 393 // create a constraint that allows no freedom of movement between the two objects
394 // http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4818 394 // http://bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=4818
395 DetailLog("{0},PhysicallyLinkAChildToRoot,taint,root={1},rBody={2},child={3},cBody={4},rLoc={5},cLoc={6},midLoc={7}", 395 DetailLog("{0},PhysicallyLinkAChildToRoot,taint,root={1},rBody={2},child={3},cBody={4},rLoc={5},cLoc={6},midLoc={7}",
396 rootPrim.LocalID, 396 rootPrim.LocalID,
397 rootPrim.LocalID, rootBody.ptr.ToString("X"), 397 rootPrim.LocalID, rootBody.ptr.ToString("X"),
398 childPrim.LocalID, childBody.ptr.ToString("X"), 398 childPrim.LocalID, childBody.ptr.ToString("X"),
399 rootPrim.Position, childPrim.Position, midPoint); 399 rootPrim.Position, childPrim.Position, midPoint);
400 400
401 // There is great subtlty in these paramters. Notice the check for a ptr of zero. 401 // There is great subtlty in these paramters. Notice the check for a ptr of zero.
402 // We pass the BulletBody structure into the taint in order to capture the pointer 402 // We pass the BulletBody structure into the taint in order to capture the pointer
403 // of the body at the time of constraint creation. This doesn't work for the very first 403 // of the body at the time of constraint creation. This doesn't work for the very first
404 // construction because there is no body yet. The body 404 // construction because there is no body yet. The body
405 // is constructed later at taint time. Thus we use the body address at time of the 405 // is constructed later at taint time. Thus we use the body address at time of the
@@ -409,8 +409,8 @@ public class BSLinkset
409 // to only change BSShape at taint time thus syncronizing these operations at 409 // to only change BSShape at taint time thus syncronizing these operations at
410 // the cost of efficiency and lag. 410 // the cost of efficiency and lag.
411 BS6DofConstraint constrain = new BS6DofConstraint( 411 BS6DofConstraint constrain = new BS6DofConstraint(
412 PhysicsScene.World, 412 PhysicsScene.World,
413 rootBody.ptr == IntPtr.Zero ? rootPrim.BSBody : rootBody, 413 rootBody.ptr == IntPtr.Zero ? rootPrim.BSBody : rootBody,
414 childBody.ptr == IntPtr.Zero ? childPrim.BSBody : childBody, 414 childBody.ptr == IntPtr.Zero ? childPrim.BSBody : childBody,
415 midPoint, 415 midPoint,
416 true, 416 true,
@@ -473,11 +473,11 @@ public class BSLinkset
473 // The root and child bodies are passed in because we need to remove the constraint between 473 // The root and child bodies are passed in because we need to remove the constraint between
474 // the bodies that were at unlink time. 474 // the bodies that were at unlink time.
475 // Called at taint time! 475 // Called at taint time!
476 private void PhysicallyUnlinkAChildFromRoot(BSPhysObject rootPrim, BulletBody rootBody, 476 private void PhysicallyUnlinkAChildFromRoot(BSPhysObject rootPrim, BulletBody rootBody,
477 BSPhysObject childPrim, BulletBody childBody) 477 BSPhysObject childPrim, BulletBody childBody)
478 { 478 {
479 DetailLog("{0},PhysicallyUnlinkAChildFromRoot,taint,root={1},rBody={2},child={3},cBody={4}", 479 DetailLog("{0},PhysicallyUnlinkAChildFromRoot,taint,root={1},rBody={2},child={3},cBody={4}",
480 rootPrim.LocalID, 480 rootPrim.LocalID,
481 rootPrim.LocalID, rootBody.ptr.ToString("X"), 481 rootPrim.LocalID, rootBody.ptr.ToString("X"),
482 childPrim.LocalID, childBody.ptr.ToString("X")); 482 childPrim.LocalID, childBody.ptr.ToString("X"));
483 483