22 #if !defined(AFX_DGCONVEXCOLLISION_H__57E159CE_6B6F_42DE_891C_1F6C38EB9D29__INCLUDED_) 23 #define AFX_DGCONVEXCOLLISION_H__57E159CE_6B6F_42DE_891C_1F6C38EB9D29__INCLUDED_ 26 #include "dgCollision.h" 38 DG_MSC_VECTOR_ALIGMENT
41 dgInt32 RayCastClosestFace(
dgVector *tetrahedrum,
const dgVector &origin, dgFloat32 &pointDist)
const;
49 virtual dgFloat32 RayCast(
const dgVector &localP0,
const dgVector &localP1,
dgContactPoint &contactOut, OnRayPrecastAction preFilter,
const dgBody *
const body,
void *
const userData)
const;
50 virtual dgFloat32 RayCastSimd(
const dgVector &localP0,
const dgVector &localP1,
dgContactPoint &contactOut, OnRayPrecastAction preFilter,
const dgBody *
const body,
void *
const userData)
const;
54 virtual dgInt32 CalculatePlaneIntersection(
const dgVector &normal,
const dgVector &point,
dgVector *
const contactsOut)
const;
55 virtual dgInt32 CalculatePlaneIntersectionSimd(
const dgVector &normal,
const dgVector &point,
dgVector *
const contactsOut)
const;
56 dgInt32 GetVertexCount()
const {
59 virtual bool IsTriggerVolume()
const;
62 dgInt32 SimplifyClipPolygon(dgInt32 count,
const dgVector &normal,
dgVector *
const polygon)
const;
64 virtual dgVector CalculateVolumeIntegral(
const dgMatrix &globalMatrix, GetBuoyancyPlane bouyancyPlane,
void *
const context)
const;
65 static void CalculateInertia(
void *userData,
int vertexCount,
const dgFloat32 *FaceArray,
int faceId);
68 virtual dgFloat32 GetVolume()
const;
70 virtual dgFloat32 GetBoxMinRadius()
const;
71 virtual dgFloat32 GetBoxMaxRadius()
const;
75 virtual void *GetUserData()
const;
76 virtual void SetUserData(
void *
const userData);
83 virtual void SetAsTriggerVolume(
bool mode);
84 virtual void SerializeLow(dgSerialize callback,
void *
const userData)
const;
87 dgFloat32 GetDiscretedAngleStep(dgFloat32 radius)
const;
90 void SetVolumeAndCG();
92 virtual void DebugCollision(
const dgMatrix &matrix, OnDebugCollisionMeshCallback callback,
void *
const userData)
const;
95 bool SanityCheck(dgInt32 count,
const dgVector &normal,
dgVector *
const contactsOut)
const;
96 dgInt32 RectifyConvexSlice(dgInt32 count,
const dgVector &normal,
dgVector *
const contactsOut)
const;
111 dgFloat32 m_boxMinRadius;
112 dgFloat32 m_boxMaxRadius;
113 dgFloat32 m_simplexVolume;
114 dgUnsigned16 m_edgeCount;
115 dgUnsigned16 m_vertexCount;
116 dgUnsigned32 m_isTriggerVolume : 1;
119 static dgVector m_multiResDir_sse[6];
123 static dgInt32 m_iniliazised;
124 static dgInt32 m_rayCastSimplex[4][4];
127 friend class dgMinkowskiConv;
131 } DG_GCC_VECTOR_ALIGMENT;
135 #endif //AFX_DGCONVEXCOLLISION_H__57E159CE_6B6F_42DE_891C_1F6C38EB9D29__INCLUDED_
Definition: dgBroadPhaseCollision.h:170
Definition: dgCollisionConvex.h:29
Definition: dgVector.h:86
Definition: dgPolyhedra.h:76
Definition: dgCollisionConvex.h:39
Definition: dgCollisionConvexModifier.h:32
Definition: dgCollision.h:178
Definition: dgMatrix.h:41
Definition: dgMemory.h:80
Definition: dgWorld.h:118
Definition: dgCollisionCompound.h:31