示例#1
0
 internal static HandleRef getCPtr(btSoftBodyRigidBodyCollisionConfiguration obj)
 {
     return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr);
 }
 internal static HandleRef getCPtr(btSoftBodyRigidBodyCollisionConfiguration obj)
 {
     return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
 }
示例#3
0
    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();
    }