diff --git a/Demos/SoftDemo/SoftDemo.h b/Demos/SoftDemo/SoftDemo.h index 3726527a7..dfaede91a 100644 --- a/Demos/SoftDemo/SoftDemo.h +++ b/Demos/SoftDemo/SoftDemo.h @@ -49,7 +49,7 @@ public: btAlignedObjectArray m_SoftRigidCollisionAlgorithms; - btSoftBody::btSoftBodyWorldInfo m_softBodyWorldInfo; + btSoftBodyWorldInfo m_softBodyWorldInfo; bool m_autocam; diff --git a/src/BulletDynamics/Dynamics/btRigidBody.h b/src/BulletDynamics/Dynamics/btRigidBody.h index ff5efd70f..4596f90a0 100644 --- a/src/BulletDynamics/Dynamics/btRigidBody.h +++ b/src/BulletDynamics/Dynamics/btRigidBody.h @@ -187,6 +187,26 @@ public: void setDamping(btScalar lin_damping, btScalar ang_damping); + btScalar getLinearDamping() const + { + return m_linearDamping; + } + + btScalar getAngularDamping() const + { + return m_angularDamping; + } + + btScalar getLinearSleepingThreshold() const + { + return m_linearSleepingThreshold; + } + + btScalar getAngularSleepingThreshold() const + { + return m_angularSleepingThreshold; + } + void applyDamping(btScalar timeStep); SIMD_FORCE_INLINE const btCollisionShape* getCollisionShape() const { diff --git a/src/BulletSoftBody/btSoftBody.cpp b/src/BulletSoftBody/btSoftBody.cpp index c8cf5b1d1..36a9a73d7 100644 --- a/src/BulletSoftBody/btSoftBody.cpp +++ b/src/BulletSoftBody/btSoftBody.cpp @@ -17,7 +17,7 @@ subject to the following restrictions: #include "btSoftBodyInternals.h" // -btSoftBody::btSoftBody(btSoftBody::btSoftBodyWorldInfo* worldInfo,int node_count, const btVector3* x, const btScalar* m) +btSoftBody::btSoftBody(btSoftBodyWorldInfo* worldInfo,int node_count, const btVector3* x, const btScalar* m) :m_worldInfo(worldInfo) { /* Init */ @@ -1911,7 +1911,7 @@ for(i=0;i m_sparsesdf; +}; + + /// btSoftBody is work-in-progress class btSoftBody : public btCollisionObject { @@ -135,18 +149,6 @@ public: typedef btAlignedObjectArray tScalarArray; typedef btAlignedObjectArray tVector3Array; - /* btSoftBodyWorldInfo */ - struct btSoftBodyWorldInfo - { - btScalar air_density; - btScalar water_density; - btScalar water_offset; - btVector3 water_normal; - btBroadphaseInterface* m_broadphase; - btCollisionDispatcher* m_dispatcher; - btVector3 m_gravity; - btSparseSdf<3> m_sparsesdf; - }; /* sCti is Softbody contact info */ struct sCti diff --git a/src/BulletSoftBody/btSoftBodyHelpers.cpp b/src/BulletSoftBody/btSoftBodyHelpers.cpp index 5f6dec672..05f62158c 100644 --- a/src/BulletSoftBody/btSoftBodyHelpers.cpp +++ b/src/BulletSoftBody/btSoftBodyHelpers.cpp @@ -444,7 +444,7 @@ void btSoftBodyHelpers::DrawFrame( btSoftBody* psb, } // -btSoftBody* btSoftBodyHelpers::CreateRope( btSoftBody::btSoftBodyWorldInfo& worldInfo, const btVector3& from, +btSoftBody* btSoftBodyHelpers::CreateRope( btSoftBodyWorldInfo& worldInfo, const btVector3& from, const btVector3& to, int res, int fixeds) @@ -476,7 +476,7 @@ btSoftBody* btSoftBodyHelpers::CreateRope( btSoftBody::btSoftBodyWorldInfo& wor } // -btSoftBody* btSoftBodyHelpers::CreatePatch(btSoftBody::btSoftBodyWorldInfo& worldInfo,const btVector3& corner00, +btSoftBody* btSoftBodyHelpers::CreatePatch(btSoftBodyWorldInfo& worldInfo,const btVector3& corner00, const btVector3& corner10, const btVector3& corner01, const btVector3& corner11, @@ -553,7 +553,7 @@ btSoftBody* btSoftBodyHelpers::CreatePatch(btSoftBody::btSoftBodyWorldInfo& wor } // -btSoftBody* btSoftBodyHelpers::CreateEllipsoid(btSoftBody::btSoftBodyWorldInfo& worldInfo,const btVector3& center, +btSoftBody* btSoftBodyHelpers::CreateEllipsoid(btSoftBodyWorldInfo& worldInfo,const btVector3& center, const btVector3& radius, int res) { @@ -585,7 +585,7 @@ btSoftBody* btSoftBodyHelpers::CreateEllipsoid(btSoftBody::btSoftBodyWorldInfo& // -btSoftBody* btSoftBodyHelpers::CreateFromTriMesh(btSoftBody::btSoftBodyWorldInfo& worldInfo,const btScalar* vertices, +btSoftBody* btSoftBodyHelpers::CreateFromTriMesh(btSoftBodyWorldInfo& worldInfo,const btScalar* vertices, const int* triangles, int ntriangles) { @@ -627,7 +627,7 @@ btSoftBody* btSoftBodyHelpers::CreateFromTriMesh(btSoftBody::btSoftBodyWorldInf } // -btSoftBody* btSoftBodyHelpers::CreateFromConvexHull(btSoftBody::btSoftBodyWorldInfo& worldInfo, const btVector3* vertices, +btSoftBody* btSoftBodyHelpers::CreateFromConvexHull(btSoftBodyWorldInfo& worldInfo, const btVector3* vertices, int nvertices) { HullDesc hdsc(QF_TRIANGLES,nvertices,vertices); diff --git a/src/BulletSoftBody/btSoftBodyHelpers.h b/src/BulletSoftBody/btSoftBodyHelpers.h index 2e9a989b5..7e99d685a 100644 --- a/src/BulletSoftBody/btSoftBodyHelpers.h +++ b/src/BulletSoftBody/btSoftBodyHelpers.h @@ -73,13 +73,13 @@ struct btSoftBodyHelpers static void DrawFrame( btSoftBody* psb, btIDebugDraw* idraw); /* Create a rope */ - static btSoftBody* CreateRope( btSoftBody::btSoftBodyWorldInfo& worldInfo, + static btSoftBody* CreateRope( btSoftBodyWorldInfo& worldInfo, const btVector3& from, const btVector3& to, int res, int fixeds); /* Create a patch */ - static btSoftBody* CreatePatch(btSoftBody::btSoftBodyWorldInfo& worldInfo, + static btSoftBody* CreatePatch(btSoftBodyWorldInfo& worldInfo, const btVector3& corner00, const btVector3& corner10, const btVector3& corner01, @@ -89,17 +89,17 @@ struct btSoftBodyHelpers int fixeds, bool gendiags); /* Create an ellipsoid */ - static btSoftBody* CreateEllipsoid(btSoftBody::btSoftBodyWorldInfo& worldInfo, + static btSoftBody* CreateEllipsoid(btSoftBodyWorldInfo& worldInfo, const btVector3& center, const btVector3& radius, int res); /* Create from trimesh */ - static btSoftBody* CreateFromTriMesh( btSoftBody::btSoftBodyWorldInfo& worldInfo, + static btSoftBody* CreateFromTriMesh( btSoftBodyWorldInfo& worldInfo, const btScalar* vertices, const int* triangles, int ntriangles); /* Create from convex-hull */ - static btSoftBody* CreateFromConvexHull( btSoftBody::btSoftBodyWorldInfo& worldInfo, + static btSoftBody* CreateFromConvexHull( btSoftBodyWorldInfo& worldInfo, const btVector3* vertices, int nvertices); }; diff --git a/src/BulletSoftBody/btSoftBodyInternals.h b/src/BulletSoftBody/btSoftBodyInternals.h index b558cabc0..fd8e8b71c 100644 --- a/src/BulletSoftBody/btSoftBodyInternals.h +++ b/src/BulletSoftBody/btSoftBodyInternals.h @@ -506,7 +506,7 @@ static inline btScalar VolumeOf( const btVector3& x0, } // -static void EvaluateMedium( const btSoftBody::btSoftBodyWorldInfo* wfi, +static void EvaluateMedium( const btSoftBodyWorldInfo* wfi, const btVector3& x, btSoftBody::sMedium& medium) { diff --git a/src/BulletSoftBody/btSoftRigidDynamicsWorld.h b/src/BulletSoftBody/btSoftRigidDynamicsWorld.h index 3b498bb58..1ffeeca33 100644 --- a/src/BulletSoftBody/btSoftRigidDynamicsWorld.h +++ b/src/BulletSoftBody/btSoftRigidDynamicsWorld.h @@ -40,14 +40,15 @@ protected: void solveSoftBodiesConstraints(); - virtual void debugDrawWorld(); + public: btSoftRigidDynamicsWorld(btDispatcher* dispatcher,btBroadphaseInterface* pairCache,btConstraintSolver* constraintSolver,btCollisionConfiguration* collisionConfiguration); virtual ~btSoftRigidDynamicsWorld(); - + + virtual void debugDrawWorld(); void addSoftBody(btSoftBody* body);