diff options
author | Robert Adams | 2012-10-31 14:49:28 -0700 |
---|---|---|
committer | Robert Adams | 2012-11-03 21:15:06 -0700 |
commit | 364a7c308804a3e331199ca60c6dfafa406b5d0d (patch) | |
tree | f9755f07a181265c57542d3df19879c20a924947 /OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | |
parent | BulletSim: vehicle tweeking. (diff) | |
download | opensim-SC_OLD-364a7c308804a3e331199ca60c6dfafa406b5d0d.zip opensim-SC_OLD-364a7c308804a3e331199ca60c6dfafa406b5d0d.tar.gz opensim-SC_OLD-364a7c308804a3e331199ca60c6dfafa406b5d0d.tar.bz2 opensim-SC_OLD-364a7c308804a3e331199ca60c6dfafa406b5d0d.tar.xz |
BulletSim: rename BSBody and BSShape to PhysBody and PhysShape. Add skeleton of BSLinksetCompound.
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs')
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs index b9013ab..8c7061d 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSCharacter.cs | |||
@@ -131,45 +131,45 @@ public sealed class BSCharacter : BSPhysObject | |||
131 | DetailLog("{0},BSCharacter.Destroy", LocalID); | 131 | DetailLog("{0},BSCharacter.Destroy", LocalID); |
132 | PhysicsScene.TaintedObject("BSCharacter.destroy", delegate() | 132 | PhysicsScene.TaintedObject("BSCharacter.destroy", delegate() |
133 | { | 133 | { |
134 | PhysicsScene.Shapes.DereferenceBody(BSBody, true, null); | 134 | PhysicsScene.Shapes.DereferenceBody(PhysBody, true, null); |
135 | PhysicsScene.Shapes.DereferenceShape(BSShape, true, null); | 135 | PhysicsScene.Shapes.DereferenceShape(PhysShape, true, null); |
136 | }); | 136 | }); |
137 | } | 137 | } |
138 | 138 | ||
139 | private void SetPhysicalProperties() | 139 | private void SetPhysicalProperties() |
140 | { | 140 | { |
141 | BulletSimAPI.RemoveObjectFromWorld2(PhysicsScene.World.ptr, BSBody.ptr); | 141 | BulletSimAPI.RemoveObjectFromWorld2(PhysicsScene.World.ptr, PhysBody.ptr); |
142 | 142 | ||
143 | ZeroMotion(); | 143 | ZeroMotion(); |
144 | ForcePosition = _position; | 144 | ForcePosition = _position; |
145 | // Set the velocity and compute the proper friction | 145 | // Set the velocity and compute the proper friction |
146 | ForceVelocity = _velocity; | 146 | ForceVelocity = _velocity; |
147 | 147 | ||
148 | BulletSimAPI.SetRestitution2(BSBody.ptr, PhysicsScene.Params.avatarRestitution); | 148 | BulletSimAPI.SetRestitution2(PhysBody.ptr, PhysicsScene.Params.avatarRestitution); |
149 | BulletSimAPI.SetMargin2(BSShape.ptr, PhysicsScene.Params.collisionMargin); | 149 | BulletSimAPI.SetMargin2(PhysShape.ptr, PhysicsScene.Params.collisionMargin); |
150 | BulletSimAPI.SetLocalScaling2(BSShape.ptr, Scale); | 150 | BulletSimAPI.SetLocalScaling2(PhysShape.ptr, Scale); |
151 | BulletSimAPI.SetContactProcessingThreshold2(BSBody.ptr, PhysicsScene.Params.contactProcessingThreshold); | 151 | BulletSimAPI.SetContactProcessingThreshold2(PhysBody.ptr, PhysicsScene.Params.contactProcessingThreshold); |
152 | if (PhysicsScene.Params.ccdMotionThreshold > 0f) | 152 | if (PhysicsScene.Params.ccdMotionThreshold > 0f) |
153 | { | 153 | { |
154 | BulletSimAPI.SetCcdMotionThreshold2(BSBody.ptr, PhysicsScene.Params.ccdMotionThreshold); | 154 | BulletSimAPI.SetCcdMotionThreshold2(PhysBody.ptr, PhysicsScene.Params.ccdMotionThreshold); |
155 | BulletSimAPI.SetCcdSweptSphereRadius2(BSBody.ptr, PhysicsScene.Params.ccdSweptSphereRadius); | 155 | BulletSimAPI.SetCcdSweptSphereRadius2(PhysBody.ptr, PhysicsScene.Params.ccdSweptSphereRadius); |
156 | } | 156 | } |
157 | 157 | ||
158 | UpdatePhysicalMassProperties(MassRaw); | 158 | UpdatePhysicalMassProperties(MassRaw); |
159 | 159 | ||
160 | // Make so capsule does not fall over | 160 | // Make so capsule does not fall over |
161 | BulletSimAPI.SetAngularFactorV2(BSBody.ptr, OMV.Vector3.Zero); | 161 | BulletSimAPI.SetAngularFactorV2(PhysBody.ptr, OMV.Vector3.Zero); |
162 | 162 | ||
163 | BulletSimAPI.AddToCollisionFlags2(BSBody.ptr, CollisionFlags.CF_CHARACTER_OBJECT); | 163 | BulletSimAPI.AddToCollisionFlags2(PhysBody.ptr, CollisionFlags.CF_CHARACTER_OBJECT); |
164 | 164 | ||
165 | BulletSimAPI.AddObjectToWorld2(PhysicsScene.World.ptr, BSBody.ptr); | 165 | BulletSimAPI.AddObjectToWorld2(PhysicsScene.World.ptr, PhysBody.ptr); |
166 | 166 | ||
167 | // BulletSimAPI.ForceActivationState2(BSBody.ptr, ActivationState.ACTIVE_TAG); | 167 | // BulletSimAPI.ForceActivationState2(BSBody.ptr, ActivationState.ACTIVE_TAG); |
168 | BulletSimAPI.ForceActivationState2(BSBody.ptr, ActivationState.DISABLE_DEACTIVATION); | 168 | BulletSimAPI.ForceActivationState2(PhysBody.ptr, ActivationState.DISABLE_DEACTIVATION); |
169 | BulletSimAPI.UpdateSingleAabb2(PhysicsScene.World.ptr, BSBody.ptr); | 169 | BulletSimAPI.UpdateSingleAabb2(PhysicsScene.World.ptr, PhysBody.ptr); |
170 | 170 | ||
171 | // Do this after the object has been added to the world | 171 | // Do this after the object has been added to the world |
172 | BulletSimAPI.SetCollisionFilterMask2(BSBody.ptr, | 172 | BulletSimAPI.SetCollisionFilterMask2(PhysBody.ptr, |
173 | (uint)CollisionFilterGroups.AvatarFilter, | 173 | (uint)CollisionFilterGroups.AvatarFilter, |
174 | (uint)CollisionFilterGroups.AvatarMask); | 174 | (uint)CollisionFilterGroups.AvatarMask); |
175 | } | 175 | } |
@@ -199,7 +199,7 @@ public sealed class BSCharacter : BSPhysObject | |||
199 | 199 | ||
200 | PhysicsScene.TaintedObject("BSCharacter.setSize", delegate() | 200 | PhysicsScene.TaintedObject("BSCharacter.setSize", delegate() |
201 | { | 201 | { |
202 | BulletSimAPI.SetLocalScaling2(BSShape.ptr, Scale); | 202 | BulletSimAPI.SetLocalScaling2(PhysShape.ptr, Scale); |
203 | UpdatePhysicalMassProperties(MassRaw); | 203 | UpdatePhysicalMassProperties(MassRaw); |
204 | }); | 204 | }); |
205 | 205 | ||
@@ -234,10 +234,10 @@ public sealed class BSCharacter : BSPhysObject | |||
234 | _rotationalVelocity = OMV.Vector3.Zero; | 234 | _rotationalVelocity = OMV.Vector3.Zero; |
235 | 235 | ||
236 | // Zero some other properties directly into the physics engine | 236 | // Zero some other properties directly into the physics engine |
237 | BulletSimAPI.SetLinearVelocity2(BSBody.ptr, OMV.Vector3.Zero); | 237 | BulletSimAPI.SetLinearVelocity2(PhysBody.ptr, OMV.Vector3.Zero); |
238 | BulletSimAPI.SetAngularVelocity2(BSBody.ptr, OMV.Vector3.Zero); | 238 | BulletSimAPI.SetAngularVelocity2(PhysBody.ptr, OMV.Vector3.Zero); |
239 | BulletSimAPI.SetInterpolationVelocity2(BSBody.ptr, OMV.Vector3.Zero, OMV.Vector3.Zero); | 239 | BulletSimAPI.SetInterpolationVelocity2(PhysBody.ptr, OMV.Vector3.Zero, OMV.Vector3.Zero); |
240 | BulletSimAPI.ClearForces2(BSBody.ptr); | 240 | BulletSimAPI.ClearForces2(PhysBody.ptr); |
241 | } | 241 | } |
242 | 242 | ||
243 | public override void LockAngularMotion(OMV.Vector3 axis) { return; } | 243 | public override void LockAngularMotion(OMV.Vector3 axis) { return; } |
@@ -254,19 +254,19 @@ public sealed class BSCharacter : BSPhysObject | |||
254 | PhysicsScene.TaintedObject("BSCharacter.setPosition", delegate() | 254 | PhysicsScene.TaintedObject("BSCharacter.setPosition", delegate() |
255 | { | 255 | { |
256 | DetailLog("{0},BSCharacter.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation); | 256 | DetailLog("{0},BSCharacter.SetPosition,taint,pos={1},orient={2}", LocalID, _position, _orientation); |
257 | BulletSimAPI.SetTranslation2(BSBody.ptr, _position, _orientation); | 257 | BulletSimAPI.SetTranslation2(PhysBody.ptr, _position, _orientation); |
258 | }); | 258 | }); |
259 | } | 259 | } |
260 | } | 260 | } |
261 | public override OMV.Vector3 ForcePosition { | 261 | public override OMV.Vector3 ForcePosition { |
262 | get { | 262 | get { |
263 | _position = BulletSimAPI.GetPosition2(BSBody.ptr); | 263 | _position = BulletSimAPI.GetPosition2(PhysBody.ptr); |
264 | return _position; | 264 | return _position; |
265 | } | 265 | } |
266 | set { | 266 | set { |
267 | _position = value; | 267 | _position = value; |
268 | PositionSanityCheck(); | 268 | PositionSanityCheck(); |
269 | BulletSimAPI.SetTranslation2(BSBody.ptr, _position, _orientation); | 269 | BulletSimAPI.SetTranslation2(PhysBody.ptr, _position, _orientation); |
270 | } | 270 | } |
271 | } | 271 | } |
272 | 272 | ||
@@ -313,7 +313,7 @@ public sealed class BSCharacter : BSPhysObject | |||
313 | BSScene.TaintCallback sanityOperation = delegate() | 313 | BSScene.TaintCallback sanityOperation = delegate() |
314 | { | 314 | { |
315 | DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation); | 315 | DetailLog("{0},BSCharacter.PositionSanityCheck,taint,pos={1},orient={2}", LocalID, _position, _orientation); |
316 | BulletSimAPI.SetTranslation2(BSBody.ptr, _position, _orientation); | 316 | BulletSimAPI.SetTranslation2(PhysBody.ptr, _position, _orientation); |
317 | }; | 317 | }; |
318 | if (inTaintTime) | 318 | if (inTaintTime) |
319 | sanityOperation(); | 319 | sanityOperation(); |
@@ -332,8 +332,8 @@ public sealed class BSCharacter : BSPhysObject | |||
332 | } | 332 | } |
333 | public override void UpdatePhysicalMassProperties(float physMass) | 333 | public override void UpdatePhysicalMassProperties(float physMass) |
334 | { | 334 | { |
335 | OMV.Vector3 localInertia = BulletSimAPI.CalculateLocalInertia2(BSShape.ptr, physMass); | 335 | OMV.Vector3 localInertia = BulletSimAPI.CalculateLocalInertia2(PhysShape.ptr, physMass); |
336 | BulletSimAPI.SetMassProps2(BSBody.ptr, physMass, localInertia); | 336 | BulletSimAPI.SetMassProps2(PhysBody.ptr, physMass, localInertia); |
337 | } | 337 | } |
338 | 338 | ||
339 | public override OMV.Vector3 Force { | 339 | public override OMV.Vector3 Force { |
@@ -344,7 +344,7 @@ public sealed class BSCharacter : BSPhysObject | |||
344 | PhysicsScene.TaintedObject("BSCharacter.SetForce", delegate() | 344 | PhysicsScene.TaintedObject("BSCharacter.SetForce", delegate() |
345 | { | 345 | { |
346 | DetailLog("{0},BSCharacter.setForce,taint,force={1}", LocalID, _force); | 346 | DetailLog("{0},BSCharacter.setForce,taint,force={1}", LocalID, _force); |
347 | BulletSimAPI.SetObjectForce2(BSBody.ptr, _force); | 347 | BulletSimAPI.SetObjectForce2(PhysBody.ptr, _force); |
348 | }); | 348 | }); |
349 | } | 349 | } |
350 | } | 350 | } |
@@ -383,7 +383,7 @@ public sealed class BSCharacter : BSPhysObject | |||
383 | if (_currentFriction != PhysicsScene.Params.avatarStandingFriction) | 383 | if (_currentFriction != PhysicsScene.Params.avatarStandingFriction) |
384 | { | 384 | { |
385 | _currentFriction = PhysicsScene.Params.avatarStandingFriction; | 385 | _currentFriction = PhysicsScene.Params.avatarStandingFriction; |
386 | BulletSimAPI.SetFriction2(BSBody.ptr, _currentFriction); | 386 | BulletSimAPI.SetFriction2(PhysBody.ptr, _currentFriction); |
387 | } | 387 | } |
388 | } | 388 | } |
389 | else | 389 | else |
@@ -391,15 +391,15 @@ public sealed class BSCharacter : BSPhysObject | |||
391 | if (_currentFriction != PhysicsScene.Params.avatarFriction) | 391 | if (_currentFriction != PhysicsScene.Params.avatarFriction) |
392 | { | 392 | { |
393 | _currentFriction = PhysicsScene.Params.avatarFriction; | 393 | _currentFriction = PhysicsScene.Params.avatarFriction; |
394 | BulletSimAPI.SetFriction2(BSBody.ptr, _currentFriction); | 394 | BulletSimAPI.SetFriction2(PhysBody.ptr, _currentFriction); |
395 | } | 395 | } |
396 | } | 396 | } |
397 | _velocity = value; | 397 | _velocity = value; |
398 | // Remember the set velocity so we can suppress the reduction by friction, ... | 398 | // Remember the set velocity so we can suppress the reduction by friction, ... |
399 | _appliedVelocity = value; | 399 | _appliedVelocity = value; |
400 | 400 | ||
401 | BulletSimAPI.SetLinearVelocity2(BSBody.ptr, _velocity); | 401 | BulletSimAPI.SetLinearVelocity2(PhysBody.ptr, _velocity); |
402 | BulletSimAPI.Activate2(BSBody.ptr, true); | 402 | BulletSimAPI.Activate2(PhysBody.ptr, true); |
403 | } | 403 | } |
404 | } | 404 | } |
405 | public override OMV.Vector3 Torque { | 405 | public override OMV.Vector3 Torque { |
@@ -424,7 +424,7 @@ public sealed class BSCharacter : BSPhysObject | |||
424 | PhysicsScene.TaintedObject("BSCharacter.setOrientation", delegate() | 424 | PhysicsScene.TaintedObject("BSCharacter.setOrientation", delegate() |
425 | { | 425 | { |
426 | // _position = BulletSimAPI.GetPosition2(BSBody.ptr); | 426 | // _position = BulletSimAPI.GetPosition2(BSBody.ptr); |
427 | BulletSimAPI.SetTranslation2(BSBody.ptr, _position, _orientation); | 427 | BulletSimAPI.SetTranslation2(PhysBody.ptr, _position, _orientation); |
428 | }); | 428 | }); |
429 | } | 429 | } |
430 | } | 430 | } |
@@ -433,13 +433,13 @@ public sealed class BSCharacter : BSPhysObject | |||
433 | { | 433 | { |
434 | get | 434 | get |
435 | { | 435 | { |
436 | _orientation = BulletSimAPI.GetOrientation2(BSBody.ptr); | 436 | _orientation = BulletSimAPI.GetOrientation2(PhysBody.ptr); |
437 | return _orientation; | 437 | return _orientation; |
438 | } | 438 | } |
439 | set | 439 | set |
440 | { | 440 | { |
441 | _orientation = value; | 441 | _orientation = value; |
442 | BulletSimAPI.SetTranslation2(BSBody.ptr, _position, _orientation); | 442 | BulletSimAPI.SetTranslation2(PhysBody.ptr, _position, _orientation); |
443 | } | 443 | } |
444 | } | 444 | } |
445 | public override int PhysicsActorType { | 445 | public override int PhysicsActorType { |
@@ -498,9 +498,9 @@ public sealed class BSCharacter : BSPhysObject | |||
498 | PhysicsScene.TaintedObject("BSCharacter.setFloatOnWater", delegate() | 498 | PhysicsScene.TaintedObject("BSCharacter.setFloatOnWater", delegate() |
499 | { | 499 | { |
500 | if (_floatOnWater) | 500 | if (_floatOnWater) |
501 | CurrentCollisionFlags = BulletSimAPI.AddToCollisionFlags2(BSBody.ptr, CollisionFlags.BS_FLOATS_ON_WATER); | 501 | CurrentCollisionFlags = BulletSimAPI.AddToCollisionFlags2(PhysBody.ptr, CollisionFlags.BS_FLOATS_ON_WATER); |
502 | else | 502 | else |
503 | CurrentCollisionFlags = BulletSimAPI.RemoveFromCollisionFlags2(BSBody.ptr, CollisionFlags.BS_FLOATS_ON_WATER); | 503 | CurrentCollisionFlags = BulletSimAPI.RemoveFromCollisionFlags2(PhysBody.ptr, CollisionFlags.BS_FLOATS_ON_WATER); |
504 | }); | 504 | }); |
505 | } | 505 | } |
506 | } | 506 | } |
@@ -533,7 +533,7 @@ public sealed class BSCharacter : BSPhysObject | |||
533 | DetailLog("{0},BSCharacter.setForceBuoyancy,taint,buoy={1}", LocalID, _buoyancy); | 533 | DetailLog("{0},BSCharacter.setForceBuoyancy,taint,buoy={1}", LocalID, _buoyancy); |
534 | // Buoyancy is faked by changing the gravity applied to the object | 534 | // Buoyancy is faked by changing the gravity applied to the object |
535 | float grav = PhysicsScene.Params.gravity * (1f - _buoyancy); | 535 | float grav = PhysicsScene.Params.gravity * (1f - _buoyancy); |
536 | BulletSimAPI.SetGravity2(BSBody.ptr, new OMV.Vector3(0f, 0f, grav)); | 536 | BulletSimAPI.SetGravity2(PhysBody.ptr, new OMV.Vector3(0f, 0f, grav)); |
537 | } | 537 | } |
538 | } | 538 | } |
539 | 539 | ||
@@ -579,7 +579,7 @@ public sealed class BSCharacter : BSPhysObject | |||
579 | PhysicsScene.TaintedObject("BSCharacter.AddForce", delegate() | 579 | PhysicsScene.TaintedObject("BSCharacter.AddForce", delegate() |
580 | { | 580 | { |
581 | DetailLog("{0},BSCharacter.setAddForce,taint,addedForce={1}", LocalID, _force); | 581 | DetailLog("{0},BSCharacter.setAddForce,taint,addedForce={1}", LocalID, _force); |
582 | BulletSimAPI.SetObjectForce2(BSBody.ptr, _force); | 582 | BulletSimAPI.SetObjectForce2(PhysBody.ptr, _force); |
583 | }); | 583 | }); |
584 | } | 584 | } |
585 | else | 585 | else |
@@ -647,7 +647,7 @@ public sealed class BSCharacter : BSPhysObject | |||
647 | // That's just the way they are defined. | 647 | // That's just the way they are defined. |
648 | OMV.Vector3 avVel = new OMV.Vector3(_appliedVelocity.X, _appliedVelocity.Y, entprop.Velocity.Z); | 648 | OMV.Vector3 avVel = new OMV.Vector3(_appliedVelocity.X, _appliedVelocity.Y, entprop.Velocity.Z); |
649 | _velocity = avVel; | 649 | _velocity = avVel; |
650 | BulletSimAPI.SetLinearVelocity2(BSBody.ptr, avVel); | 650 | BulletSimAPI.SetLinearVelocity2(PhysBody.ptr, avVel); |
651 | } | 651 | } |
652 | 652 | ||
653 | // Tell the linkset about value changes | 653 | // Tell the linkset about value changes |