don't enable concave mesh for soft body demos (work-in-progress)
This commit is contained in:
@@ -1182,7 +1182,7 @@ void SoftDemo::initPhysics()
|
|||||||
|
|
||||||
|
|
||||||
btCollisionShape* groundShape = 0;
|
btCollisionShape* groundShape = 0;
|
||||||
bool useConcaveMesh = true;//not ready yet true;
|
bool useConcaveMesh = false;//not ready yet true;
|
||||||
|
|
||||||
if (useConcaveMesh)
|
if (useConcaveMesh)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ subject to the following restrictions:
|
|||||||
#include "BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h"
|
#include "BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h"
|
||||||
#include "BulletSoftBody/btSoftBody.h"
|
#include "BulletSoftBody/btSoftBody.h"
|
||||||
|
|
||||||
|
#define BT_SOFTBODY_TRIANGLE_EXTRUSION btScalar(0.3)
|
||||||
|
|
||||||
btSoftBodyConcaveCollisionAlgorithm::btSoftBodyConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1,bool isSwapped)
|
btSoftBodyConcaveCollisionAlgorithm::btSoftBodyConcaveCollisionAlgorithm( const btCollisionAlgorithmConstructionInfo& ci, btCollisionObject* body0,btCollisionObject* body1,bool isSwapped)
|
||||||
: btCollisionAlgorithm(ci),
|
: btCollisionAlgorithm(ci),
|
||||||
m_isSwapped(isSwapped),
|
m_isSwapped(isSwapped),
|
||||||
@@ -163,7 +165,7 @@ btCollisionObject* ob = static_cast<btCollisionObject*>(m_triBody);
|
|||||||
// btVector3 other;
|
// btVector3 other;
|
||||||
btVector3 normal = (triangle[1]-triangle[0]).cross(triangle[2]-triangle[0]);
|
btVector3 normal = (triangle[1]-triangle[0]).cross(triangle[2]-triangle[0]);
|
||||||
normal.normalize();
|
normal.normalize();
|
||||||
normal*= 1.3f;
|
normal*= BT_SOFTBODY_TRIANGLE_EXTRUSION;
|
||||||
// other=(triangle[0]+triangle[1]+triangle[2])*0.333333f;
|
// other=(triangle[0]+triangle[1]+triangle[2])*0.333333f;
|
||||||
// other+=normal*22.f;
|
// other+=normal*22.f;
|
||||||
btVector3 pts[6] = {triangle[0]+normal,
|
btVector3 pts[6] = {triangle[0]+normal,
|
||||||
@@ -241,7 +243,7 @@ void btSoftBodyTriangleCallback::setTimeStepAndCounters(btScalar collisionMargin
|
|||||||
m_aabbMin = center - extent;
|
m_aabbMin = center - extent;
|
||||||
m_aabbMax = center + extent;
|
m_aabbMax = center + extent;
|
||||||
|
|
||||||
btScalar extraMargin = collisionMarginTriangle;
|
btScalar extraMargin = collisionMarginTriangle+btScalar(BT_SOFTBODY_TRIANGLE_EXTRUSION);
|
||||||
btVector3 extra(extraMargin,extraMargin,extraMargin);
|
btVector3 extra(extraMargin,extraMargin,extraMargin);
|
||||||
|
|
||||||
m_aabbMax += extra;
|
m_aabbMax += extra;
|
||||||
|
|||||||
Reference in New Issue
Block a user