My Project: dgCollisionDeformableMesh Class Reference

My Project

Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
dgCollisionDeformableMesh Class Referenceabstract

`#include <dgCollisionDeformableMesh.h>`

Inheritance diagram for dgCollisionDeformableMesh:

## Classes

class | dgDeformableNode
class | dgMeshSegment
class | dgParticle
class | dgVisualVertexData

## Public Member Functions

| dgCollisionDeformableMesh (const dgCollisionDeformableMesh &source)
| dgCollisionDeformableMesh (dgWorld *const world, dgMeshEffect *const mesh, dgCollisionID collsionID)
| dgCollisionDeformableMesh (dgWorld *const world, dgDeserialize deserialization, void *const userData)
virtual | ~dgCollisionDeformableMesh (void)
dgBody * | GetBody () const
dgInt32 | GetParticleCount () const
dgVector | GetParticlePosition (dgInt32 index) const
void | SetOnDebugDisplay (dgCollision::OnDebugCollisionMeshCallback debugDisplay)
void | UpdateVisualNormals ()
dgInt32 | GetVisualPointsCount () const
void | SetSkinThickness (dgFloat32 skinThickness)
void | GetVisualVertexData (dgInt32 vertexStrideInByte, dgFloat32 *const vertex, dgInt32 normalStrideInByte, dgFloat32 *const normals, dgInt32 uvStrideInByte0, dgFloat32 *const uv0)
virtual void | SetMass (dgFloat32 mass)=0
virtual void | SetMatrix (const dgMatrix &matrix)=0
virtual void | ApplyExternalForces (dgFloat32 timestep)=0
virtual void | ResolvePositionsConstraints (dgFloat32 timestep)=0
virtual void | CreateClusters (dgInt32 count, dgFloat32 overlaringWidth)=0
virtual void | EndConfiguration ()=0
virtual void | ConstraintParticle (dgInt32 particleIndex, const dgVector &posit, const dgBody *const body)=0
void * | GetFirtVisualSegment () const
void * | GetNextVisualSegment (void *const segment) const
dgInt32 | GetSegmentMaterial (void *const segment) const
dgInt32 | GetSegmentIndexCount (void *const segment) const
const dgInt32 * | GetSegmentIndexList (void *const segment) const
Public Member Functions inherited from dgCollisionConvex
virtual dgFloat32 | RayCast (const dgVector &localP0, const dgVector &localP1, dgFloat32 maxT, dgContactPoint &contactOut, const dgBody *const body, void *const userData, OnRayPrecastAction preFilter) const
virtual dgFloat32 | ConvexRayCast (const dgCollisionInstance *const convexShape, const dgMatrix &origin, const dgVector &veloc, dgFloat32 maxT, dgContactPoint &contactOut, const dgBody *const referenceBody, const dgCollisionInstance *const referenceInstance, void *const userData, dgInt32 threadId) const
virtual dgVector | SupportVertex (const dgVector &dir, dgInt32 *const vertexIndex) const
virtual dgInt32 | CalculatePlaneIntersection (const dgVector &normal, const dgVector &point, dgVector *const contactsOut, dgFloat32 normalSign) const
virtual dgInt32 | GetConvexVertexCount () const
bool | IntesectionTest (dgCollisionParamProxy &proxy) const
bool | CalculateClosestPoints (dgCollisionParamProxy &proxy) const
dgInt32 | CalculateConvexCastContacts (dgCollisionParamProxy &proxy) const
dgInt32 | CalculateConvexToConvexContact (dgCollisionParamProxy &proxy) const
Public Member Functions inherited from dgCollision
dgInt32 | IsType (dgRTTI type) const
dgUnsigned32 | GetSignature () const
dgCollisionID | GetCollisionPrimityType () const
virtual dgFloat32 | GetSkinThickness () const
virtual void | Serialize (dgSerialize callback, void *const userData) const =0
virtual void | GetCollisionInfo (dgCollisionInfo *const info) const
const dgCollision * | AddRef () const
dgInt32 | GetRefCount () const
virtual dgInt32 | Release () const
const dgVector & | GetObbOrigin () const
virtual dgVector | GetObbSize () const
dgFloat32 | GetUmbraClipSize () const
dgMemoryAllocator * | GetAllocator () const

## Protected Member Functions

virtual void | SetCollisionBBox (const dgVector &p0, const dgVector &p1)
virtual void | DebugCollision (const dgMatrix &matrixPtr, dgCollision::OnDebugCollisionMeshCallback callback, void *const userData) const
virtual void | CalcAABB (const dgMatrix &matrix, dgVector &p0, dgVector &p1) const
bool | SanityCheck () const
void | ImproveTotalFitness ()
void | ImproveNodeFitness (dgDeformableNode *const node)
dgDeformableNode * | BuildTopDown (dgInt32 count, dgDeformableNode *const children, dgDeformableNode *const parent)
dgFloat32 | CalculateSurfaceArea (const dgDeformableNode *const node0, const dgDeformableNode *const node1, dgVector &minBox, dgVector &maxBox) const
dgInt32 | CalculateContacts (dgCollidingPairCollector::dgPair *const pair, dgCollisionParamProxy &proxy)
dgFloat32 | CalculateMassProperties (const dgMatrix &offset, dgVector &inertia, dgVector &crossInertia, dgVector &centerOfMass) const
Protected Member Functions inherited from dgCollisionConvex
| dgCollisionConvex (dgMemoryAllocator *const allocator, dgUnsigned32 signature, dgCollisionID id)
| dgCollisionConvex (dgWorld *const world, dgDeserialize deserialization, void *const userData)
| ~dgCollisionConvex ()
virtual void | SerializeLow (dgSerialize callback, void *const userData) const
virtual dgVector | CalculateVolumeIntegral (const dgMatrix &globalMatrix, const dgVector &plane, const dgCollisionInstance &parentScale) const
virtual dgFloat32 | GetVolume () const
virtual dgFloat32 | GetBoxMinRadius () const
virtual dgFloat32 | GetBoxMaxRadius () const
virtual void * | GetUserData () const
virtual void | SetUserData (void *const userData)
dgInt32 | RayCastClosestFace (dgVector *tetrahedrum, const dgVector &origin, dgFloat32 &pointDist) const
dgInt32 | SimplifyClipPolygon (dgInt32 count, const dgVector &normal, dgVector *const polygon) const
dgVector | CalculateVolumeIntegral (const dgPlane &plane) const
void | SetVolumeAndCG ()
bool | SanityCheck (dgPolyhedra &hull) const
virtual void | MassProperties ()
virtual dgMatrix | CalculateInertiaAndCenterOfMass (const dgMatrix &m_alignMatrix, const dgVector &localScale, const dgMatrix &matrix) const
bool | SanityCheck (dgInt32 count, const dgVector &normal, dgVector *const contactsOut) const
dgPerimenterEdge * | ReduceContacts (dgPerimenterEdge *poly, dgInt32 maxCount) const
dgInt32 | RectifyConvexSlice (dgInt32 count, const dgVector &normal, dgVector *const contactsOut) const
virtual dgVector | ConvexConicSupporVertex (const dgVector &dir) const
virtual dgVector | ConvexConicSupporVertex (const dgVector &point, const dgVector &dir) const
virtual dgInt32 | CalculateContacts (const dgVector &point, const dgVector &normal, dgCollisionParamProxy &proxy, dgVector *const contactsOut) const
dgInt32 | CalculateContactsGeneric (const dgVector &point, const dgVector &normal, dgCollisionParamProxy &proxy, dgVector *const contactsOut) const
dgInt32 | ConvexPolygonsIntersection (const dgVector &nornal, dgInt32 count1, dgVector *const shape1, dgInt32 count2, dgVector *const shape2, dgVector *const contactOut, dgInt32 maxContacts) const
dgInt32 | ConvexPolygonToLineIntersection (const dgVector &normal, dgInt32 count1, dgVector *const shape1, dgInt32 count2, dgVector *const shape2, dgVector *const contactOut, dgVector *const mem) const
dgFloat32 | ConvexConicConvexRayCast (const dgCollisionInstance *const convexConicShape, const dgMatrix &conicShapeMatrix, const dgCollisionInstance *const convexCastingShape, const dgMatrix &castingMatrix, const dgVector &castingVeloc, dgFloat32 maxT, dgContactPoint &contactOut) const
virtual const dgConvexSimplexEdge ** | GetVertexToEdgeMapping () const
Protected Member Functions inherited from dgCollision
| dgCollision (const dgCollision &source)
| dgCollision (dgMemoryAllocator *const allocator, dgUnsigned32 signature, dgCollisionID id)
| dgCollision (dgWorld *const world, dgDeserialize deserialization, void *const userData)
virtual | ~dgCollision ()
void | SetSignature (dgInt32 signature)
virtual dgInt32 | CalculateSignature () const =0

## Protected Attributes

dgVector | m_basePosit
dgParticle | m_particles
dgList< dgMeshSegment > | m_visualSegments
dgFloat32 | m_skinThickness
dgInt32 | m_nodesCount
dgInt32 | m_trianglesCount
dgInt32 | m_visualVertexCount
dgWorld * | m_world
dgDeformableBody * | m_myBody
dgInt32 * | m_indexList
dgVector * | m_faceNormals
dgDeformableNode * | m_rootNode
dgDeformableNode * | m_nodesMemory
dgVisualVertexData * | m_visualVertexData
dgCollision::OnDebugCollisionMeshCallback | m_onDebugDisplay
bool | m_isdoubleSided
Protected Attributes inherited from dgCollisionConvex
void * | m_userData
dgVector * | m_vertex
dgConvexSimplexEdge * | m_simplex
dgFloat32 | m_boxMinRadius
dgFloat32 | m_boxMaxRadius
dgFloat32 | m_simplexVolume
dgUnsigned16 | m_edgeCount
dgUnsigned16 | m_vertexCount
Protected Attributes inherited from dgCollision
dgVector | m_inertia
dgVector | m_crossInertia
dgVector | m_centerOfMass
dgVector | m_boxSize
dgVector | m_boxOrigin
dgInt32 | m_rtti
dgInt32 | m_refCount
dgUnsigned32 | m_signature
dgCollisionID | m_collisionId
dgMemoryAllocator * | m_allocator

## Friends

class | dgWorld
class | dgDeformableBody

## Additional Inherited Members

Public Types inherited from dgCollision

enum

dgRTTI {
dgCollisionNull_RTTI = 1<<0, dgCollisionBox_RTTI = 1<<1, dgCollisionCone_RTTI = 1<<2, dgCollisionSphere_RTTI = 1<<3,
dgCollisionCapsule_RTTI = 1<<4, dgCollisionCylinder_RTTI = 1<<5, dgCollisionConvexHull_RTTI = 1<<6, dgCollisionTaperedCapsule_RTTI = 1<<7,
dgCollisionTaperedCylinder_RTTI = 1<<8, dgCollisionChamferCylinder_RTTI = 1<<9, dgCollisionConvexPolygon_RTTI = 1<<10, dgCollisionConvexShape_RTTI = 1<<11,
dgCollisionCompound_RTTI = 1<<12, dgCollisionBVH_RTTI = 1<<13, dgCollisionMesh_RTTI = 1<<14, dgCollisionDeformableMesh_RTTI = 1<<15,
dgCollisionDeformableSolidMesh_RTTI = 1<<16, dgCollisionDeformableClothPatch_RTTI = 1<<17, dgCollisionUserMesh_RTTI = 1<<18, dgCollisionHeightField_RTTI = 1<<19,
dgCollisionScene_RTTI = 1<<20, dgCollisionCompoundBreakable_RTTI = 1<<21
}

typedef void(dgApi * | OnDebugCollisionMeshCallback) (void *userData, int vertexCount, const dgFloat32 *FaceArray, int faceId)
Static Public Member Functions inherited from dgCollision
static dgUnsigned32 | Quantize (dgFloat32 value)
static dgUnsigned32 | Quantize (void *buffer, int size)
Static Public Attributes inherited from dgCollisionConvex
static dgVector | m_hullDirs [14]
static dgVector | m_dummySum [4]
static dgInt32 | m_rayCastSimplex [4][4]
static dgCollisionPriority | m_priorityOrder
Static Protected Member Functions inherited from dgCollisionConvex
static void | CalculateInertia (void *userData, int vertexCount, const dgFloat32 *const FaceArray, int faceId)

## Constructor & Destructor Documentation

## § dgCollisionDeformableMesh() [1/3]

dgCollisionDeformableMesh::dgCollisionDeformableMesh | ( | const dgCollisionDeformableMesh & | source | ) |

## § dgCollisionDeformableMesh() [2/3]

dgCollisionDeformableMesh::dgCollisionDeformableMesh | ( | dgWorld *const | world,
|  | dgMeshEffect *const | mesh,
|  | dgCollisionID | collsionID
| ) |  |

## § dgCollisionDeformableMesh() [3/3]

dgCollisionDeformableMesh::dgCollisionDeformableMesh | ( | dgWorld *const | world,
|  | dgDeserialize | deserialization,
|  | void *const | userData
| ) |  |

## § ~dgCollisionDeformableMesh()

dgCollisionDeformableMesh::~dgCollisionDeformableMesh | ( | void |  | ) |

virtual

## Member Function Documentation

## § ApplyExternalForces()

virtual void dgCollisionDeformableMesh::ApplyExternalForces | ( | dgFloat32 | timestep | ) |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § BuildTopDown()

dgCollisionDeformableMesh::dgDeformableNode * dgCollisionDeformableMesh::BuildTopDown | ( | dgInt32 | count,
|  | dgDeformableNode *const | children,
|  | dgDeformableNode *const | parent
| ) |  |

protected

## § CalcAABB()

void dgCollisionDeformableMesh::CalcAABB | ( | const dgMatrix & | matrix,
|  | dgVector & | p0,
|  | dgVector & | p1
| ) |  | const

protectedvirtual

Reimplemented from dgCollisionConvex.

## § CalculateContacts()

dgInt32 dgCollisionDeformableMesh::CalculateContacts | ( | dgCollidingPairCollector::dgPair *const | pair,
|  | dgCollisionParamProxy & | proxy
| ) |  |

protected

## § CalculateMassProperties()

dgFloat32 dgCollisionDeformableMesh::CalculateMassProperties | ( | const dgMatrix & | offset,
|  | dgVector & | inertia,
|  | dgVector & | crossInertia,
|  | dgVector & | centerOfMass
| ) |  | const

protectedvirtual

Reimplemented from dgCollisionConvex.

## § CalculateSurfaceArea()

dgFloat32 dgCollisionDeformableMesh::CalculateSurfaceArea | ( | const dgDeformableNode *const | node0,
|  | const dgDeformableNode *const | node1,
|  | dgVector & | minBox,
|  | dgVector & | maxBox
| ) |  | const

protected

## § ConstraintParticle()

virtual void dgCollisionDeformableMesh::ConstraintParticle | ( | dgInt32 | particleIndex,
|  | const dgVector & | posit,
|  | const dgBody *const | body
| ) |  |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § CreateClusters()

virtual void dgCollisionDeformableMesh::CreateClusters | ( | dgInt32 | count,
|  | dgFloat32 | overlaringWidth
| ) |  |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § DebugCollision()

void dgCollisionDeformableMesh::DebugCollision | ( | const dgMatrix & | matrixPtr,
|  | dgCollision::OnDebugCollisionMeshCallback | callback,
|  | void *const | userData
| ) |  | const

protectedvirtual

Reimplemented from dgCollisionConvex.

Reimplemented in dgCollisionDeformableSolidMesh.

## § EndConfiguration()

virtual void dgCollisionDeformableMesh::EndConfiguration | ( |  | ) |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § GetBody()

dgBody * dgCollisionDeformableMesh::GetBody | ( |  | ) | const

## § GetFirtVisualSegment()

void * dgCollisionDeformableMesh::GetFirtVisualSegment | ( |  | ) | const

## § GetNextVisualSegment()

void * dgCollisionDeformableMesh::GetNextVisualSegment | ( | void *const | segment | ) | const

## § GetParticleCount()

dgInt32 dgCollisionDeformableMesh::GetParticleCount | ( |  | ) | const

## § GetParticlePosition()

dgVector dgCollisionDeformableMesh::GetParticlePosition | ( | dgInt32 | index | ) | const

## § GetSegmentIndexCount()

dgInt32 dgCollisionDeformableMesh::GetSegmentIndexCount | ( | void *const | segment | ) | const

## § GetSegmentIndexList()

const dgInt32 * dgCollisionDeformableMesh::GetSegmentIndexList | ( | void *const | segment | ) | const

## § GetSegmentMaterial()

dgInt32 dgCollisionDeformableMesh::GetSegmentMaterial | ( | void *const | segment | ) | const

## § GetVisualPointsCount()

dgInt32 dgCollisionDeformableMesh::GetVisualPointsCount | ( |  | ) | const

## § GetVisualVertexData()

void dgCollisionDeformableMesh::GetVisualVertexData | ( | dgInt32 | vertexStrideInByte,
|  | dgFloat32 *const | vertex,
|  | dgInt32 | normalStrideInByte,
|  | dgFloat32 *const | normals,
|  | dgInt32 | uvStrideInByte0,
|  | dgFloat32 *const | uv0
| ) |  |

## § ImproveNodeFitness()

void dgCollisionDeformableMesh::ImproveNodeFitness | ( | dgDeformableNode *const | node | ) |

protected

## § ImproveTotalFitness()

void dgCollisionDeformableMesh::ImproveTotalFitness | ( |  | ) |

protected

## § ResolvePositionsConstraints()

virtual void dgCollisionDeformableMesh::ResolvePositionsConstraints | ( | dgFloat32 | timestep | ) |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § SanityCheck()

bool dgCollisionDeformableMesh::SanityCheck | ( |  | ) | const

protected

## § SetCollisionBBox()

void dgCollisionDeformableMesh::SetCollisionBBox | ( | const dgVector & | p0,
|  | const dgVector & | p1
| ) |  |

protectedvirtual

Implements dgCollision.

## § SetMass()

virtual void dgCollisionDeformableMesh::SetMass | ( | dgFloat32 | mass | ) |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § SetMatrix()

virtual void dgCollisionDeformableMesh::SetMatrix | ( | const dgMatrix & | matrix | ) |

pure virtual

Implemented in dgCollisionDeformableClothPatch, and dgCollisionDeformableSolidMesh.

## § SetOnDebugDisplay()

void dgCollisionDeformableMesh::SetOnDebugDisplay | ( | dgCollision::OnDebugCollisionMeshCallback | debugDisplay | ) |

## § SetSkinThickness()

void dgCollisionDeformableMesh::SetSkinThickness | ( | dgFloat32 | skinThickness | ) |

## § UpdateVisualNormals()

void dgCollisionDeformableMesh::UpdateVisualNormals | ( |  | ) |

## Friends And Related Function Documentation

## § dgDeformableBody

friend class dgDeformableBody

friend

## § dgWorld

friend class dgWorld

friend

## Member Data Documentation

## § m_basePosit

dgVector dgCollisionDeformableMesh::m_basePosit

protected

## § m_faceNormals

dgVector* dgCollisionDeformableMesh::m_faceNormals

protected

## § m_indexList

dgInt32* dgCollisionDeformableMesh::m_indexList

protected

## § m_isdoubleSided

bool dgCollisionDeformableMesh::m_isdoubleSided

protected

## § m_myBody

dgDeformableBody* dgCollisionDeformableMesh::m_myBody

protected

## § m_nodesCount

dgInt32 dgCollisionDeformableMesh::m_nodesCount

protected

## § m_nodesMemory

dgDeformableNode* dgCollisionDeformableMesh::m_nodesMemory

protected

## § m_onDebugDisplay

dgCollision::OnDebugCollisionMeshCallback dgCollisionDeformableMesh::m_onDebugDisplay

mutableprotected

## § m_particles

dgParticle dgCollisionDeformableMesh::m_particles

protected

## § m_rootNode

dgDeformableNode* dgCollisionDeformableMesh::m_rootNode

protected

## § m_skinThickness

dgFloat32 dgCollisionDeformableMesh::m_skinThickness

protected

## § m_trianglesCount

dgInt32 dgCollisionDeformableMesh::m_trianglesCount

protected

## § m_visualSegments

dgList<dgMeshSegment> dgCollisionDeformableMesh::m_visualSegments

protected

## § m_visualVertexCount

dgInt32 dgCollisionDeformableMesh::m_visualVertexCount

protected

## § m_visualVertexData

dgVisualVertexData* dgCollisionDeformableMesh::m_visualVertexData

protected

## § m_world

dgWorld* dgCollisionDeformableMesh::m_world

protected

The documentation for this class was generated from the following files:

- dynamics.mod/NewtonDynamics/source/physics/dgCollisionDeformableMesh.h
- dynamics.mod/NewtonDynamics/source/physics/dgCollisionDeformableMesh.cpp