added debug rendering for planeshape
added void* userpointer (+getUserPointer/setUserPointer) to each btCollisionShape
This commit is contained in:
@@ -25,9 +25,12 @@ subject to the following restrictions:
|
|||||||
///btCollisionShape provides interface for collision shapes that can be shared among btCollisionObjects.
|
///btCollisionShape provides interface for collision shapes that can be shared among btCollisionObjects.
|
||||||
class btCollisionShape
|
class btCollisionShape
|
||||||
{
|
{
|
||||||
|
|
||||||
|
void* m_userPointer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
btCollisionShape()
|
btCollisionShape() : m_userPointer(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
virtual ~btCollisionShape()
|
virtual ~btCollisionShape()
|
||||||
@@ -88,6 +91,19 @@ public:
|
|||||||
virtual void setMargin(btScalar margin) = 0;
|
virtual void setMargin(btScalar margin) = 0;
|
||||||
virtual btScalar getMargin() const = 0;
|
virtual btScalar getMargin() const = 0;
|
||||||
|
|
||||||
|
|
||||||
|
///optional user data pointer
|
||||||
|
void setUserPointer(void* userPtr)
|
||||||
|
{
|
||||||
|
m_userPointer = userPtr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void* getUserPointer() const
|
||||||
|
{
|
||||||
|
return m_userPointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //COLLISION_SHAPE_H
|
#endif //COLLISION_SHAPE_H
|
||||||
|
|||||||
@@ -17,10 +17,7 @@ class btConvexInternalShape : public btConvexShape
|
|||||||
|
|
||||||
btScalar m_collisionMargin;
|
btScalar m_collisionMargin;
|
||||||
|
|
||||||
btScalar m_padding[2];
|
btScalar m_padding;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -93,6 +90,8 @@ public:
|
|||||||
btAssert(0);
|
btAssert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ subject to the following restrictions:
|
|||||||
#include "BulletCollision/CollisionShapes/btSphereShape.h"
|
#include "BulletCollision/CollisionShapes/btSphereShape.h"
|
||||||
#include "BulletCollision/CollisionShapes/btTriangleCallback.h"
|
#include "BulletCollision/CollisionShapes/btTriangleCallback.h"
|
||||||
#include "BulletCollision/CollisionShapes/btTriangleMeshShape.h"
|
#include "BulletCollision/CollisionShapes/btTriangleMeshShape.h"
|
||||||
|
#include "BulletCollision/CollisionShapes/btStaticPlaneShape.h"
|
||||||
#include "LinearMath/btIDebugDraw.h"
|
#include "LinearMath/btIDebugDraw.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -913,6 +914,25 @@ void btDiscreteDynamicsWorld::debugDrawObject(const btTransform& worldTransform,
|
|||||||
getDebugDrawer()->drawLine(start+worldTransform.getBasis() * (offsetHeight-offsetRadius),start+worldTransform.getBasis() * (-offsetHeight-offsetRadius),color);
|
getDebugDrawer()->drawLine(start+worldTransform.getBasis() * (offsetHeight-offsetRadius),start+worldTransform.getBasis() * (-offsetHeight-offsetRadius),color);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case STATIC_PLANE_PROXYTYPE:
|
||||||
|
{
|
||||||
|
const btStaticPlaneShape* staticPlaneShape = static_cast<const btStaticPlaneShape*>(shape);
|
||||||
|
btScalar planeConst = staticPlaneShape->getPlaneConstant();
|
||||||
|
const btVector3& planeNormal = staticPlaneShape->getPlaneNormal();
|
||||||
|
btVector3 planeOrigin = planeNormal * planeConst;
|
||||||
|
btVector3 vec0,vec1;
|
||||||
|
btPlaneSpace1(planeNormal,vec0,vec1);
|
||||||
|
btScalar vecLen = 100.f;
|
||||||
|
btVector3 pt0 = planeOrigin + vec0*vecLen;
|
||||||
|
btVector3 pt1 = planeOrigin - vec0*vecLen;
|
||||||
|
btVector3 pt2 = planeOrigin + vec1*vecLen;
|
||||||
|
btVector3 pt3 = planeOrigin - vec1*vecLen;
|
||||||
|
getDebugDrawer()->drawLine(worldTransform*pt0,worldTransform*pt1,color);
|
||||||
|
getDebugDrawer()->drawLine(worldTransform*pt2,worldTransform*pt3,color);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user