22 #ifndef __ND_SHAPE_CONE_H__
23 #define __ND_SHAPE_CONE_H__
25 #include "ndShapeConvex.h"
27 #define D_CONE_SEGMENTS 12
34 D_COLLISION_API
ndShapeCone(ndFloat32 radio, ndFloat32 height);
38 virtual ndShapeCone* GetAsShapeCone() {
return this; }
41 D_COLLISION_API
void Init (ndFloat32 radio, ndFloat32 height);
43 D_COLLISION_API
virtual ndShapeInfo GetShapeInfo()
const;
47 D_COLLISION_API
virtual ndVector SupportVertex(
const ndVector& dir, ndInt32*
const vertexIndex)
const;
48 D_COLLISION_API
virtual ndVector SupportVertexSpecial(
const ndVector& dir, ndFloat32 skinMargin, ndInt32*
const vertexIndex)
const;
52 virtual ndInt32 CalculatePlaneIntersection(
const ndVector& normal,
const ndVector& point,
ndVector*
const contactsOut)
const;
57 ndVector m_vertex[D_CONE_SEGMENTS + 1];
59 static ndInt32 m_shapeRefCount;
60 static ndConvexSimplexEdge m_edgeArray[];
62 } D_GCC_NEWTON_ALIGN_32;