Exemple #1
0
        public override btCollisionAlgorithm findAlgorithm(btCollisionObjectWrapper body0Wrap, btCollisionObjectWrapper body1Wrap)
        {
            global::System.IntPtr cPtr = BulletPINVOKE.btCollisionDispatcher_findAlgorithm__SWIG_1(swigCPtr, btCollisionObjectWrapper.getCPtr(body0Wrap), btCollisionObjectWrapper.getCPtr(body1Wrap));
            btCollisionAlgorithm  ret  = (cPtr == global::System.IntPtr.Zero) ? null : new btCollisionAlgorithm(cPtr, false);

            return(ret);
        }
Exemple #2
0
        public virtual btCollisionAlgorithm findAlgorithm(btCollisionObjectWrapper body0Wrap, btCollisionObjectWrapper body1Wrap, btPersistentManifold sharedManifold)
        {
            global::System.IntPtr cPtr = BulletPINVOKE.btDispatcher_findAlgorithm__SWIG_0(swigCPtr, btCollisionObjectWrapper.getCPtr(body0Wrap), btCollisionObjectWrapper.getCPtr(body1Wrap), btPersistentManifold.getCPtr(sharedManifold));
            btCollisionAlgorithm  ret  = (cPtr == global::System.IntPtr.Zero) ? null : new btCollisionAlgorithm(cPtr, false);

            return(ret);
        }
Exemple #3
0
        public btCollisionObjectWrapper getBody1Wrap()
        {
            global::System.IntPtr    cPtr = BulletPINVOKE.btManifoldResult_getBody1Wrap(swigCPtr);
            btCollisionObjectWrapper ret  = (cPtr == global::System.IntPtr.Zero) ? null : new btCollisionObjectWrapper(cPtr, false);

            return(ret);
        }
Exemple #4
0
 public btCollisionObjectWrapper(btCollisionObjectWrapper parent, btCollisionShape shape, btCollisionObject collisionObject, btTransform worldTransform, int partId, int index) : this(BulletPINVOKE.new_btCollisionObjectWrapper(btCollisionObjectWrapper.getCPtr(parent), btCollisionShape.getCPtr(shape), btCollisionObject.getCPtr(collisionObject), btTransform.getCPtr(worldTransform), partId, index), true)
 {
     if (BulletPINVOKE.SWIGPendingException.Pending)
     {
         throw BulletPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Exemple #5
0
 public override void processCollision(btCollisionObjectWrapper body0Wrap, btCollisionObjectWrapper body1Wrap, btDispatcherInfo dispatchInfo, btManifoldResult resultOut)
 {
     BulletPINVOKE.btSphereSphereCollisionAlgorithm_processCollision(swigCPtr, btCollisionObjectWrapper.getCPtr(body0Wrap), btCollisionObjectWrapper.getCPtr(body1Wrap), btDispatcherInfo.getCPtr(dispatchInfo), btManifoldResult.getCPtr(resultOut));
     if (BulletPINVOKE.SWIGPendingException.Pending)
     {
         throw BulletPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Exemple #6
0
            public virtual float addSingleResult(btManifoldPoint cp, btCollisionObjectWrapper colObj0Wrap, int partId0, int index0, btCollisionObjectWrapper colObj1Wrap, int partId1, int index1)
            {
                float ret = BulletPINVOKE.btCollisionWorld_ContactResultCallback_addSingleResult(swigCPtr, btManifoldPoint.getCPtr(cp), btCollisionObjectWrapper.getCPtr(colObj0Wrap), partId0, index0, btCollisionObjectWrapper.getCPtr(colObj1Wrap), partId1, index1);

                if (BulletPINVOKE.SWIGPendingException.Pending)
                {
                    throw BulletPINVOKE.SWIGPendingException.Retrieve();
                }
                return(ret);
            }
		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap)
		{
			object mem = ci.m_dispatcher1.allocateCollisionAlgorithm(sizeof(btSphereBoxCollisionAlgorithm));
			if (!m_swapped)
			{
				return new(mem) btSphereBoxCollisionAlgorithm(0,ci,body0Wrap,body1Wrap,false);
			} else
			{
				return new(mem) btSphereBoxCollisionAlgorithm(0,ci,body0Wrap,body1Wrap,true);
			}
		}
	void gimpacttrimeshpart_vs_plane_collision(
					  btCollisionObjectWrapper * body0Wrap,
					  btCollisionObjectWrapper * body1Wrap,
					  btGImpactMeshShapePart * shape0,
					  btStaticPlaneShape * shape1,bool swapped);
Exemple #9
0
 public btSphereSphereCollisionAlgorithm(btPersistentManifold mf, btCollisionAlgorithmConstructionInfo ci, btCollisionObjectWrapper col0Wrap, btCollisionObjectWrapper col1Wrap) : this(BulletPINVOKE.new_btSphereSphereCollisionAlgorithm__SWIG_0(btPersistentManifold.getCPtr(mf), btCollisionAlgorithmConstructionInfo.getCPtr(ci), btCollisionObjectWrapper.getCPtr(col0Wrap), btCollisionObjectWrapper.getCPtr(col1Wrap)), true)
 {
     if (BulletPINVOKE.SWIGPendingException.Pending)
     {
         throw BulletPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Exemple #10
0
 public void setBody1Wrap(btCollisionObjectWrapper obj1Wrap)
 {
     BulletPINVOKE.btManifoldResult_setBody1Wrap(swigCPtr, btCollisionObjectWrapper.getCPtr(obj1Wrap));
 }
	void gimpact_vs_concave(
					  btCollisionObjectWrapper * body0Wrap,
					  btCollisionObjectWrapper * body1Wrap,
					  btGImpactShapeInterface * shape0,
					  btConcaveShape * shape1,bool swapped);
		virtual	btCollisionAlgorithm* CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo& ci, btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap)
		{
			object mem = ci.m_dispatcher1.allocateCollisionAlgorithm(sizeof(btGImpactCollisionAlgorithm));
			return new(mem) btGImpactCollisionAlgorithm(ci,body0Wrap,body1Wrap);
		}
Exemple #13
0
 public static void objectQuerySingleInternal(btConvexShape castShape, btTransform convexFromTrans, btTransform convexToTrans, btCollisionObjectWrapper colObjWrap, btCollisionWorld.ConvexResultCallback resultCallback, float allowedPenetration)
 {
     BulletPINVOKE.btCollisionWorld_objectQuerySingleInternal(btConvexShape.getCPtr(castShape), btTransform.getCPtr(convexFromTrans), btTransform.getCPtr(convexToTrans), btCollisionObjectWrapper.getCPtr(colObjWrap), btCollisionWorld.ConvexResultCallback.getCPtr(resultCallback), allowedPenetration);
     if (BulletPINVOKE.SWIGPendingException.Pending)
     {
         throw BulletPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Exemple #14
0
 public static void rayTestSingleInternal(btTransform rayFromTrans, btTransform rayToTrans, btCollisionObjectWrapper collisionObjectWrap, btCollisionWorld.RayResultCallback resultCallback)
 {
     BulletPINVOKE.btCollisionWorld_rayTestSingleInternal(btTransform.getCPtr(rayFromTrans), btTransform.getCPtr(rayToTrans), btCollisionObjectWrapper.getCPtr(collisionObjectWrap), btCollisionWorld.RayResultCallback.getCPtr(resultCallback));
     if (BulletPINVOKE.SWIGPendingException.Pending)
     {
         throw BulletPINVOKE.SWIGPendingException.Retrieve();
     }
 }
	bool getSphereDistance( btCollisionObjectWrapper* boxObjWrap, ref btVector3 v3PointOnBox, ref btVector3 normal, double penetrationDepth, ref btVector3 v3SphereCenter, double fRadius, double maxContactDistance );
	btSphereBoxCollisionAlgorithm(btPersistentManifold* mf,btCollisionAlgorithmConstructionInfo& ci,btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap, bool isSwapped);
	btGImpactCollisionAlgorithm( btCollisionAlgorithmConstructionInfo& ci,btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap);
	// Call before process collision
	public btCollisionAlgorithm * newAlgorithm(btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap)
	{
		checkManifold(body0Wrap,body1Wrap);

		btCollisionAlgorithm * convex_algorithm = m_dispatcher.findAlgorithm(
				body0Wrap,body1Wrap,getLastManifold());
		return convex_algorithm ;
	}
	virtual void processCollision (btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap,btDispatcherInfo& dispatchInfo,btManifoldResult* resultOut);
	// Call before process collision
	public void checkConvexAlgorithm(btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap)
	{
		if(m_convex_algorithm) return;
		m_convex_algorithm = newAlgorithm(body0Wrap,body1Wrap);
	}
	//! Collides two gimpact shapes
	/*!
	\pre shape0 and shape1 couldn't be btGImpactMeshShape objects
	*/


	void gimpact_vs_gimpact(btCollisionObjectWrapper* body0Wrap,
					  btCollisionObjectWrapper * body1Wrap,
					  btGImpactShapeInterface * shape0,
					  btGImpactShapeInterface * shape1);
	void addContactPoint(btCollisionObjectWrapper * body0Wrap,
					btCollisionObjectWrapper * body1Wrap,
					btVector3  point,
					btVector3  normal,
					double distance);
	// Call before process collision
	public void checkManifold(btCollisionObjectWrapper* body0Wrap,btCollisionObjectWrapper* body1Wrap)
	{
		if(getLastManifold() == 0)
		{
			newContactManifold(body0Wrap.getCollisionObject(),body1Wrap.getCollisionObject());
		}

		m_resultOut.setPersistentManifold(getLastManifold());
	}
	void collide_sat_triangles(btCollisionObjectWrapper* body0Wrap,
					  btCollisionObjectWrapper* body1Wrap,
					  btGImpactMeshShapePart * shape0,
					  btGImpactMeshShapePart * shape1,
					  int * pairs, int pair_count);
Exemple #25
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(btCollisionObjectWrapper obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
Exemple #26
0
        public virtual btCollisionAlgorithm CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo arg0, btCollisionObjectWrapper body0Wrap, btCollisionObjectWrapper body1Wrap)
        {
            global::System.IntPtr cPtr = BulletPINVOKE.btCollisionAlgorithmCreateFunc_CreateCollisionAlgorithm(swigCPtr, btCollisionAlgorithmConstructionInfo.getCPtr(arg0), btCollisionObjectWrapper.getCPtr(body0Wrap), btCollisionObjectWrapper.getCPtr(body1Wrap));
            btCollisionAlgorithm  ret  = (cPtr == global::System.IntPtr.Zero) ? null : new btCollisionAlgorithm(cPtr, false);

            if (BulletPINVOKE.SWIGPendingException.Pending)
            {
                throw BulletPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
Exemple #27
0
 public btManifoldResult(btCollisionObjectWrapper body0Wrap, btCollisionObjectWrapper body1Wrap) : this(BulletPINVOKE.new_btManifoldResult__SWIG_1(btCollisionObjectWrapper.getCPtr(body0Wrap), btCollisionObjectWrapper.getCPtr(body1Wrap)), true)
 {
 }
	void convex_vs_convex_collision(btCollisionObjectWrapper* body0Wrap,
					  btCollisionObjectWrapper* body1Wrap,
					  btCollisionShape* shape0,
					  btCollisionShape* shape1);
	void shape_vs_shape_collision(
					  btCollisionObjectWrapper* body0,
					  btCollisionObjectWrapper* body1,
					  btCollisionShape * shape0,
					  btCollisionShape * shape1);
Exemple #30
0
            public override btCollisionAlgorithm CreateCollisionAlgorithm(btCollisionAlgorithmConstructionInfo ci, btCollisionObjectWrapper col0Wrap, btCollisionObjectWrapper col1Wrap)
            {
                global::System.IntPtr cPtr = BulletPINVOKE.btSphereSphereCollisionAlgorithm_CreateFunc_CreateCollisionAlgorithm(swigCPtr, btCollisionAlgorithmConstructionInfo.getCPtr(ci), btCollisionObjectWrapper.getCPtr(col0Wrap), btCollisionObjectWrapper.getCPtr(col1Wrap));
                btCollisionAlgorithm  ret  = (cPtr == global::System.IntPtr.Zero) ? null : new btCollisionAlgorithm(cPtr, false);

                if (BulletPINVOKE.SWIGPendingException.Pending)
                {
                    throw BulletPINVOKE.SWIGPendingException.Retrieve();
                }
                return(ret);
            }