public override bool process(BroadphaseProxy proxy) { ///terminate further ray tests, once the closestHitFraction reached zero if (aabbMin == aabbMax) { return(false); } CollisionObject collisionObject = proxy.clientObject; SweepAlgorithm algorithm = dispatcher.findSweepAlgorithm(collisionObject, this.collisionObject); algorithm(this.collisionObject, end, collisionObject, results, VFixedPoint.Create(0.01f)); return(true); }
public DefaultCollisionConfiguration() { sphereSphereCF = SphereSphereCollisionAlgorithm.processCollision; sphereBoxCF = SphereBoxCollisionAlgorithm.processCollision; sphereCapsuleCF = SphereCapsuleCollisionAlgorithm.processCollision; capsuleCapsuleCF = CapsuleCapsuleCollisionAlgorithm.processCollision; boxCapsuleCF = BoxCapsuleCollisionAlgorithm.processCollision; boxBoxCF = BoxBoxCollisionAlgorithm.processCollision; emptyCreateFunc = EmptyAlgorithm.processCollision; emptyRaytestFunc = EmptyRaytestAlgorithm.rayTestSingle; sphereRaytestFunc = SphereRaytestAlgorithm.rayTestSingle; boxRaytestFunc = BoxRaytestAlgorithm.rayTestSingle; capsuleRaytestFunc = CapsuleRaytestAlgorithm.rayTestSingle; emptySweepFunc = EmptySweepFunc.objectQuerySingle; sphereBoxSweepFunc = SphereBoxSweepAlgorithm.objectQuerySingle; sphereSphereSweepFunc = SphereSphereSweepAlgorithm.objectQuerySingle; sphereCapsuleSweepFunc = SphereCapsuleSweepAlgorithm.objectQuerySingle; capsuleCapsuleSweepFunc = CapsuleCapsuleSweepAlgorithm.objectQuerySingle; capsuleBoxSweepFunc = CapsuleBoxSweepAlgorithm.objectQuerySingle; }