internal static HandleRef getCPtr(btSequentialImpulseConstraintSolver obj)
 {
     return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr);
 }
Example #2
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();
    }
 public static HandleRef getCPtr(btSequentialImpulseConstraintSolver obj)
 {
     return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
 }
Example #4
0
    void CreateDiscreteDynamicsWorld()
    {
        btVector3 gravityVec = new btVector3(Gravity.x, Gravity.y, Gravity.z);
        ///collision configuration contains default setup for memory, collision setup. Advanced users can create their own configuration.
        collisionConfiguration = new btDefaultCollisionConfiguration();

        ///use the default collision dispatcher. For parallel processing you can use a diffent dispatcher (see Extras/BulletMultiThreaded)
        dispatcher = new btCollisionDispatcher(collisionConfiguration.GetSwigPtr());

        ///btDbvtBroadphase is a good general purpose broadphase. You can also try out btAxis3Sweep.
        overlappingPairCache = new btDbvtBroadphase();

        ///the default constraint solver. For parallel processing you can use a different solver (see Extras/BulletMultiThreaded)
        solver = new btSequentialImpulseConstraintSolver();

        dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher.GetSwigPtr(), overlappingPairCache.GetSwigPtr(), solver.GetSwigPtr(), collisionConfiguration.GetSwigPtr());

        SWIGTYPE_p_btCollisionWorld collisionWorldPtr = dynamicsWorld.getCollisionWorld();
        collisionWorld = btCollisionWorld.GetObjectFromSwigPtr(collisionWorldPtr);

        dynamicsWorld.setGravity(gravityVec.GetSwigPtr());

        AddBulletObjects();
    }