My Project: dgPolyhedra Class Reference

My Project

Classes | Public Member Functions | Friends | List of all members
dgPolyhedra Class Reference

`#include <dgPolyhedra.h>`

Inheritance diagram for dgPolyhedra:

## Classes

class | dgPairKey

## Public Member Functions

| dgPolyhedra (dgMemoryAllocator *const allocator)
| dgPolyhedra (const dgPolyhedra &polyhedra)
virtual | ~dgPolyhedra ()
virtual void | BeginFace ()
dgEdge * | AddFace (dgInt32 v0, dgInt32 v1, dgInt32 v2)
dgEdge * | AddFace (dgInt32 count, const dgInt32 *const index)
dgEdge * | AddFace (dgInt32 count, const dgInt32 *const index, const dgInt64 *const userdata)
virtual void | EndFace ()
virtual void | DeleteFace (dgEdge *const edge)
dgInt32 | GetFaceCount () const
dgInt32 | GetEdgeCount () const
dgInt32 | GetLastVertexIndex () const
dgInt32 | IncLRU () const
void | SetLRU (dgInt32 lru) const
dgEdge * | FindEdge (dgInt32 v0, dgInt32 v1) const
dgTreeNode * | FindEdgeNode (dgInt32 v0, dgInt32 v1) const
dgEdge * | AddHalfEdge (dgInt32 v0, dgInt32 v1)
void | DeleteEdge (dgEdge *const edge)
void | DeleteEdge (dgInt32 v0, dgInt32 v1)
dgEdge * | ConnectVertex (dgEdge *const e0, dgEdge *const e1)
bool | FlipEdge (dgEdge *const edge)
dgEdge * | SpliteEdge (dgInt32 newIndex, dgEdge *const edge)
dgBigVector | FaceNormal (const dgEdge *const face, const dgFloat64 *const vertex, dgInt32 strideInBytes) const
void | BeginConectedSurface () const
bool | GetConectedSurface (dgPolyhedra &polyhedra) const
void | EndConectedSurface () const
dgObb | CalculateSphere (const dgFloat64 *const vertex, dgInt32 strideInBytes, const dgMatrix *const basis=NULL) const
void | ChangeEdgeIncidentVertex (dgEdge *const edge, dgInt32 newIndex)
void | DeleteDegenerateFaces (const dgFloat64 *const pool, dgInt32 dstStrideInBytes, dgFloat64 minArea)
bool | Optimize (const dgFloat64 *const pool, dgInt32 strideInBytes, dgReportProgress normalizedProgress, void *const reportProgressUserData, dgFloat64 tol, dgInt32 maxFaceCount=1<< 28)
void | Triangulate (const dgFloat64 *const vertex, dgInt32 strideInBytes, dgPolyhedra *const leftOversOut)
void | ConvexPartition (const dgFloat64 *const vertex, dgInt32 strideInBytes, dgPolyhedra *const leftOversOut)
dgEdge * | CollapseEdge (dgEdge *const edge)
void | PolygonizeFace (dgEdge *face, const dgFloat64 *const pool, dgInt32 stride)
Public Member Functions inherited from dgTree< dgEdge, dgEdgeKey >
| dgTree (dgMemoryAllocator *const allocator)
virtual | ~dgTree ()
dgMemoryAllocator * | GetAllocator () const
void | SetAllocator (dgMemoryAllocator *const allocator)
| operator dgInt32 () const
dgInt32 | GetCount () const
dgTreeNode * | GetRoot () const
dgTreeNode * | Minimum () const
dgTreeNode * | Maximum () const
dgTreeNode * | Find (dgEdgeKey key) const
dgTreeNode * | FindGreater (dgEdgeKey key) const
dgTreeNode * | FindGreaterEqual (dgEdgeKey key) const
dgTreeNode * | FindLessEqual (dgEdgeKey key) const
dgTreeNode * | GetNodeFromInfo (dgEdge &info) const
dgTreeNode * | Insert (const dgEdge &element, dgEdgeKey key, bool &elementWasInTree)
dgTreeNode * | Insert (const dgEdge &element, dgEdgeKey key)
dgTreeNode * | Insert (dgTreeNode *const node, dgEdgeKey key)
dgTreeNode * | Replace (dgEdge &element, dgEdgeKey key)
dgTreeNode * | ReplaceKey (dgEdgeKey oldKey, dgEdgeKey newKey)
dgTreeNode * | ReplaceKey (dgTreeNode *const node, dgEdgeKey key)
void | Remove (dgEdgeKey key)
void | Remove (dgTreeNode *const node)
void | RemoveAll ()
void | Unlink (dgTreeNode *const node)
void | SwapInfo (dgTree &tree)
bool | SanityCheck () const

## Friends

class | dgPolyhedraDescriptor

## Constructor & Destructor Documentation

## § dgPolyhedra() [1/2]

dgPolyhedra::dgPolyhedra | ( | dgMemoryAllocator *const | allocator | ) |

## § dgPolyhedra() [2/2]

dgPolyhedra::dgPolyhedra | ( | const dgPolyhedra & | polyhedra | ) |

## § ~dgPolyhedra()

dgPolyhedra::~dgPolyhedra | ( |  | ) |

virtual

## Member Function Documentation

## § AddFace() [1/3]

DG_INLINE dgEdge * dgPolyhedra::AddFace | ( | dgInt32 | v0,
|  | dgInt32 | v1,
|  | dgInt32 | v2
| ) |  |

## § AddFace() [2/3]

DG_INLINE dgEdge * dgPolyhedra::AddFace | ( | dgInt32 | count,
|  | const dgInt32 *const | index
| ) |  |

## § AddFace() [3/3]

dgEdge * dgPolyhedra::AddFace | ( | dgInt32 | count,
|  | const dgInt32 *const | index,
|  | const dgInt64 *const | userdata
| ) |  |

## § AddHalfEdge()

dgEdge * dgPolyhedra::AddHalfEdge | ( | dgInt32 | v0,
|  | dgInt32 | v1
| ) |  |

## § BeginConectedSurface()

DG_INLINE void dgPolyhedra::BeginConectedSurface | ( |  | ) | const

## § BeginFace()

DG_INLINE void dgPolyhedra::BeginFace | ( |  | ) |

virtual

Reimplemented in dgMeshEffect.

## § CalculateSphere()

dgObb dgPolyhedra::CalculateSphere | ( | const dgFloat64 *const | vertex,
|  | dgInt32 | strideInBytes,
|  | const dgMatrix *const | basis = `NULL`
| ) |  | const

## § ChangeEdgeIncidentVertex()

void dgPolyhedra::ChangeEdgeIncidentVertex | ( | dgEdge *const | edge,
|  | dgInt32 | newIndex
| ) |  |

## § CollapseEdge()

dgEdge * dgPolyhedra::CollapseEdge | ( | dgEdge *const | edge | ) |

## § ConnectVertex()

dgEdge * dgPolyhedra::ConnectVertex | ( | dgEdge *const | e0,
|  | dgEdge *const | e1
| ) |  |

## § ConvexPartition()

void dgPolyhedra::ConvexPartition | ( | const dgFloat64 *const | vertex,
|  | dgInt32 | strideInBytes,
|  | dgPolyhedra *const | leftOversOut
| ) |  |

## § DeleteDegenerateFaces()

void dgPolyhedra::DeleteDegenerateFaces | ( | const dgFloat64 *const | pool,
|  | dgInt32 | dstStrideInBytes,
|  | dgFloat64 | minArea
| ) |  |

## § DeleteEdge() [1/2]

void dgPolyhedra::DeleteEdge | ( | dgEdge *const | edge | ) |

## § DeleteEdge() [2/2]

DG_INLINE void dgPolyhedra::DeleteEdge | ( | dgInt32 | v0,
|  | dgInt32 | v1
| ) |  |

## § DeleteFace()

void dgPolyhedra::DeleteFace | ( | dgEdge *const | edge | ) |

virtual

## § EndConectedSurface()

DG_INLINE void dgPolyhedra::EndConectedSurface | ( |  | ) | const

## § EndFace()

void dgPolyhedra::EndFace | ( |  | ) |

virtual

Reimplemented in dgMeshEffect.

## § FaceNormal()

dgBigVector dgPolyhedra::FaceNormal | ( | const dgEdge *const | face,
|  | const dgFloat64 *const | vertex,
|  | dgInt32 | strideInBytes
| ) |  | const

## § FindEdge()

DG_INLINE dgEdge * dgPolyhedra::FindEdge | ( | dgInt32 | v0,
|  | dgInt32 | v1
| ) |  | const

## § FindEdgeNode()

DG_INLINE dgPolyhedra::dgTreeNode * dgPolyhedra::FindEdgeNode | ( | dgInt32 | v0,
|  | dgInt32 | v1
| ) |  | const

## § FlipEdge()

bool dgPolyhedra::FlipEdge | ( | dgEdge *const | edge | ) |

## § GetConectedSurface()

bool dgPolyhedra::GetConectedSurface | ( | dgPolyhedra & | polyhedra | ) | const

## § GetEdgeCount()

DG_INLINE dgInt32 dgPolyhedra::GetEdgeCount | ( |  | ) | const

## § GetFaceCount()

dgInt32 dgPolyhedra::GetFaceCount | ( |  | ) | const

## § GetLastVertexIndex()

DG_INLINE dgInt32 dgPolyhedra::GetLastVertexIndex | ( |  | ) | const

## § IncLRU()

DG_INLINE dgInt32 dgPolyhedra::IncLRU | ( |  | ) | const

## § Optimize()

bool dgPolyhedra::Optimize | ( | const dgFloat64 *const | pool,
|  | dgInt32 | strideInBytes,
|  | dgReportProgress | normalizedProgress,
|  | void *const | reportProgressUserData,
|  | dgFloat64 | tol,
|  | dgInt32 | maxFaceCount = `1<<28`
| ) |  |

## § PolygonizeFace()

void dgPolyhedra::PolygonizeFace | ( | dgEdge * | face,
|  | const dgFloat64 *const | pool,
|  | dgInt32 | stride
| ) |  |

## § SetLRU()

DG_INLINE void dgPolyhedra::SetLRU | ( | dgInt32 | lru | ) | const

## § SpliteEdge()

dgEdge * dgPolyhedra::SpliteEdge | ( | dgInt32 | newIndex,
|  | dgEdge *const | edge
| ) |  |

## § Triangulate()

void dgPolyhedra::Triangulate | ( | const dgFloat64 *const | vertex,
|  | dgInt32 | strideInBytes,
|  | dgPolyhedra *const | leftOversOut
| ) |  |

## Friends And Related Function Documentation

## § dgPolyhedraDescriptor

friend class dgPolyhedraDescriptor

friend

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

- dynamics.mod/NewtonDynamics/source/core/dgPolyhedra.h
- dynamics.mod/NewtonDynamics/source/core/dgPolyhedra.cpp