22 #ifndef __ND_COLLISION_CONVEX_POLYGON_H__
23 #define __ND_COLLISION_CONVEX_POLYGON_H__
25 #include "ndShapeConvex.h"
28 #define D_CONVEX_POLYGON_MAX_VERTEX_COUNT 64
39 ndInt32 m_incidentNormal;
40 ndInt32 m_incidentVertex;
52 virtual ndFloat32 GetVolume()
const;
53 virtual ndFloat32 GetBoxMinRadius()
const;
54 virtual ndFloat32 GetBoxMaxRadius()
const;
56 virtual ndVector SupportVertex(
const ndVector& dir, ndInt32*
const vertexIndex)
const;
58 virtual ndInt32 CalculatePlaneIntersection(
const ndVector& normal,
const ndVector& point,
ndVector*
const contactsOut)
const;
62 virtual ndInt32 Release()
const;
65 ndVector m_localPoly[D_CONVEX_POLYGON_MAX_VERTEX_COUNT];
66 ndInt32 m_clippEdgeNormal[D_CONVEX_POLYGON_MAX_VERTEX_COUNT];
67 ndFloat32 m_faceClipSize;
69 ndInt32 m_paddedCount;
72 ndInt32 m_faceNormalIndex;
74 const ndFloat32* m_vertex;
75 const ndInt32* m_vertexIndex;
76 const ndInt32* m_adjacentFaceEdgeNormalIndex;
77 } D_GCC_NEWTON_ALIGN_32;
86 return ndFloat32(1.2f);
89 inline ndFloat32 ndShapeConvexPolygon::GetVolume()
const
91 return ndFloat32(0.0f);
94 inline ndFloat32 ndShapeConvexPolygon::GetBoxMinRadius()
const
96 return m_faceClipSize;
99 inline ndFloat32 ndShapeConvexPolygon::GetBoxMaxRadius()
const
101 return GetBoxMinRadius();