ReactPhysics3D
v0.10.2
C++ Physics engine library
|
This class describes a polyhedron mesh made of faces and vertices. More...
#include <include/reactphysics3d/utils/quickhull/QHHalfEdgeStructure.h>
Classes | |
struct | Edge |
An half-edge. More... | |
struct | Face |
A face. More... | |
struct | Vertex |
A vertex. More... | |
Public Types | |
using | VerticesPair = Pair< uint32, uint32 > |
using | EdgeVertices = Pair< const Vertex *, const Vertex * > |
Public Member Functions | |
QHHalfEdgeStructure (MemoryAllocator &allocator) | |
Constructor. | |
~QHHalfEdgeStructure () | |
Destructor. | |
Vertex * | addVertex (uint32 externalIndex) |
Add a vertex. | |
Face * | addFace (const Array< Vertex * > &faceVertices, const Array< Vector3 > &points, MemoryAllocator &allocator) |
Add a face. | |
void | removeFace (Face *face) |
Remove a face. | |
void | deleteFace (Face *face) |
Delete the face. | |
void | removeHalfEdge (Edge *edge) |
Remove an half-edge. | |
void | removeVertex (Vertex *vertex) |
Remove a vertex. | |
uint32 | getNbFaces () const |
Return the number of faces. | |
uint32 | getNbHalfEdges () const |
Return the number of half-edges. | |
uint32 | getNbVertices () const |
Return the number of vertices. | |
const Face * | getFaces () const |
Return a pointer to the first face in the linked-list of faces. | |
const Edge * | getHalfEdges () const |
Return a pointer to the first half-edge in the linked-list of half-edges. | |
const Vertex * | getVertices () const |
Return a pointer to the first vertex in the linked-list of vertices. | |
bool | isValid () const |
Return true if the half-edge structure is valid (for debugging purpose) | |
std::string | to_string () const |
Return a string representation of the half-edge structure. | |
This class describes a polyhedron mesh made of faces and vertices.
The faces do not have to be triangles. Note that in the linked-list of half-edges an edge must always follow its twin edge. This way, on closed mesh, we can always iterate every two half-edges to find the unique edges. This class is only used for QuickHull algorithm.
QHHalfEdgeStructure::Face * QHHalfEdgeStructure::addFace | ( | const Array< Vertex * > & | faceVertices, |
const Array< Vector3 > & | points, | ||
MemoryAllocator & | allocator | ||
) |
Add a face.
faceVertices | Array of the vertices in a face (ordered in CCW order as seen from outside the polyhedron). The indices are the internal indices of the vertices inside the HalfEdgeStructure. |
points | Array with the points (coordinates) of the face vertices |
allocator | Reference to a memory allocator |
QHHalfEdgeStructure::Vertex * QHHalfEdgeStructure::addVertex | ( | uint32 | externalIndex | ) |
Add a vertex.
externalIndex | Index of the vertex in the external user vertex data array |
RP3D_FORCE_INLINE uint32 reactphysics3d::QHHalfEdgeStructure::getNbFaces | ( | ) | const |
Return the number of faces.
RP3D_FORCE_INLINE uint32 reactphysics3d::QHHalfEdgeStructure::getNbHalfEdges | ( | ) | const |
Return the number of half-edges.
RP3D_FORCE_INLINE uint32 reactphysics3d::QHHalfEdgeStructure::getNbVertices | ( | ) | const |
Return the number of vertices.