public virtual SWIGTYPE_p_btPersistentManifold getNewManifold(btCollisionObject b0, btCollisionObject b1) { IntPtr cPtr = BulletCollisionPINVOKE.btCollisionDispatcher_getNewManifold(swigCPtr, btCollisionObject.getCPtr(b0), btCollisionObject.getCPtr(b1)); SWIGTYPE_p_btPersistentManifold ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_btPersistentManifold(cPtr, false); return(ret); }
public void contactPairTest(btCollisionObject colObjA, btCollisionObject colObjB, SWIGTYPE_p_btCollisionWorld__ContactResultCallback resultCallback) { BulletCollisionPINVOKE.btCollisionWorld_contactPairTest(swigCPtr, btCollisionObject.getCPtr(colObjA), btCollisionObject.getCPtr(colObjB), SWIGTYPE_p_btCollisionWorld__ContactResultCallback.getCPtr(resultCallback)); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) { throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); } }
public virtual float calculateTimeOfImpact(btCollisionObject body0, btCollisionObject body1, SWIGTYPE_p_btDispatcherInfo dispatchInfo, SWIGTYPE_p_btManifoldResult resultOut) { float ret = BulletCollisionPINVOKE.btSphereSphereCollisionAlgorithm_calculateTimeOfImpact(swigCPtr, btCollisionObject.getCPtr(body0), btCollisionObject.getCPtr(body1), SWIGTYPE_p_btDispatcherInfo.getCPtr(dispatchInfo), SWIGTYPE_p_btManifoldResult.getCPtr(resultOut)); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) { throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); } return(ret); }
public bool OnBulletCreate() { if( rigidBodyObj != null ) // have created! { return true; } if( CollisionShapeObject == null ) // if user not give a collision, search it on itself first! CollisionShapeObject = GetComponent<BCollisionShape>(); if( CollisionShapeObject == null ) { Debug.LogError("Bullet RigidBody need a collision shape!"); return false; } bool cResult = CollisionShapeObject.OnBulletCreate(); if( cResult == false ) { Debug.LogError("Collision Shape Create Error!"); return false; } btTransform trans = new btTransform(); trans.setIdentity(); btVector3 pos = new btVector3(transform.position.x,transform.position.y,transform.position.z); trans.setOrigin(pos); trans.setRotation(new btQuaternion(transform.rotation.x,transform.rotation.y,transform.rotation.z,transform.rotation.w)); //rigidbody is dynamic if and only if mass is non zero, otherwise static bool isDynamic = (Mass != 0.0f); btVector3 localInertia = new btVector3(0,0,0); if (isDynamic) { CollisionShapeObject.CalculateLocalInertia(Mass,localInertia); } //using motionstate is recommended, it provides interpolation capabilities, and only synchronizes 'active' objects myMotionState = new btDefaultMotionState(trans); rbInfo = new btRigidBodyConstructionInfo(Mass,myMotionState.GetSwigPtr(),CollisionShapeObject.GetCollisionShapePtr(),localInertia.GetSwigPtr()); rigidBodyObj = new btRigidBody(rbInfo); collisionObject = btCollisionObject.GetObjectFromSwigPtr(rigidBodyObj.GetCollisionObject()); collisionObject.setFriction(Friction); return true; }
internal static HandleRef getCPtr(btCollisionObject obj) { return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; }
public virtual void removeCollisionObject(btCollisionObject collisionObject) { BulletCollisionPINVOKE.btCollisionWorld_removeCollisionObject(swigCPtr, btCollisionObject.getCPtr(collisionObject)); }
public virtual void addCollisionObject(btCollisionObject collisionObject, short collisionFilterGroup) { BulletCollisionPINVOKE.btCollisionWorld_addCollisionObject__SWIG_1(swigCPtr, btCollisionObject.getCPtr(collisionObject), collisionFilterGroup); }
public static void rayTestSingle(SWIGTYPE_p_btTransform rayFromTrans, SWIGTYPE_p_btTransform rayToTrans, btCollisionObject collisionObject, SWIGTYPE_p_btCollisionShape collisionShape, SWIGTYPE_p_btTransform colObjWorldTransform, SWIGTYPE_p_btCollisionWorld__RayResultCallback resultCallback) { BulletCollisionPINVOKE.btCollisionWorld_rayTestSingle(SWIGTYPE_p_btTransform.getCPtr(rayFromTrans), SWIGTYPE_p_btTransform.getCPtr(rayToTrans), btCollisionObject.getCPtr(collisionObject), SWIGTYPE_p_btCollisionShape.getCPtr(collisionShape), SWIGTYPE_p_btTransform.getCPtr(colObjWorldTransform), SWIGTYPE_p_btCollisionWorld__RayResultCallback.getCPtr(resultCallback)); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); }
public virtual bool needsResponse(btCollisionObject body0, btCollisionObject body1) { bool ret = BulletCollisionPINVOKE.btCollisionDispatcher_needsResponse(swigCPtr, btCollisionObject.getCPtr(body0), btCollisionObject.getCPtr(body1)); return ret; }
public bool checkCollideWith(btCollisionObject co) { bool ret = BulletCollisionPINVOKE.btCollisionObject_checkCollideWith(swigCPtr, btCollisionObject.getCPtr(co)); return(ret); }
internal static HandleRef getCPtr(btCollisionObject obj) { return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr); }
public bool OnBulletCreate(btSoftBodyWorldInfo softBodyWorldInfo) { if( softBodyType == SoftBodyType.Patch ) { Vector3 c00 = transform.TransformPoint(PatchCorner00); Vector3 c01 = transform.TransformPoint(PatchCorner01); Vector3 c10 = transform.TransformPoint(PatchCorner10); Vector3 c11 = transform.TransformPoint(PatchCorner11); btVector3 corner00 = new btVector3(c00.x,c00.y,c00.z); btVector3 corner01 = new btVector3(c01.x,c01.y,c01.z); btVector3 corner10 = new btVector3(c10.x,c10.y,c10.z); btVector3 corner11 = new btVector3(c11.x,c11.y,c11.z); int fixFlag = 0; if( CornerFix00 ) fixFlag = 1; if ( CornerFix01 ) fixFlag += 4; if( CornerFix10 ) fixFlag += 2; if( CornerFix11 ) fixFlag += 8; softBody = btSoftBodyHelpers.CreatePatch(softBodyWorldInfo,corner00.GetSwigPtr(),corner10.GetSwigPtr(),corner01.GetSwigPtr(),corner11.GetSwigPtr(), PatchResolutionX,PatchResolutionY,fixFlag,true); collisionObject = btCollisionObject.GetObjectFromSwigPtr(softBody.GetCollisionObject()); SetParam(); SpawnMesh(); return true; } else if( softBodyType == SoftBodyType.Ellipsoid ) { btVector3 center = new btVector3(transform.position.x,transform.position.y,transform.position.z); btVector3 radius = new btVector3(EllipsoidRadius.x*transform.localScale.x,EllipsoidRadius.y*transform.localScale.y, EllipsoidRadius.z*transform.localScale.z); softBody = btSoftBodyHelpers.CreateEllipsoid(softBodyWorldInfo,center.GetSwigPtr(),radius.GetSwigPtr(),MeshResolution); SetParam(); SpawnMesh(); return true; } else if( softBodyType == SoftBodyType.Rope ) { int fixFlag = 0; if(FixRopeBegin) fixFlag += 1; if( FixRopeEnd ) fixFlag += 2; Vector3 begin = transform.TransformPoint(RopeFromPos); Vector3 end = transform.TransformPoint(RopeToPos); btVector3 fromPos = new btVector3(begin.x,begin.y,begin.z); btVector3 toPos = new btVector3(end.x,end.y,end.z); softBody = btSoftBodyHelpers.CreateRope(softBodyWorldInfo,fromPos.GetSwigPtr(),toPos.GetSwigPtr(),RopeResolution,fixFlag); SetParam(); SpawnLineRender(); return true; } else if( softBodyType == SoftBodyType.TriangleMesh ) { if(CheckUnityMesh() == false) return false; CreateBulletStyleMesh(); List<float> vertexposList = new List<float>(); for(int index=0;index<btVectorArray.Length;index++) { Vector3 vec = btVectorArray[index]; vec = transform.TransformPoint(vec); vertexposList.Add(vec.x); vertexposList.Add(vec.y); vertexposList.Add(vec.z); } softBody = btSoftBodyHelpers.CreateFromTriMesh(softBodyWorldInfo,vertexposList.ToArray(),btTriangleArray,btTriangleArray.Length/3); SetParam(); return true; } return false; }
public virtual float calculateTimeOfImpact(btCollisionObject body0, btCollisionObject body1, SWIGTYPE_p_btDispatcherInfo dispatchInfo, SWIGTYPE_p_btManifoldResult resultOut) { float ret = BulletCollisionPINVOKE.btSphereSphereCollisionAlgorithm_calculateTimeOfImpact(swigCPtr, btCollisionObject.getCPtr(body0), btCollisionObject.getCPtr(body1), SWIGTYPE_p_btDispatcherInfo.getCPtr(dispatchInfo), SWIGTYPE_p_btManifoldResult.getCPtr(resultOut)); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); return ret; }
void CreateSoftDynamicsWorld() { btVector3 gravityVec = new btVector3(Gravity.x, Gravity.y, Gravity.z); btCollisionObject tempObject = new btCollisionObject(); btConstraintSetting tempObject2 = new btConstraintSetting(); softBodyWorldInfo = new btSoftBodyWorldInfo(); ///collision configuration contains default setup for memory, collision setup. Advanced users can create their own configuration. softCollisionConfiguration = new btSoftBodyRigidBodyCollisionConfiguration(); ///use the default collision dispatcher. For parallel processing you can use a diffent dispatcher (see Extras/BulletMultiThreaded) dispatcher = new btCollisionDispatcher(softCollisionConfiguration.GetSwigPtr()); softBodyWorldInfo.m_dispatcher = dispatcher.GetSwigPtr(); btVector3 worldAabbMin = new btVector3(-1000,-1000,-1000); btVector3 worldAabbMax = new btVector3(1000,1000,1000); axisBroadphase = new btAxisSweep3(worldAabbMin.GetSwigPtr(),worldAabbMax.GetSwigPtr(),32766); softBodyWorldInfo.m_broadphase = axisBroadphase.GetSwigPtr(); ///the default constraint solver. For parallel processing you can use a different solver (see Extras/BulletMultiThreaded) solver = new btSequentialImpulseConstraintSolver(); softDynamicsWorld = new btSoftRigidDynamicsWorld(dispatcher.GetSwigPtr(), axisBroadphase.GetSwigPtr(), solver.GetSwigPtr(), softCollisionConfiguration.GetSwigPtr()); dynamicsWorld = btDiscreteDynamicsWorld.GetObjectFromSwigPtr(softDynamicsWorld.getDiscreteDynamicsWorld()); SWIGTYPE_p_btCollisionWorld collisionWorldPtr = dynamicsWorld.getCollisionWorld(); collisionWorld = btCollisionWorld.GetObjectFromSwigPtr(collisionWorldPtr); dynamicsWorld.setGravity(gravityVec.GetSwigPtr()); softBodyWorldInfo.m_gravity = gravityVec.GetSwigPtr(); btVector3 water_nomalVec = new btVector3(0,0,0); softBodyWorldInfo.air_density = 1.2f; softBodyWorldInfo.water_density = 0; softBodyWorldInfo.water_offset = 0; softBodyWorldInfo.water_normal = water_nomalVec.GetSwigPtr(); sparseSdf = softBodyWorldInfo.m_sparsesdf; sparseSdf.Initialize(); AddBulletObjects(); }
public static void rayTestSingle(SWIGTYPE_p_btTransform rayFromTrans, SWIGTYPE_p_btTransform rayToTrans, btCollisionObject collisionObject, SWIGTYPE_p_btCollisionShape collisionShape, SWIGTYPE_p_btTransform colObjWorldTransform, SWIGTYPE_p_btCollisionWorld__RayResultCallback resultCallback) { BulletCollisionPINVOKE.btCollisionWorld_rayTestSingle(SWIGTYPE_p_btTransform.getCPtr(rayFromTrans), SWIGTYPE_p_btTransform.getCPtr(rayToTrans), btCollisionObject.getCPtr(collisionObject), SWIGTYPE_p_btCollisionShape.getCPtr(collisionShape), SWIGTYPE_p_btTransform.getCPtr(colObjWorldTransform), SWIGTYPE_p_btCollisionWorld__RayResultCallback.getCPtr(resultCallback)); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) { throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); } }
public virtual SWIGTYPE_p_btPersistentManifold getNewManifold(btCollisionObject b0, btCollisionObject b1) { IntPtr cPtr = BulletCollisionPINVOKE.btCollisionDispatcher_getNewManifold(swigCPtr, btCollisionObject.getCPtr(b0), btCollisionObject.getCPtr(b1)); SWIGTYPE_p_btPersistentManifold ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_btPersistentManifold(cPtr, false); return ret; }
public static void objectQuerySingle(SWIGTYPE_p_btConvexShape castShape, SWIGTYPE_p_btTransform rayFromTrans, SWIGTYPE_p_btTransform rayToTrans, btCollisionObject collisionObject, SWIGTYPE_p_btCollisionShape collisionShape, SWIGTYPE_p_btTransform colObjWorldTransform, SWIGTYPE_p_btCollisionWorld__ConvexResultCallback resultCallback, float allowedPenetration) { BulletCollisionPINVOKE.btCollisionWorld_objectQuerySingle(SWIGTYPE_p_btConvexShape.getCPtr(castShape), SWIGTYPE_p_btTransform.getCPtr(rayFromTrans), SWIGTYPE_p_btTransform.getCPtr(rayToTrans), btCollisionObject.getCPtr(collisionObject), SWIGTYPE_p_btCollisionShape.getCPtr(collisionShape), SWIGTYPE_p_btTransform.getCPtr(colObjWorldTransform), SWIGTYPE_p_btCollisionWorld__ConvexResultCallback.getCPtr(resultCallback), allowedPenetration); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) { throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); } }
public virtual bool needsResponse(btCollisionObject body0, btCollisionObject body1) { bool ret = BulletCollisionPINVOKE.btCollisionDispatcher_needsResponse(swigCPtr, btCollisionObject.getCPtr(body0), btCollisionObject.getCPtr(body1)); return(ret); }
public virtual void addCollisionObject(btCollisionObject collisionObject, short collisionFilterGroup) { BulletCollisionPINVOKE.btCollisionWorld_addCollisionObject__SWIG_1(swigCPtr, btCollisionObject.getCPtr(collisionObject), collisionFilterGroup); }
public void contactPairTest(btCollisionObject colObjA, btCollisionObject colObjB, SWIGTYPE_p_btCollisionWorld__ContactResultCallback resultCallback) { BulletCollisionPINVOKE.btCollisionWorld_contactPairTest(swigCPtr, btCollisionObject.getCPtr(colObjA), btCollisionObject.getCPtr(colObjB), SWIGTYPE_p_btCollisionWorld__ContactResultCallback.getCPtr(resultCallback)); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); }
public virtual void addCollisionObject(btCollisionObject collisionObject) { BulletCollisionPINVOKE.btCollisionWorld_addCollisionObject__SWIG_2(swigCPtr, btCollisionObject.getCPtr(collisionObject)); }
public static void objectQuerySingle(SWIGTYPE_p_btConvexShape castShape, SWIGTYPE_p_btTransform rayFromTrans, SWIGTYPE_p_btTransform rayToTrans, btCollisionObject collisionObject, SWIGTYPE_p_btCollisionShape collisionShape, SWIGTYPE_p_btTransform colObjWorldTransform, SWIGTYPE_p_btCollisionWorld__ConvexResultCallback resultCallback, float allowedPenetration) { BulletCollisionPINVOKE.btCollisionWorld_objectQuerySingle(SWIGTYPE_p_btConvexShape.getCPtr(castShape), SWIGTYPE_p_btTransform.getCPtr(rayFromTrans), SWIGTYPE_p_btTransform.getCPtr(rayToTrans), btCollisionObject.getCPtr(collisionObject), SWIGTYPE_p_btCollisionShape.getCPtr(collisionShape), SWIGTYPE_p_btTransform.getCPtr(colObjWorldTransform), SWIGTYPE_p_btCollisionWorld__ConvexResultCallback.getCPtr(resultCallback), allowedPenetration); if (BulletCollisionPINVOKE.SWIGPendingException.Pending) throw BulletCollisionPINVOKE.SWIGPendingException.Retrieve(); }
public virtual void removeCollisionObject(btCollisionObject collisionObject) { BulletCollisionPINVOKE.btCollisionWorld_removeCollisionObject(swigCPtr, btCollisionObject.getCPtr(collisionObject)); }
public virtual void addCollisionObject(btCollisionObject collisionObject) { BulletCollisionPINVOKE.btCollisionWorld_addCollisionObject__SWIG_2(swigCPtr, btCollisionObject.getCPtr(collisionObject)); }
public void updateSingleAabb(btCollisionObject colObj) { BulletCollisionPINVOKE.btCollisionWorld_updateSingleAabb(swigCPtr, btCollisionObject.getCPtr(colObj)); }
public void updateSingleAabb(btCollisionObject colObj) { BulletCollisionPINVOKE.btCollisionWorld_updateSingleAabb(swigCPtr, btCollisionObject.getCPtr(colObj)); }
public bool checkCollideWith(btCollisionObject co) { bool ret = BulletCollisionPINVOKE.btCollisionObject_checkCollideWith(swigCPtr, btCollisionObject.getCPtr(co)); return ret; }