//! If you don't want to consider collisions where the bodies are joined by a constraint, override NeedsCollision:
        /*! However, if you use a CollisionObject for #body instead of a RigidBody,
         *  then this is unnecessary—CheckCollideWithOverride isn't available */
        public override bool NeedsCollision(BroadphaseProxy proxy)
        {
            // superclass will check CollisionFilterGroup and CollisionFilterMask
            if (!base.NeedsCollision(proxy))
                return false;

            // if passed filters, may also want to avoid contacts between constraints
            return body.CheckCollideWithOverride(proxy.ClientObject as CollisionObject);
        }
		public unsafe static void SetAabbForceUpdate(this DbvtBroadphase obj, BroadphaseProxy absproxy, ref OpenTK.Vector3 aabbMin, ref OpenTK.Vector3 aabbMax, Dispatcher __unnamed3)
		{
			fixed (OpenTK.Vector3* aabbMinPtr = &aabbMin)
			{
				fixed (OpenTK.Vector3* aabbMaxPtr = &aabbMax)
				{
					obj.SetAabbForceUpdate(absproxy, ref *(BulletSharp.Math.Vector3*)aabbMinPtr, ref *(BulletSharp.Math.Vector3*)aabbMaxPtr, __unnamed3);
				}
			}
		}
        public unsafe static void GetAabb(this BroadphaseInterface obj, BroadphaseProxy proxy, out OpenTK.Vector3 aabbMin, out OpenTK.Vector3 aabbMax)
		{
			fixed (OpenTK.Vector3* aabbMinPtr = &aabbMin)
			{
				fixed (OpenTK.Vector3* aabbMaxPtr = &aabbMax)
				{
                    obj.GetAabb(proxy, out *(BulletSharp.Math.Vector3*)aabbMinPtr, out *(BulletSharp.Math.Vector3*)aabbMaxPtr);
				}
			}
		}
		public unsafe static void SetAabb(this BroadphaseInterface obj, BroadphaseProxy proxy, ref OpenTK.Vector3 aabbMin, ref OpenTK.Vector3 aabbMax, Dispatcher dispatcher)
		{
			fixed (OpenTK.Vector3* aabbMinPtr = &aabbMin)
			{
				fixed (OpenTK.Vector3* aabbMaxPtr = &aabbMax)
				{
					obj.SetAabb(proxy, ref *(BulletSharp.Math.Vector3*)aabbMinPtr, ref *(BulletSharp.Math.Vector3*)aabbMaxPtr, dispatcher);
				}
			}
		}
 public void AddOverlappingObjectInternal(BroadphaseProxy otherProxy, BroadphaseProxy thisProxy)
 {
     btGhostObject_addOverlappingObjectInternal2(_native, otherProxy._native,
                                                 thisProxy._native);
 }
 public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher)
 {
     btOverlappingPairCallback_removeOverlappingPairsContainingProxy(_native, proxy0._native, dispatcher._native);
 }
		public BroadphasePair FindPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
		{
            return new BroadphasePair(btOverlappingPairCache_findPair(_native, proxy0._native, proxy1._native));
		}
示例#8
0
 public bool NeedsBroadphaseCollision(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return(btSortedOverlappingPairCache_needsBroadphaseCollision(_native, proxy0._native, proxy1._native));
 }
 public abstract void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher);
 private bool NeedBroadphaseCollisionUnmanaged(IntPtr proxy0, IntPtr proxy1)
 {
     return(NeedBroadphaseCollision(BroadphaseProxy.GetManaged(proxy0), BroadphaseProxy.GetManaged(proxy1)));
 }
示例#11
0
 public void SetNewBroadphaseProxy(BroadphaseProxy broadphaseProxy)
 {
     btRigidBody_setNewBroadphaseProxy(_native, broadphaseProxy._native);
 }
示例#12
0
 public void RemoveOverlappingObjectInternal(BroadphaseProxy otherProxy, Dispatcher dispatcher,
                                             BroadphaseProxy thisProxy = null)
 {
     btGhostObject_removeOverlappingObjectInternal(Native, otherProxy.Native,
                                                   dispatcher.Native, (thisProxy != null) ? thisProxy.Native : IntPtr.Zero);
 }
示例#13
0
 public void AddOverlappingObjectInternal(BroadphaseProxy otherProxy, BroadphaseProxy thisProxy = null)
 {
     btGhostObject_addOverlappingObjectInternal(Native, otherProxy.Native,
                                                (thisProxy != null) ? thisProxy.Native : IntPtr.Zero);
 }
 public abstract void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher);
 public abstract IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher);
 /*
 protected OverlappingPairCallback()
 {
     _native = btOverlappingPairCallbackWrapper_new();
 }
 */
 public abstract BroadphasePair AddOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1);
 bool TestAabbOverlap(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return btAxisSweep3_testAabbOverlap(_native, proxy0._native, proxy1._native);
 }
 public void DestroyProxy(BroadphaseProxy proxy, Dispatcher dispatcher)
 {
     btBroadphaseInterface_destroyProxy(_native, proxy._native, dispatcher._native);
 }
示例#19
0
 private bool ProcessUnmanaged(IntPtr proxy)
 {
     return(Process(BroadphaseProxy.GetManaged(proxy)));
 }
 public void GetAabb(BroadphaseProxy proxy, out Vector3 aabbMin, out Vector3 aabbMax)
 {
     btBroadphaseInterface_getAabb(_native, proxy._native, out aabbMin, out aabbMax);
 }
 /*
  * protected OverlappingPairCallback()
  * {
  *  _native = btOverlappingPairCallbackWrapper_new();
  * }
  */
 public abstract BroadphasePair AddOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1);
 public void SetAabb(BroadphaseProxy proxy, Vector3 aabbMin, Vector3 aabbMax, Dispatcher dispatcher)
 {
     SetAabbRef(proxy, ref aabbMin, ref aabbMax, dispatcher);
 }
示例#23
0
 public void CleanProxyFromPairs(BroadphaseProxy proxy, Dispatcher dispatcher)
 {
     btOverlappingPairCache_cleanProxyFromPairs(_native, proxy._native, dispatcher._native);
 }
 public void SetAabbRef(BroadphaseProxy proxy, ref Vector3 aabbMin, ref Vector3 aabbMax, Dispatcher dispatcher)
 {
     btBroadphaseInterface_setAabb(_native, proxy._native, ref aabbMin, ref aabbMax, dispatcher._native);
 }
示例#25
0
 public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher)
 {
     return(btOverlappingPairCallback_removeOverlappingPair(_native, proxy0._native, proxy1._native, dispatcher._native));
 }
 public abstract bool Process(BroadphaseProxy proxy);
 public override BroadphasePair AddOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return new BroadphasePair(btOverlappingPairCallback_addOverlappingPair(_native, proxy0._native, proxy1._native));
 }
示例#28
0
 public void DestroyProxy(BroadphaseProxy proxy, Dispatcher dispatcher)
 {
     btBroadphaseInterface_destroyProxy(_native, proxy._native, dispatcher._native);
 }
		public void CleanProxyFromPairs(BroadphaseProxy proxy, Dispatcher dispatcher)
		{
			btOverlappingPairCache_cleanProxyFromPairs(_native, proxy._native, dispatcher._native);
		}
示例#30
0
 public void SetAabbRef(BroadphaseProxy proxy, ref Vector3 aabbMin, ref Vector3 aabbMax, Dispatcher dispatcher)
 {
     btBroadphaseInterface_setAabb(_native, proxy._native, ref aabbMin, ref aabbMax, dispatcher._native);
 }
示例#31
0
 public virtual bool NeedsCollision(BroadphaseProxy proxy0)
 {
     return(btCollisionWorld_ContactResultCallbackWrapper_needsCollision(Native, proxy0.Native));
 }
 public void RemoveOverlappingObjectInternal(BroadphaseProxy otherProxy, Dispatcher dispatcher,
                                             BroadphaseProxy thisProxy)
 {
     btGhostObject_removeOverlappingObjectInternal2(_native, otherProxy._native,
                                                    dispatcher._native, thisProxy._native);
 }
示例#33
0
 public void GetAabb(BroadphaseProxy proxy, out Vector3 aabbMin, out Vector3 aabbMax)
 {
     btBroadphaseInterface_getAabb(_native, proxy._native, out aabbMin, out aabbMax);
 }
示例#34
0
 public bool NeedBroadphaseCollision(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return(btOverlapFilterCallback_needBroadphaseCollision(_native, proxy0._native,
                                                            proxy1._native));
 }
示例#35
0
 public void SetAabb(BroadphaseProxy proxy, Vector3 aabbMin, Vector3 aabbMax, Dispatcher dispatcher)
 {
     SetAabbRef(proxy, ref aabbMin, ref aabbMax, dispatcher);
 }
示例#36
0
 public void UnQuantize(BroadphaseProxy proxy, out Vector3 aabbMin, out Vector3 aabbMax)
 {
     btAxisSweep3_unQuantize(Native, proxy.Native, out aabbMin, out aabbMax);
 }
 void UnQuantize(BroadphaseProxy proxy, Vector3 aabbMin, Vector3 aabbMax)
 {
     btAxisSweep3_unQuantize(_native, proxy._native, out aabbMin, out aabbMax);
 }
示例#38
0
 public override BroadphasePair AddOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return null;
 }
示例#39
0
 public abstract bool Process(BroadphaseProxy proxy);
示例#40
0
 public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher)
 {
     return IntPtr.Zero;
 }
 public abstract bool NeedBroadphaseCollision(BroadphaseProxy proxy0, BroadphaseProxy proxy1);
示例#42
0
 public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher)
 {
     throw new NotImplementedException();
 }
 public abstract IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher);
 public void RemoveOverlappingObjectInternal(BroadphaseProxy otherProxy, Dispatcher dispatcher, BroadphaseProxy thisProxy)
 {
     btGhostObject_removeOverlappingObjectInternal2(_native, otherProxy._native, dispatcher._native, thisProxy._native);
 }
示例#45
0
 public override bool Process(BroadphaseProxy proxy)
 {
     return true;
 }
 public void AddOverlappingObjectInternal(BroadphaseProxy otherProxy, BroadphaseProxy thisProxy)
 {
     btGhostObject_addOverlappingObjectInternal2(_native, otherProxy._native, thisProxy._native);
 }
示例#47
0
 public BroadphasePair FindPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return(new BroadphasePair(btOverlappingPairCache_findPair(_native, proxy0._native, proxy1._native)));
 }
		public virtual bool NeedsCollision(BroadphaseProxy proxy0)
		{
			return btCollisionWorld_RayResultCallbackWrapper_needsCollision(_native, proxy0._native);
		}
示例#49
0
 public override BroadphasePair AddOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return(new BroadphasePair(btOverlappingPairCallback_addOverlappingPair(_native, proxy0._native, proxy1._native)));
 }
示例#50
0
 public void SetAabbForceUpdate(BroadphaseProxy absproxy, Vector3 aabbMin,
                                Vector3 aabbMax, Dispatcher __unnamed3)
 {
     btDbvtBroadphase_setAabbForceUpdate(_native, absproxy._native, ref aabbMin,
                                         ref aabbMax, __unnamed3._native);
 }
示例#51
0
 public override void RemoveOverlappingPairsContainingProxy(BroadphaseProxy proxy0, Dispatcher dispatcher)
 {
     btOverlappingPairCallback_removeOverlappingPairsContainingProxy(_native, proxy0._native, dispatcher._native);
 }
 public bool NeedsBroadphaseCollision(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return(btHashedOverlappingPairCache_needsBroadphaseCollision(Native,
                                                                  proxy0.Native, proxy1.Native));
 }
		public bool NeedsBroadphaseCollision(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
		{
			return btSortedOverlappingPairCache_needsBroadphaseCollision(_native, proxy0._native, proxy1._native);
		}
示例#54
0
 public void SetNewBroadphaseProxy(BroadphaseProxy broadphaseProxy)
 {
     btRigidBody_setNewBroadphaseProxy(Native, broadphaseProxy.Native);
 }
 public override IntPtr RemoveOverlappingPair(BroadphaseProxy proxy0, BroadphaseProxy proxy1, Dispatcher dispatcher)
 {
     return btOverlappingPairCallback_removeOverlappingPair(_native, proxy0._native, proxy1._native, dispatcher._native);
 }
 public bool TestAabbOverlap(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return btSimpleBroadphase_testAabbOverlap(_native, proxy0._native, proxy1._native);
 }
		public bool NeedBroadphaseCollision(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
		{
			return btOverlapFilterCallback_needBroadphaseCollision(_native, proxy0._native, proxy1._native);
		}
 bool TestAabbOverlap(BroadphaseProxy proxy0, BroadphaseProxy proxy1)
 {
     return(btAxisSweep3_testAabbOverlap(_native, proxy0._native, proxy1._native));
 }
 void UnQuantize(BroadphaseProxy proxy, Vector3 aabbMin, Vector3 aabbMax)
 {
     btAxisSweep3_unQuantize(_native, proxy._native, out aabbMin, out aabbMax);
 }
 public static void SetAabbMin(this BroadphaseProxy obj, OpenTK.Vector3 value)
 {
     SetAabbMin(obj, ref value);
 }