Newton Dynamics  4.00
ndShape Class Referenceabstract
Inheritance diagram for ndShape:
ndContainersFreeListAlloc< ndShape > ndFreeListAlloc ndShapeCompound ndShapeConvex ndShapeNull ndShapeStaticMesh ndShapeBox ndShapeCapsule ndShapeChamferCylinder ndShapeCone ndShapeConvexHull ndShapeConvexPolygon ndShapeCylinder ndShapePoint ndShapeSphere ndShapeHeightfield ndShapeStatic_bvh ndShapeStaticProceduralMesh

Public Member Functions

 D_CLASS_REFLECTION (ndShape)
 
D_COLLISION_API ndInt32 GetRefCount () const
 
virtual D_COLLISION_API ndInt32 Release () const
 
virtual D_COLLISION_API const ndShapeAddRef () const
 
virtual ndShapeBoxGetAsShapeBox ()
 
virtual ndShapeNullGetAsShapeNull ()
 
virtual ndShapeConeGetAsShapeCone ()
 
virtual ndShapePointGetAsShapePoint ()
 
virtual ndShapeConvexGetAsShapeConvex ()
 
virtual ndShapeSphereGetAsShapeSphere ()
 
virtual ndShapeCapsuleGetAsShapeCapsule ()
 
virtual ndShapeCylinderGetAsShapeCylinder ()
 
virtual ndShapeCompoundGetAsShapeCompound ()
 
virtual ndShapeStatic_bvhGetAsShapeStaticBVH ()
 
virtual ndShapeStaticMeshGetAsShapeStaticMesh ()
 
virtual ndShapeHeightfieldGetAsShapeHeightfield ()
 
virtual ndShapeConvexPolygonGetAsShapeAsConvexPolygon ()
 
virtual ndShapeChamferCylinderGetAsShapeChamferCylinder ()
 
virtual ndShapeStaticProceduralMeshGetAsShapeStaticProceduralMesh ()
 
virtual ndInt32 GetConvexVertexCount () const
 
ndVector GetObbSize () const
 
ndVector GetObbOrigin () const
 
ndFloat32 GetUmbraClipSize () const
 
virtual D_COLLISION_API void MassProperties ()
 
virtual void DebugShape (const ndMatrix &matrix, ndShapeDebugNotify &debugCallback) const =0
 
virtual ndShapeInfo GetShapeInfo () const
 
virtual ndFloat32 GetVolume () const =0
 
virtual ndFloat32 GetBoxMinRadius () const =0
 
virtual ndFloat32 GetBoxMaxRadius () const =0
 
virtual void CalculateAabb (const ndMatrix &matrix, ndVector &p0, ndVector &p1) const =0
 
virtual ndVector SupportVertex (const ndVector &dir, ndInt32 *const vertexIndex) const =0
 
virtual ndVector SupportVertexSpecialProjectPoint (const ndVector &point, const ndVector &dir) const =0
 
virtual ndVector SupportVertexSpecial (const ndVector &dir, ndFloat32 skinMargin, ndInt32 *const vertexIndex) const =0
 
virtual ndInt32 CalculatePlaneIntersection (const ndVector &normal, const ndVector &point, ndVector *const contactsOut) const =0
 
virtual ndVector CalculateVolumeIntegral (const ndMatrix &globalMatrix, const ndVector &globalPlane, const ndShapeInstance &parentScale) const =0
 
virtual ndFloat32 RayCast (ndRayCastNotify &callback, const ndVector &localP0, const ndVector &localP1, ndFloat32 maxT, const ndBody *const body, ndContactPoint &contactOut) const =0
 
virtual ndMatrix CalculateInertiaAndCenterOfMass (const ndMatrix &alignMatrix, const ndVector &localScale, const ndMatrix &matrix) const
 
virtual ndFloat32 CalculateMassProperties (const ndMatrix &offset, ndVector &inertia, ndVector &crossInertia, ndVector &centerOfMass) const
 
virtual D_COLLISION_API void Save (const ndLoadSaveBase::ndSaveDescriptor &desc) const
 
- Public Member Functions inherited from ndFreeListAlloc
D_CORE_API void * operator new (size_t size)
 
D_CORE_API void operator delete (void *ptr)
 

Protected Member Functions

D_COLLISION_API ndShape (ndShapeID id)
 
D_COLLISION_API ndShape (const ndShape &source)
 

Protected Attributes

ndVector m_inertia
 
ndVector m_crossInertia
 
ndVector m_centerOfMass
 
ndVector m_boxSize
 
ndVector m_boxOrigin
 
ndAtomic< ndInt32 > m_refCount
 
ndShapeID m_collisionId
 

Static Protected Attributes

static ndVector m_flushZero
 

Additional Inherited Members

- Static Public Member Functions inherited from ndContainersFreeListAlloc< ndShape >
static void FlushFreeList (ndInt32 size)
 
- Static Public Member Functions inherited from ndFreeListAlloc
static D_CORE_API void Flush ()
 
static D_CORE_API void Flush (ndInt32 size)