public override bool process(BroadphaseProxy proxy) { CollisionObject collisionObject = proxy.clientObject; //only perform raycast if filterMask matches RaytestAlgorithm algorithm = dispatcher.findAlgorithm(collisionObject); algorithm(rayFrom, rayTo, collisionObject, m_resultCallback); 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; }
public override RaytestAlgorithm findAlgorithm(CollisionObject body) { RaytestAlgorithm algo = raytestDispatch[(int)body.getCollisionShape().getShapeType()]; return(algo); }