void DispatcherNearCallback(BroadphasePair collisionPair, CollisionDispatcher dispatcher,
     DispatcherInfo dispatchInfo)
 {
     //AddToDisposeQueue(dispatchInfo.DebugDraw);
     TestManifoldPoints();
     //Console.WriteLine("DispatcherNearCallback");
 }
 public void DispatchAllCollisionPairs(OverlappingPairCache pairCache, DispatcherInfo dispatchInfo,
                                       Dispatcher dispatcher)
 {
     btDispatcher_dispatchAllCollisionPairs(_native, pairCache._native, dispatchInfo._native,
                                            dispatcher._native);
 }
Beispiel #3
0
 public void CollideSingleContact(Quaternion perturbeRot, CollisionObjectWrapper body0Wrap,
                                  CollisionObjectWrapper body1Wrap, DispatcherInfo dispatchInfo, ManifoldResult resultOut)
 {
     btConvexPlaneCollisionAlgorithm_collideSingleContact(_native, ref perturbeRot,
                                                          body0Wrap._native, body1Wrap._native, dispatchInfo._native, resultOut._native);
 }
 public void ProcessCollision(CollisionObjectWrapper body0Wrap, CollisionObjectWrapper body1Wrap, DispatcherInfo dispatchInfo, ManifoldResult resultOut)
 {
     btCollisionAlgorithm_processCollision(_native, body0Wrap._native, body1Wrap._native, dispatchInfo._native, resultOut._native);
 }
 public float CalculateTimeOfImpact(CollisionObject body0, CollisionObject body1, DispatcherInfo dispatchInfo, ManifoldResult resultOut)
 {
     return btCollisionAlgorithm_calculateTimeOfImpact(_native, body0._native, body1._native, dispatchInfo._native, resultOut._native);
 }
 public void CollideSingleContact(Quaternion perturbeRot, CollisionObjectWrapper body0Wrap, CollisionObjectWrapper body1Wrap, DispatcherInfo dispatchInfo, ManifoldResult resultOut)
 {
     btConvexPlaneCollisionAlgorithm_collideSingleContact(_native, ref perturbeRot, body0Wrap._native, body1Wrap._native, dispatchInfo._native, resultOut._native);
 }
 public static void DefaultNearCallback(BroadphasePair collisionPair, CollisionDispatcher dispatcher,
                                        DispatcherInfo dispatchInfo)
 {
     btCollisionDispatcher_defaultNearCallback(collisionPair.Native, dispatcher.Native,
                                               dispatchInfo.Native);
 }
 public float CalculateTimeOfImpact(CollisionObject body0, CollisionObject body1,
                                    DispatcherInfo dispatchInfo, ManifoldResult resultOut)
 {
     return(btCollisionAlgorithm_calculateTimeOfImpact(_native, body0._native,
                                                       body1._native, dispatchInfo._native, resultOut._native));
 }
 public void ProcessCollision(CollisionObjectWrapper body0Wrap, CollisionObjectWrapper body1Wrap,
                              DispatcherInfo dispatchInfo, ManifoldResult resultOut)
 {
     btCollisionAlgorithm_processCollision(_native, body0Wrap._native, body1Wrap._native,
                                           dispatchInfo._native, resultOut._native);
 }
 public void DispatchAllCollisionPairs(OverlappingPairCache pairCache, DispatcherInfo dispatchInfo, Dispatcher dispatcher)
 {
     btDispatcher_dispatchAllCollisionPairs(_native, pairCache._native, dispatchInfo._native, dispatcher._native);
 }
 public void ProcessAllOverlappingPairs(OverlapCallback __unnamed0, Dispatcher dispatcher,
                                        DispatcherInfo dispatcherInfo)
 {
     btOverlappingPairCache_processAllOverlappingPairs2(Native, __unnamed0.Native,
                                                        dispatcher.Native, dispatcherInfo.Native);
 }
		public static void DefaultNearCallback(BroadphasePair collisionPair, CollisionDispatcher dispatcher, DispatcherInfo dispatchInfo)
		{
			btCollisionDispatcher_defaultNearCallback(collisionPair._native, dispatcher._native, dispatchInfo._native);
		}
Beispiel #13
0
        public static void RoomNearCallback(BroadphasePair collisionPair, CollisionDispatcher dispatcher,
            DispatcherInfo dispatchInfo)
        {
            var c0 = (EngineContainer) ((CollisionObject) collisionPair.Proxy0.ClientObject).UserObject;
            var r0 = c0?.Room;
            var c1 = (EngineContainer) ((CollisionObject) collisionPair.Proxy1.ClientObject).UserObject;
            var r1 = c1?.Room;

            if (c1 != null && c1 == c0)
            {
                if (((CollisionObject) collisionPair.Proxy0.ClientObject).IsStaticOrKinematicObject
                    || ((CollisionObject) collisionPair.Proxy1.ClientObject).IsStaticOrKinematicObject)
                {
                    return; // No self interaction
                }
                CollisionDispatcher.DefaultNearCallback(collisionPair, dispatcher, dispatchInfo);
                return;
            }

            if(r0 == null && r1 == null)
            {
                CollisionDispatcher.DefaultNearCallback(collisionPair, dispatcher, dispatchInfo); // Both are out of rooms
                return;
            }

            if(r0 != null && r1 != null)
            {
                if(r0.IsInNearRoomsList(r1))
                {
                    CollisionDispatcher.DefaultNearCallback(collisionPair, dispatcher, dispatchInfo);
                }
            }
        }