16#ifndef BT_OBB_TRIANGLE_MINKOWSKI_H
17#define BT_OBB_TRIANGLE_MINKOWSKI_H
23btTriangleShape : public btPolyhedralConvexShape
44 virtual void getVertex(
int index, btVector3& vert)
const
54 virtual void getEdge(
int i, btVector3& pa, btVector3& pb)
const
74 for (
int i = 0; i < numVectors; i++)
76 const btVector3& dir = vectors[i];
78 supportVerticesOut[i] =
m_vertices1[dots.maxAxis()];
87 btTriangleShape(
const btVector3& p0,
const btVector3& p1,
const btVector3& p2) : btPolyhedralConvexShape()
95 virtual void getPlane(btVector3 & planeNormal, btVector3 & planeSupport,
int i)
const
111 virtual void getPlaneEquation(
int i, btVector3& planeNormal, btVector3& planeSupport)
const
133 if (dist >= -tolerance && dist <= tolerance)
137 for (i = 0; i < 3; i++)
141 btVector3 edge = pb - pa;
142 btVector3 edgeNormal = edge.cross(normal);
143 edgeNormal.normalize();
145 btScalar edgeConst = pa.dot(edgeNormal);
147 if (dist < -tolerance)
@ TRIANGLE_SHAPE_PROXYTYPE
virtual void getAabbSlow(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
#define BT_DECLARE_ALIGNED_ALLOCATOR()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define ATTRIBUTE_ALIGNED16(a)
btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &dir) const
btConvexShape Interface
btVector3 & getVertexPtr(int index)
void calcNormal(btVector3 &normal) const
virtual bool isInside(const btVector3 &pt, btScalar tolerance) const
virtual const char * getName() const
getName is for debugging
virtual void calculateLocalInertia(btScalar mass, btVector3 &inertia) const
CollisionShape Interface.
virtual void getVertex(int index, btVector3 &vert) const
virtual int getNumVertices() const
virtual void getEdge(int i, btVector3 &pa, btVector3 &pb) const
virtual void getAabb(const btTransform &t, btVector3 &aabbMin, btVector3 &aabbMax) const
getAabb's default implementation is brute force, expected derived classes to implement a fast dedicat...
virtual int getNumPlanes() const
virtual void getPlane(btVector3 &planeNormal, btVector3 &planeSupport, int i) const
virtual void getPlaneEquation(int i, btVector3 &planeNormal, btVector3 &planeSupport) const
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
virtual int getNumEdges() const
virtual void getPreferredPenetrationDirection(int index, btVector3 &penetrationVector) const
virtual int getNumPreferredPenetrationDirections() const
ccl_device_inline float cross(const float2 a, const float2 b)