diff options
author | David Walter Seikel | 2016-11-03 21:44:39 +1000 |
---|---|---|
committer | David Walter Seikel | 2016-11-03 21:44:39 +1000 |
commit | 134f86e8d5c414409631b25b8c6f0ee45fbd8631 (patch) | |
tree | 216b89d3fb89acfb81be1e440c25c41ab09fa96d /OpenSim/Region/PhysicsModules/BulletS/BSAPIUnman.cs | |
parent | More changing to production grid. Double oops. (diff) | |
download | opensim-SC-134f86e8d5c414409631b25b8c6f0ee45fbd8631.zip opensim-SC-134f86e8d5c414409631b25b8c6f0ee45fbd8631.tar.gz opensim-SC-134f86e8d5c414409631b25b8c6f0ee45fbd8631.tar.bz2 opensim-SC-134f86e8d5c414409631b25b8c6f0ee45fbd8631.tar.xz |
Initial update to OpenSim 0.8.2.1 source code.
Diffstat (limited to '')
-rwxr-xr-x | OpenSim/Region/PhysicsModules/BulletS/BSAPIUnman.cs (renamed from OpenSim/Region/Physics/BulletSPlugin/BSAPIUnman.cs) | 315 |
1 files changed, 298 insertions, 17 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSAPIUnman.cs b/OpenSim/Region/PhysicsModules/BulletS/BSAPIUnman.cs index 8c6e7d6..c4a923c 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSAPIUnman.cs +++ b/OpenSim/Region/PhysicsModules/BulletS/BSAPIUnman.cs | |||
@@ -35,7 +35,7 @@ using OpenSim.Framework; | |||
35 | 35 | ||
36 | using OpenMetaverse; | 36 | using OpenMetaverse; |
37 | 37 | ||
38 | namespace OpenSim.Region.Physics.BulletSPlugin | 38 | namespace OpenSim.Region.PhysicsModule.BulletS |
39 | { | 39 | { |
40 | public sealed class BSAPIUnman : BSAPITemplate | 40 | public sealed class BSAPIUnman : BSAPITemplate |
41 | { | 41 | { |
@@ -75,11 +75,11 @@ private sealed class BulletBodyUnman : BulletBody | |||
75 | private sealed class BulletShapeUnman : BulletShape | 75 | private sealed class BulletShapeUnman : BulletShape |
76 | { | 76 | { |
77 | public IntPtr ptr; | 77 | public IntPtr ptr; |
78 | public BulletShapeUnman(IntPtr xx, BSPhysicsShapeType typ) | 78 | public BulletShapeUnman(IntPtr xx, BSPhysicsShapeType typ) |
79 | : base() | 79 | : base() |
80 | { | 80 | { |
81 | ptr = xx; | 81 | ptr = xx; |
82 | type = typ; | 82 | shapeType = typ; |
83 | } | 83 | } |
84 | public override bool HasPhysicalShape | 84 | public override bool HasPhysicalShape |
85 | { | 85 | { |
@@ -91,7 +91,7 @@ private sealed class BulletShapeUnman : BulletShape | |||
91 | } | 91 | } |
92 | public override BulletShape Clone() | 92 | public override BulletShape Clone() |
93 | { | 93 | { |
94 | return new BulletShapeUnman(ptr, type); | 94 | return new BulletShapeUnman(ptr, shapeType); |
95 | } | 95 | } |
96 | public override bool ReferenceSame(BulletShape other) | 96 | public override bool ReferenceSame(BulletShape other) |
97 | { | 97 | { |
@@ -166,7 +166,7 @@ public override BulletWorld Initialize(Vector3 maxPosition, ConfigurationParamet | |||
166 | 166 | ||
167 | // If Debug logging level, enable logging from the unmanaged code | 167 | // If Debug logging level, enable logging from the unmanaged code |
168 | m_DebugLogCallbackHandle = null; | 168 | m_DebugLogCallbackHandle = null; |
169 | if (BSScene.m_log.IsDebugEnabled || PhysicsScene.PhysicsLogging.Enabled) | 169 | if (BSScene.m_log.IsDebugEnabled && PhysicsScene.PhysicsLogging.Enabled) |
170 | { | 170 | { |
171 | BSScene.m_log.DebugFormat("{0}: Initialize: Setting debug callback for unmanaged code", BSScene.LogHeader); | 171 | BSScene.m_log.DebugFormat("{0}: Initialize: Setting debug callback for unmanaged code", BSScene.LogHeader); |
172 | if (PhysicsScene.PhysicsLogging.Enabled) | 172 | if (PhysicsScene.PhysicsLogging.Enabled) |
@@ -202,7 +202,7 @@ private void BulletLoggerPhysLog(string msg) | |||
202 | } | 202 | } |
203 | 203 | ||
204 | public override int PhysicsStep(BulletWorld world, float timeStep, int maxSubSteps, float fixedTimeStep, | 204 | public override int PhysicsStep(BulletWorld world, float timeStep, int maxSubSteps, float fixedTimeStep, |
205 | out int updatedEntityCount, out int collidersCount) | 205 | out int updatedEntityCount, out int collidersCount) |
206 | { | 206 | { |
207 | BulletWorldUnman worldu = world as BulletWorldUnman; | 207 | BulletWorldUnman worldu = world as BulletWorldUnman; |
208 | return BSAPICPP.PhysicsStep2(worldu.ptr, timeStep, maxSubSteps, fixedTimeStep, out updatedEntityCount, out collidersCount); | 208 | return BSAPICPP.PhysicsStep2(worldu.ptr, timeStep, maxSubSteps, fixedTimeStep, out updatedEntityCount, out collidersCount); |
@@ -212,6 +212,19 @@ public override void Shutdown(BulletWorld world) | |||
212 | { | 212 | { |
213 | BulletWorldUnman worldu = world as BulletWorldUnman; | 213 | BulletWorldUnman worldu = world as BulletWorldUnman; |
214 | BSAPICPP.Shutdown2(worldu.ptr); | 214 | BSAPICPP.Shutdown2(worldu.ptr); |
215 | |||
216 | if (m_paramsHandle.IsAllocated) | ||
217 | { | ||
218 | m_paramsHandle.Free(); | ||
219 | } | ||
220 | if (m_collisionArrayPinnedHandle.IsAllocated) | ||
221 | { | ||
222 | m_collisionArrayPinnedHandle.Free(); | ||
223 | } | ||
224 | if (m_updateArrayPinnedHandle.IsAllocated) | ||
225 | { | ||
226 | m_updateArrayPinnedHandle.Free(); | ||
227 | } | ||
215 | } | 228 | } |
216 | 229 | ||
217 | public override bool PushUpdate(BulletBody obj) | 230 | public override bool PushUpdate(BulletBody obj) |
@@ -238,23 +251,52 @@ public override BulletShape CreateMeshShape(BulletWorld world, | |||
238 | BSPhysicsShapeType.SHAPE_MESH); | 251 | BSPhysicsShapeType.SHAPE_MESH); |
239 | } | 252 | } |
240 | 253 | ||
254 | public override BulletShape CreateGImpactShape(BulletWorld world, | ||
255 | int indicesCount, int[] indices, | ||
256 | int verticesCount, float[] vertices) | ||
257 | { | ||
258 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
259 | return new BulletShapeUnman( | ||
260 | BSAPICPP.CreateGImpactShape2(worldu.ptr, indicesCount, indices, verticesCount, vertices), | ||
261 | BSPhysicsShapeType.SHAPE_GIMPACT); | ||
262 | } | ||
263 | |||
241 | public override BulletShape CreateHullShape(BulletWorld world, int hullCount, float[] hulls) | 264 | public override BulletShape CreateHullShape(BulletWorld world, int hullCount, float[] hulls) |
242 | { | 265 | { |
243 | BulletWorldUnman worldu = world as BulletWorldUnman; | 266 | BulletWorldUnman worldu = world as BulletWorldUnman; |
244 | return new BulletShapeUnman( | 267 | return new BulletShapeUnman( |
245 | BSAPICPP.CreateHullShape2(worldu.ptr, hullCount, hulls), | 268 | BSAPICPP.CreateHullShape2(worldu.ptr, hullCount, hulls), |
246 | BSPhysicsShapeType.SHAPE_HULL); | 269 | BSPhysicsShapeType.SHAPE_HULL); |
247 | } | 270 | } |
248 | 271 | ||
249 | public override BulletShape BuildHullShapeFromMesh(BulletWorld world, BulletShape meshShape) | 272 | public override BulletShape BuildHullShapeFromMesh(BulletWorld world, BulletShape meshShape, HACDParams parms) |
250 | { | 273 | { |
251 | BulletWorldUnman worldu = world as BulletWorldUnman; | 274 | BulletWorldUnman worldu = world as BulletWorldUnman; |
252 | BulletShapeUnman shapeu = meshShape as BulletShapeUnman; | 275 | BulletShapeUnman shapeu = meshShape as BulletShapeUnman; |
253 | return new BulletShapeUnman( | 276 | return new BulletShapeUnman( |
254 | BSAPICPP.BuildHullShapeFromMesh2(worldu.ptr, shapeu.ptr), | 277 | BSAPICPP.BuildHullShapeFromMesh2(worldu.ptr, shapeu.ptr, parms), |
255 | BSPhysicsShapeType.SHAPE_HULL); | 278 | BSPhysicsShapeType.SHAPE_HULL); |
256 | } | 279 | } |
257 | 280 | ||
281 | public override BulletShape BuildConvexHullShapeFromMesh(BulletWorld world, BulletShape meshShape) | ||
282 | { | ||
283 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
284 | BulletShapeUnman shapeu = meshShape as BulletShapeUnman; | ||
285 | return new BulletShapeUnman( | ||
286 | BSAPICPP.BuildConvexHullShapeFromMesh2(worldu.ptr, shapeu.ptr), | ||
287 | BSPhysicsShapeType.SHAPE_CONVEXHULL); | ||
288 | } | ||
289 | |||
290 | public override BulletShape CreateConvexHullShape(BulletWorld world, | ||
291 | int indicesCount, int[] indices, | ||
292 | int verticesCount, float[] vertices) | ||
293 | { | ||
294 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
295 | return new BulletShapeUnman( | ||
296 | BSAPICPP.CreateConvexHullShape2(worldu.ptr, indicesCount, indices, verticesCount, vertices), | ||
297 | BSPhysicsShapeType.SHAPE_CONVEXHULL); | ||
298 | } | ||
299 | |||
258 | public override BulletShape BuildNativeShape(BulletWorld world, ShapeData shapeData) | 300 | public override BulletShape BuildNativeShape(BulletWorld world, ShapeData shapeData) |
259 | { | 301 | { |
260 | BulletWorldUnman worldu = world as BulletWorldUnman; | 302 | BulletWorldUnman worldu = world as BulletWorldUnman; |
@@ -273,7 +315,7 @@ public override void SetShapeCollisionMargin(BulletShape shape, float margin) | |||
273 | { | 315 | { |
274 | BulletShapeUnman shapeu = shape as BulletShapeUnman; | 316 | BulletShapeUnman shapeu = shape as BulletShapeUnman; |
275 | if (shapeu != null && shapeu.HasPhysicalShape) | 317 | if (shapeu != null && shapeu.HasPhysicalShape) |
276 | BSAPICPP.SetShapeCollisionMargin2(shapeu.ptr, margin); | 318 | BSAPICPP.SetShapeCollisionMargin(shapeu.ptr, margin); |
277 | } | 319 | } |
278 | 320 | ||
279 | public override BulletShape BuildCapsuleShape(BulletWorld world, float radius, float height, Vector3 scale) | 321 | public override BulletShape BuildCapsuleShape(BulletWorld world, float radius, float height, Vector3 scale) |
@@ -327,6 +369,12 @@ public override void RemoveChildShapeFromCompoundShape(BulletShape shape, Bullet | |||
327 | BSAPICPP.RemoveChildShapeFromCompoundShape2(shapeu.ptr, removeShapeu.ptr); | 369 | BSAPICPP.RemoveChildShapeFromCompoundShape2(shapeu.ptr, removeShapeu.ptr); |
328 | } | 370 | } |
329 | 371 | ||
372 | public override void UpdateChildTransform(BulletShape pShape, int childIndex, Vector3 pos, Quaternion rot, bool shouldRecalculateLocalAabb) | ||
373 | { | ||
374 | BulletShapeUnman shapeu = pShape as BulletShapeUnman; | ||
375 | BSAPICPP.UpdateChildTransform2(shapeu.ptr, childIndex, pos, rot, shouldRecalculateLocalAabb); | ||
376 | } | ||
377 | |||
330 | public override void RecalculateCompoundShapeLocalAabb(BulletShape shape) | 378 | public override void RecalculateCompoundShapeLocalAabb(BulletShape shape) |
331 | { | 379 | { |
332 | BulletShapeUnman shapeu = shape as BulletShapeUnman; | 380 | BulletShapeUnman shapeu = shape as BulletShapeUnman; |
@@ -337,7 +385,7 @@ public override BulletShape DuplicateCollisionShape(BulletWorld world, BulletSha | |||
337 | { | 385 | { |
338 | BulletWorldUnman worldu = world as BulletWorldUnman; | 386 | BulletWorldUnman worldu = world as BulletWorldUnman; |
339 | BulletShapeUnman srcShapeu = srcShape as BulletShapeUnman; | 387 | BulletShapeUnman srcShapeu = srcShape as BulletShapeUnman; |
340 | return new BulletShapeUnman(BSAPICPP.DuplicateCollisionShape2(worldu.ptr, srcShapeu.ptr, id), srcShape.type); | 388 | return new BulletShapeUnman(BSAPICPP.DuplicateCollisionShape2(worldu.ptr, srcShapeu.ptr, id), srcShape.shapeType); |
341 | } | 389 | } |
342 | 390 | ||
343 | public override bool DeleteCollisionShape(BulletWorld world, BulletShape shape) | 391 | public override bool DeleteCollisionShape(BulletWorld world, BulletShape shape) |
@@ -419,6 +467,28 @@ public override BulletConstraint Create6DofConstraintToPoint(BulletWorld world, | |||
419 | joinPoint, useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); | 467 | joinPoint, useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); |
420 | } | 468 | } |
421 | 469 | ||
470 | public override BulletConstraint Create6DofConstraintFixed(BulletWorld world, BulletBody obj1, | ||
471 | Vector3 frameInBloc, Quaternion frameInBrot, | ||
472 | bool useLinearReferenceFrameB, bool disableCollisionsBetweenLinkedBodies) | ||
473 | { | ||
474 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
475 | BulletBodyUnman bodyu1 = obj1 as BulletBodyUnman; | ||
476 | return new BulletConstraintUnman(BSAPICPP.Create6DofConstraintFixed2(worldu.ptr, bodyu1.ptr, | ||
477 | frameInBloc, frameInBrot, useLinearReferenceFrameB, disableCollisionsBetweenLinkedBodies)); | ||
478 | } | ||
479 | |||
480 | public override BulletConstraint Create6DofSpringConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, | ||
481 | Vector3 frame1loc, Quaternion frame1rot, | ||
482 | Vector3 frame2loc, Quaternion frame2rot, | ||
483 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies) | ||
484 | { | ||
485 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
486 | BulletBodyUnman bodyu1 = obj1 as BulletBodyUnman; | ||
487 | BulletBodyUnman bodyu2 = obj2 as BulletBodyUnman; | ||
488 | return new BulletConstraintUnman(BSAPICPP.Create6DofSpringConstraint2(worldu.ptr, bodyu1.ptr, bodyu2.ptr, frame1loc, frame1rot, | ||
489 | frame2loc, frame2rot, useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); | ||
490 | } | ||
491 | |||
422 | public override BulletConstraint CreateHingeConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, | 492 | public override BulletConstraint CreateHingeConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, |
423 | Vector3 pivotinA, Vector3 pivotinB, | 493 | Vector3 pivotinA, Vector3 pivotinB, |
424 | Vector3 axisInA, Vector3 axisInB, | 494 | Vector3 axisInA, Vector3 axisInB, |
@@ -431,6 +501,52 @@ public override BulletConstraint CreateHingeConstraint(BulletWorld world, Bullet | |||
431 | pivotinA, pivotinB, axisInA, axisInB, useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); | 501 | pivotinA, pivotinB, axisInA, axisInB, useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); |
432 | } | 502 | } |
433 | 503 | ||
504 | public override BulletConstraint CreateSliderConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, | ||
505 | Vector3 frame1loc, Quaternion frame1rot, | ||
506 | Vector3 frame2loc, Quaternion frame2rot, | ||
507 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies) | ||
508 | { | ||
509 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
510 | BulletBodyUnman bodyu1 = obj1 as BulletBodyUnman; | ||
511 | BulletBodyUnman bodyu2 = obj2 as BulletBodyUnman; | ||
512 | return new BulletConstraintUnman(BSAPICPP.CreateSliderConstraint2(worldu.ptr, bodyu1.ptr, bodyu2.ptr, frame1loc, frame1rot, | ||
513 | frame2loc, frame2rot, useLinearReferenceFrameA, disableCollisionsBetweenLinkedBodies)); | ||
514 | } | ||
515 | |||
516 | public override BulletConstraint CreateConeTwistConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, | ||
517 | Vector3 frame1loc, Quaternion frame1rot, | ||
518 | Vector3 frame2loc, Quaternion frame2rot, | ||
519 | bool disableCollisionsBetweenLinkedBodies) | ||
520 | { | ||
521 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
522 | BulletBodyUnman bodyu1 = obj1 as BulletBodyUnman; | ||
523 | BulletBodyUnman bodyu2 = obj2 as BulletBodyUnman; | ||
524 | return new BulletConstraintUnman(BSAPICPP.CreateConeTwistConstraint2(worldu.ptr, bodyu1.ptr, bodyu2.ptr, frame1loc, frame1rot, | ||
525 | frame2loc, frame2rot, disableCollisionsBetweenLinkedBodies)); | ||
526 | } | ||
527 | |||
528 | public override BulletConstraint CreateGearConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, | ||
529 | Vector3 axisInA, Vector3 axisInB, | ||
530 | float ratio, bool disableCollisionsBetweenLinkedBodies) | ||
531 | { | ||
532 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
533 | BulletBodyUnman bodyu1 = obj1 as BulletBodyUnman; | ||
534 | BulletBodyUnman bodyu2 = obj2 as BulletBodyUnman; | ||
535 | return new BulletConstraintUnman(BSAPICPP.CreateGearConstraint2(worldu.ptr, bodyu1.ptr, bodyu2.ptr, axisInA, axisInB, | ||
536 | ratio, disableCollisionsBetweenLinkedBodies)); | ||
537 | } | ||
538 | |||
539 | public override BulletConstraint CreatePoint2PointConstraint(BulletWorld world, BulletBody obj1, BulletBody obj2, | ||
540 | Vector3 pivotInA, Vector3 pivotInB, | ||
541 | bool disableCollisionsBetweenLinkedBodies) | ||
542 | { | ||
543 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
544 | BulletBodyUnman bodyu1 = obj1 as BulletBodyUnman; | ||
545 | BulletBodyUnman bodyu2 = obj2 as BulletBodyUnman; | ||
546 | return new BulletConstraintUnman(BSAPICPP.CreatePoint2PointConstraint2(worldu.ptr, bodyu1.ptr, bodyu2.ptr, pivotInA, pivotInB, | ||
547 | disableCollisionsBetweenLinkedBodies)); | ||
548 | } | ||
549 | |||
434 | public override void SetConstraintEnable(BulletConstraint constrain, float numericTrueFalse) | 550 | public override void SetConstraintEnable(BulletConstraint constrain, float numericTrueFalse) |
435 | { | 551 | { |
436 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | 552 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; |
@@ -480,6 +596,60 @@ public override bool SetBreakingImpulseThreshold(BulletConstraint constrain, flo | |||
480 | return BSAPICPP.SetBreakingImpulseThreshold2(constrainu.ptr, threshold); | 596 | return BSAPICPP.SetBreakingImpulseThreshold2(constrainu.ptr, threshold); |
481 | } | 597 | } |
482 | 598 | ||
599 | public override bool HingeSetLimits(BulletConstraint constrain, float low, float high, float softness, float bias, float relaxation) | ||
600 | { | ||
601 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
602 | return BSAPICPP.HingeSetLimits2(constrainu.ptr, low, high, softness, bias, relaxation); | ||
603 | } | ||
604 | |||
605 | public override bool SpringEnable(BulletConstraint constrain, int index, float numericTrueFalse) | ||
606 | { | ||
607 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
608 | return BSAPICPP.ConstraintSpringEnable2(constrainu.ptr, index, numericTrueFalse); | ||
609 | } | ||
610 | |||
611 | public override bool SpringSetEquilibriumPoint(BulletConstraint constrain, int index, float equilibriumPoint) | ||
612 | { | ||
613 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
614 | return BSAPICPP.ConstraintSpringSetEquilibriumPoint2(constrainu.ptr, index, equilibriumPoint); | ||
615 | } | ||
616 | |||
617 | public override bool SpringSetStiffness(BulletConstraint constrain, int index, float stiffnesss) | ||
618 | { | ||
619 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
620 | return BSAPICPP.ConstraintSpringSetStiffness2(constrainu.ptr, index, stiffnesss); | ||
621 | } | ||
622 | |||
623 | public override bool SpringSetDamping(BulletConstraint constrain, int index, float damping) | ||
624 | { | ||
625 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
626 | return BSAPICPP.ConstraintSpringSetDamping2(constrainu.ptr, index, damping); | ||
627 | } | ||
628 | |||
629 | public override bool SliderSetLimits(BulletConstraint constrain, int lowerUpper, int linAng, float val) | ||
630 | { | ||
631 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
632 | return BSAPICPP.SliderSetLimits2(constrainu.ptr, lowerUpper, linAng, val); | ||
633 | } | ||
634 | |||
635 | public override bool SliderSet(BulletConstraint constrain, int softRestDamp, int dirLimOrtho, int linAng, float val) | ||
636 | { | ||
637 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
638 | return BSAPICPP.SliderSet2(constrainu.ptr, softRestDamp, dirLimOrtho, linAng, val); | ||
639 | } | ||
640 | |||
641 | public override bool SliderMotorEnable(BulletConstraint constrain, int linAng, float numericTrueFalse) | ||
642 | { | ||
643 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
644 | return BSAPICPP.SliderMotorEnable2(constrainu.ptr, linAng, numericTrueFalse); | ||
645 | } | ||
646 | |||
647 | public override bool SliderMotor(BulletConstraint constrain, int forceVel, int linAng, float val) | ||
648 | { | ||
649 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | ||
650 | return BSAPICPP.SliderMotor2(constrainu.ptr, forceVel, linAng, val); | ||
651 | } | ||
652 | |||
483 | public override bool CalculateTransforms(BulletConstraint constrain) | 653 | public override bool CalculateTransforms(BulletConstraint constrain) |
484 | { | 654 | { |
485 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; | 655 | BulletConstraintUnman constrainu = constrain as BulletConstraintUnman; |
@@ -530,12 +700,12 @@ public override void SetForceUpdateAllAabbs(BulletWorld world, bool force) | |||
530 | // btDynamicsWorld entries | 700 | // btDynamicsWorld entries |
531 | public override bool AddObjectToWorld(BulletWorld world, BulletBody obj) | 701 | public override bool AddObjectToWorld(BulletWorld world, BulletBody obj) |
532 | { | 702 | { |
533 | // Bullet resets several variables when an object is added to the world. | ||
534 | // Gravity is reset to world default depending on the static/dynamic | ||
535 | // type. Of course, the collision flags in the broadphase proxy are initialized to default. | ||
536 | BulletWorldUnman worldu = world as BulletWorldUnman; | 703 | BulletWorldUnman worldu = world as BulletWorldUnman; |
537 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 704 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
538 | 705 | ||
706 | // Bullet resets several variables when an object is added to the world. | ||
707 | // Gravity is reset to world default depending on the static/dynamic | ||
708 | // type. Of course, the collision flags in the broadphase proxy are initialized to default. | ||
539 | Vector3 origGrav = BSAPICPP.GetGravity2(bodyu.ptr); | 709 | Vector3 origGrav = BSAPICPP.GetGravity2(bodyu.ptr); |
540 | 710 | ||
541 | bool ret = BSAPICPP.AddObjectToWorld2(worldu.ptr, bodyu.ptr); | 711 | bool ret = BSAPICPP.AddObjectToWorld2(worldu.ptr, bodyu.ptr); |
@@ -555,6 +725,13 @@ public override bool RemoveObjectFromWorld(BulletWorld world, BulletBody obj) | |||
555 | return BSAPICPP.RemoveObjectFromWorld2(worldu.ptr, bodyu.ptr); | 725 | return BSAPICPP.RemoveObjectFromWorld2(worldu.ptr, bodyu.ptr); |
556 | } | 726 | } |
557 | 727 | ||
728 | public override bool ClearCollisionProxyCache(BulletWorld world, BulletBody obj) | ||
729 | { | ||
730 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
731 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | ||
732 | return BSAPICPP.ClearCollisionProxyCache2(worldu.ptr, bodyu.ptr); | ||
733 | } | ||
734 | |||
558 | public override bool AddConstraintToWorld(BulletWorld world, BulletConstraint constrain, bool disableCollisionsBetweenLinkedObjects) | 735 | public override bool AddConstraintToWorld(BulletWorld world, BulletConstraint constrain, bool disableCollisionsBetweenLinkedObjects) |
559 | { | 736 | { |
560 | BulletWorldUnman worldu = world as BulletWorldUnman; | 737 | BulletWorldUnman worldu = world as BulletWorldUnman; |
@@ -921,6 +1098,7 @@ public override void SetCenterOfMassByPosRot(BulletBody obj, Vector3 pos, Quater | |||
921 | } | 1098 | } |
922 | 1099 | ||
923 | // Add a force to the object as if its mass is one. | 1100 | // Add a force to the object as if its mass is one. |
1101 | // Deep down in Bullet: m_totalForce += force*m_linearFactor; | ||
924 | public override void ApplyCentralForce(BulletBody obj, Vector3 force) | 1102 | public override void ApplyCentralForce(BulletBody obj, Vector3 force) |
925 | { | 1103 | { |
926 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 1104 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
@@ -964,6 +1142,7 @@ public override void SetSleepingThresholds(BulletBody obj, float lin_threshold, | |||
964 | BSAPICPP.SetSleepingThresholds2(bodyu.ptr, lin_threshold, ang_threshold); | 1142 | BSAPICPP.SetSleepingThresholds2(bodyu.ptr, lin_threshold, ang_threshold); |
965 | } | 1143 | } |
966 | 1144 | ||
1145 | // Deep down in Bullet: m_totalTorque += torque*m_angularFactor; | ||
967 | public override void ApplyTorque(BulletBody obj, Vector3 torque) | 1146 | public override void ApplyTorque(BulletBody obj, Vector3 torque) |
968 | { | 1147 | { |
969 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 1148 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
@@ -971,6 +1150,8 @@ public override void ApplyTorque(BulletBody obj, Vector3 torque) | |||
971 | } | 1150 | } |
972 | 1151 | ||
973 | // Apply force at the given point. Will add torque to the object. | 1152 | // Apply force at the given point. Will add torque to the object. |
1153 | // Deep down in Bullet: applyCentralForce(force); | ||
1154 | // applyTorque(rel_pos.cross(force*m_linearFactor)); | ||
974 | public override void ApplyForce(BulletBody obj, Vector3 force, Vector3 pos) | 1155 | public override void ApplyForce(BulletBody obj, Vector3 force, Vector3 pos) |
975 | { | 1156 | { |
976 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 1157 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
@@ -978,6 +1159,7 @@ public override void ApplyForce(BulletBody obj, Vector3 force, Vector3 pos) | |||
978 | } | 1159 | } |
979 | 1160 | ||
980 | // Apply impulse to the object. Same as "ApplycentralForce" but force scaled by object's mass. | 1161 | // Apply impulse to the object. Same as "ApplycentralForce" but force scaled by object's mass. |
1162 | // Deep down in Bullet: m_linearVelocity += impulse *m_linearFactor * m_inverseMass; | ||
981 | public override void ApplyCentralImpulse(BulletBody obj, Vector3 imp) | 1163 | public override void ApplyCentralImpulse(BulletBody obj, Vector3 imp) |
982 | { | 1164 | { |
983 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 1165 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
@@ -985,6 +1167,7 @@ public override void ApplyCentralImpulse(BulletBody obj, Vector3 imp) | |||
985 | } | 1167 | } |
986 | 1168 | ||
987 | // Apply impulse to the object's torque. Force is scaled by object's mass. | 1169 | // Apply impulse to the object's torque. Force is scaled by object's mass. |
1170 | // Deep down in Bullet: m_angularVelocity += m_invInertiaTensorWorld * torque * m_angularFactor; | ||
988 | public override void ApplyTorqueImpulse(BulletBody obj, Vector3 imp) | 1171 | public override void ApplyTorqueImpulse(BulletBody obj, Vector3 imp) |
989 | { | 1172 | { |
990 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 1173 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
@@ -992,6 +1175,8 @@ public override void ApplyTorqueImpulse(BulletBody obj, Vector3 imp) | |||
992 | } | 1175 | } |
993 | 1176 | ||
994 | // Apply impulse at the point given. For is scaled by object's mass and effects both linear and angular forces. | 1177 | // Apply impulse at the point given. For is scaled by object's mass and effects both linear and angular forces. |
1178 | // Deep down in Bullet: applyCentralImpulse(impulse); | ||
1179 | // applyTorqueImpulse(rel_pos.cross(impulse*m_linearFactor)); | ||
995 | public override void ApplyImpulse(BulletBody obj, Vector3 imp, Vector3 pos) | 1180 | public override void ApplyImpulse(BulletBody obj, Vector3 imp, Vector3 pos) |
996 | { | 1181 | { |
997 | BulletBodyUnman bodyu = obj as BulletBodyUnman; | 1182 | BulletBodyUnman bodyu = obj as BulletBodyUnman; |
@@ -1259,6 +1444,16 @@ public override void DumpPhysicsStatistics(BulletWorld world) | |||
1259 | BulletWorldUnman worldu = world as BulletWorldUnman; | 1444 | BulletWorldUnman worldu = world as BulletWorldUnman; |
1260 | BSAPICPP.DumpPhysicsStatistics2(worldu.ptr); | 1445 | BSAPICPP.DumpPhysicsStatistics2(worldu.ptr); |
1261 | } | 1446 | } |
1447 | public override void ResetBroadphasePool(BulletWorld world) | ||
1448 | { | ||
1449 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
1450 | BSAPICPP.ResetBroadphasePool(worldu.ptr); | ||
1451 | } | ||
1452 | public override void ResetConstraintSolver(BulletWorld world) | ||
1453 | { | ||
1454 | BulletWorldUnman worldu = world as BulletWorldUnman; | ||
1455 | BSAPICPP.ResetConstraintSolver(worldu.ptr); | ||
1456 | } | ||
1262 | 1457 | ||
1263 | // ===================================================================================== | 1458 | // ===================================================================================== |
1264 | // ===================================================================================== | 1459 | // ===================================================================================== |
@@ -1302,11 +1497,24 @@ public static extern IntPtr CreateMeshShape2(IntPtr world, | |||
1302 | int verticesCount, [MarshalAs(UnmanagedType.LPArray)] float[] vertices ); | 1497 | int verticesCount, [MarshalAs(UnmanagedType.LPArray)] float[] vertices ); |
1303 | 1498 | ||
1304 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1499 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1500 | public static extern IntPtr CreateGImpactShape2(IntPtr world, | ||
1501 | int indicesCount, [MarshalAs(UnmanagedType.LPArray)] int[] indices, | ||
1502 | int verticesCount, [MarshalAs(UnmanagedType.LPArray)] float[] vertices ); | ||
1503 | |||
1504 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1305 | public static extern IntPtr CreateHullShape2(IntPtr world, | 1505 | public static extern IntPtr CreateHullShape2(IntPtr world, |
1306 | int hullCount, [MarshalAs(UnmanagedType.LPArray)] float[] hulls); | 1506 | int hullCount, [MarshalAs(UnmanagedType.LPArray)] float[] hulls); |
1307 | 1507 | ||
1308 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1508 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1309 | public static extern IntPtr BuildHullShapeFromMesh2(IntPtr world, IntPtr meshShape); | 1509 | public static extern IntPtr BuildHullShapeFromMesh2(IntPtr world, IntPtr meshShape, HACDParams parms); |
1510 | |||
1511 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1512 | public static extern IntPtr BuildConvexHullShapeFromMesh2(IntPtr world, IntPtr meshShape); | ||
1513 | |||
1514 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1515 | public static extern IntPtr CreateConvexHullShape2(IntPtr world, | ||
1516 | int indicesCount, [MarshalAs(UnmanagedType.LPArray)] int[] indices, | ||
1517 | int verticesCount, [MarshalAs(UnmanagedType.LPArray)] float[] vertices ); | ||
1310 | 1518 | ||
1311 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1519 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1312 | public static extern IntPtr BuildNativeShape2(IntPtr world, ShapeData shapeData); | 1520 | public static extern IntPtr BuildNativeShape2(IntPtr world, ShapeData shapeData); |
@@ -1315,7 +1523,7 @@ public static extern IntPtr BuildNativeShape2(IntPtr world, ShapeData shapeData) | |||
1315 | public static extern bool IsNativeShape2(IntPtr shape); | 1523 | public static extern bool IsNativeShape2(IntPtr shape); |
1316 | 1524 | ||
1317 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1525 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1318 | public static extern void SetShapeCollisionMargin2(IntPtr shape, float margin); | 1526 | public static extern void SetShapeCollisionMargin(IntPtr shape, float margin); |
1319 | 1527 | ||
1320 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1528 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1321 | public static extern IntPtr BuildCapsuleShape2(IntPtr world, float radius, float height, Vector3 scale); | 1529 | public static extern IntPtr BuildCapsuleShape2(IntPtr world, float radius, float height, Vector3 scale); |
@@ -1339,6 +1547,9 @@ public static extern IntPtr RemoveChildShapeFromCompoundShapeIndex2(IntPtr cShap | |||
1339 | public static extern void RemoveChildShapeFromCompoundShape2(IntPtr cShape, IntPtr removeShape); | 1547 | public static extern void RemoveChildShapeFromCompoundShape2(IntPtr cShape, IntPtr removeShape); |
1340 | 1548 | ||
1341 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1549 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1550 | public static extern void UpdateChildTransform2(IntPtr pShape, int childIndex, Vector3 pos, Quaternion rot, bool shouldRecalculateLocalAabb); | ||
1551 | |||
1552 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1342 | public static extern void RecalculateCompoundShapeLocalAabb2(IntPtr cShape); | 1553 | public static extern void RecalculateCompoundShapeLocalAabb2(IntPtr cShape); |
1343 | 1554 | ||
1344 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1555 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
@@ -1368,7 +1579,7 @@ public static extern void DestroyObject2(IntPtr sim, IntPtr obj); | |||
1368 | public static extern IntPtr CreateGroundPlaneShape2(uint id, float height, float collisionMargin); | 1579 | public static extern IntPtr CreateGroundPlaneShape2(uint id, float height, float collisionMargin); |
1369 | 1580 | ||
1370 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1581 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1371 | public static extern IntPtr CreateTerrainShape2(uint id, Vector3 size, float minHeight, float maxHeight, | 1582 | public static extern IntPtr CreateTerrainShape2(uint id, Vector3 size, float minHeight, float maxHeight, |
1372 | [MarshalAs(UnmanagedType.LPArray)] float[] heightMap, | 1583 | [MarshalAs(UnmanagedType.LPArray)] float[] heightMap, |
1373 | float scaleFactor, float collisionMargin); | 1584 | float scaleFactor, float collisionMargin); |
1374 | 1585 | ||
@@ -1386,12 +1597,46 @@ public static extern IntPtr Create6DofConstraintToPoint2(IntPtr world, IntPtr ob | |||
1386 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies); | 1597 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies); |
1387 | 1598 | ||
1388 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1599 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1600 | public static extern IntPtr Create6DofConstraintFixed2(IntPtr world, IntPtr obj1, | ||
1601 | Vector3 frameInBloc, Quaternion frameInBrot, | ||
1602 | bool useLinearReferenceFrameB, bool disableCollisionsBetweenLinkedBodies); | ||
1603 | |||
1604 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1605 | public static extern IntPtr Create6DofSpringConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | ||
1606 | Vector3 frame1loc, Quaternion frame1rot, | ||
1607 | Vector3 frame2loc, Quaternion frame2rot, | ||
1608 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies); | ||
1609 | |||
1610 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1389 | public static extern IntPtr CreateHingeConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | 1611 | public static extern IntPtr CreateHingeConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, |
1390 | Vector3 pivotinA, Vector3 pivotinB, | 1612 | Vector3 pivotinA, Vector3 pivotinB, |
1391 | Vector3 axisInA, Vector3 axisInB, | 1613 | Vector3 axisInA, Vector3 axisInB, |
1392 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies); | 1614 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies); |
1393 | 1615 | ||
1394 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1616 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1617 | public static extern IntPtr CreateSliderConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | ||
1618 | Vector3 frameInAloc, Quaternion frameInArot, | ||
1619 | Vector3 frameInBloc, Quaternion frameInBrot, | ||
1620 | bool useLinearReferenceFrameA, bool disableCollisionsBetweenLinkedBodies); | ||
1621 | |||
1622 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1623 | public static extern IntPtr CreateConeTwistConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | ||
1624 | Vector3 frameInAloc, Quaternion frameInArot, | ||
1625 | Vector3 frameInBloc, Quaternion frameInBrot, | ||
1626 | bool disableCollisionsBetweenLinkedBodies); | ||
1627 | |||
1628 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1629 | public static extern IntPtr CreateGearConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | ||
1630 | Vector3 axisInA, Vector3 axisInB, | ||
1631 | float ratio, bool disableCollisionsBetweenLinkedBodies); | ||
1632 | |||
1633 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1634 | public static extern IntPtr CreatePoint2PointConstraint2(IntPtr world, IntPtr obj1, IntPtr obj2, | ||
1635 | Vector3 pivotInA, Vector3 pivotInB, | ||
1636 | bool disableCollisionsBetweenLinkedBodies); | ||
1637 | |||
1638 | |||
1639 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1395 | public static extern void SetConstraintEnable2(IntPtr constrain, float numericTrueFalse); | 1640 | public static extern void SetConstraintEnable2(IntPtr constrain, float numericTrueFalse); |
1396 | 1641 | ||
1397 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1642 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
@@ -1417,6 +1662,33 @@ public static extern bool TranslationalLimitMotor2(IntPtr constrain, float enabl | |||
1417 | public static extern bool SetBreakingImpulseThreshold2(IntPtr constrain, float threshold); | 1662 | public static extern bool SetBreakingImpulseThreshold2(IntPtr constrain, float threshold); |
1418 | 1663 | ||
1419 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1664 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1665 | public static extern bool HingeSetLimits2(IntPtr constrain, float low, float high, float softness, float bias, float relaxation); | ||
1666 | |||
1667 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1668 | public static extern bool ConstraintSpringEnable2(IntPtr constrain, int index, float numericTrueFalse); | ||
1669 | |||
1670 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1671 | public static extern bool ConstraintSpringSetEquilibriumPoint2(IntPtr constrain, int index, float equilibriumPoint); | ||
1672 | |||
1673 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1674 | public static extern bool ConstraintSpringSetStiffness2(IntPtr constrain, int index, float stiffness); | ||
1675 | |||
1676 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1677 | public static extern bool ConstraintSpringSetDamping2(IntPtr constrain, int index, float damping); | ||
1678 | |||
1679 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1680 | public static extern bool SliderSetLimits2(IntPtr constrain, int lowerUpper, int linAng, float val); | ||
1681 | |||
1682 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1683 | public static extern bool SliderSet2(IntPtr constrain, int softRestDamp, int dirLimOrtho, int linAng, float val); | ||
1684 | |||
1685 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1686 | public static extern bool SliderMotorEnable2(IntPtr constrain, int linAng, float numericTrueFalse); | ||
1687 | |||
1688 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1689 | public static extern bool SliderMotor2(IntPtr constrain, int forceVel, int linAng, float val); | ||
1690 | |||
1691 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1420 | public static extern bool CalculateTransforms2(IntPtr constrain); | 1692 | public static extern bool CalculateTransforms2(IntPtr constrain); |
1421 | 1693 | ||
1422 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1694 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
@@ -1448,6 +1720,9 @@ public static extern bool AddObjectToWorld2(IntPtr world, IntPtr obj); | |||
1448 | public static extern bool RemoveObjectFromWorld2(IntPtr world, IntPtr obj); | 1720 | public static extern bool RemoveObjectFromWorld2(IntPtr world, IntPtr obj); |
1449 | 1721 | ||
1450 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1722 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1723 | public static extern bool ClearCollisionProxyCache2(IntPtr world, IntPtr obj); | ||
1724 | |||
1725 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
1451 | public static extern bool AddConstraintToWorld2(IntPtr world, IntPtr constrain, bool disableCollisionsBetweenLinkedObjects); | 1726 | public static extern bool AddConstraintToWorld2(IntPtr world, IntPtr constrain, bool disableCollisionsBetweenLinkedObjects); |
1452 | 1727 | ||
1453 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 1728 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
@@ -1832,6 +2107,12 @@ public static extern void DumpAllInfo2(IntPtr sim); | |||
1832 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | 2107 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] |
1833 | public static extern void DumpPhysicsStatistics2(IntPtr sim); | 2108 | public static extern void DumpPhysicsStatistics2(IntPtr sim); |
1834 | 2109 | ||
2110 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
2111 | public static extern void ResetBroadphasePool(IntPtr sim); | ||
2112 | |||
2113 | [DllImport("BulletSim", CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity] | ||
2114 | public static extern void ResetConstraintSolver(IntPtr sim); | ||
2115 | |||
1835 | } | 2116 | } |
1836 | 2117 | ||
1837 | } | 2118 | } |