16 #ifndef BT_OBB_TRIANGLE_MINKOWSKI_H
17 #define BT_OBB_TRIANGLE_MINKOWSKI_H
32 virtual int getNumVertices()
const
39 return m_vertices1[index];
44 return m_vertices1[index];
46 virtual void getVertex(
int index,
btVector3& vert)
const
48 vert = m_vertices1[index];
51 virtual int getNumEdges()
const
59 getVertex((i+1)%3,pb);
66 getAabbSlow(t,aabbMin,aabbMax);
71 btVector3 dots = dir.
dot3(m_vertices1[0], m_vertices1[1], m_vertices1[2]);
72 return m_vertices1[dots.
maxAxis()];
76 virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(
const btVector3* vectors,
btVector3* supportVerticesOut,
int numVectors)
const
78 for (
int i=0;i<numVectors;i++)
81 btVector3 dots = dir.
dot3(m_vertices1[0], m_vertices1[1], m_vertices1[2]);
82 supportVerticesOut[i] = m_vertices1[dots.
maxAxis()];
103 getPlaneEquation(i,planeNormal,planeSupport);
106 virtual int getNumPlanes()
const
113 normal = (m_vertices1[1]-m_vertices1[0]).
cross(m_vertices1[2]-m_vertices1[0]);
120 calcNormal(planeNormal);
121 planeSupport = m_vertices1[0];
139 if (dist >= -tolerance && dist <= tolerance)
151 btScalar edgeConst = pa.dot(edgeNormal);
153 if (dist < -tolerance)
163 virtual const char* getName()
const
168 virtual int getNumPreferredPenetrationDirections()
const
173 virtual void getPreferredPenetrationDirection(
int index,
btVector3& penetrationVector)
const
175 calcNormal(penetrationVector);
183 #endif //BT_OBB_TRIANGLE_MINKOWSKI_H