AGX Dynamics 2.41.3.0
Loading...
Searching...
No Matches
agxCollide::Mesh::FaceEdgeCirculator Class Reference

Class in order to circulate over the edges connected to a Triangle's face. More...

#include <Mesh.h>

Public Member Functions

 FaceEdgeCirculator ()
 A newly created and unassigned FaceEdgeCirculator will be invalid.
 
bool atEnd () const
 
agx::Vec3 getEdgeEndVertex () const
 
agx::Vec3 getEdgeStartVertex () const
 
uint_fast8_t getLocalEdgeIndex () const
 
const MeshgetMesh () const
 
const Triangle getTriangle () const
 
bool isValid () const
 
FaceEdgeCirculatoroperator++ ()
 Move circulator one step counter clockwise around the face.
 
void operator++ (int)
 Move circulator one step counter clockwise around the face.
 

Protected Member Functions

 FaceEdgeCirculator (const Mesh *mesh, size_t triangleIndex)
 This hidden constructor can only be called from the Mesh class.
 

Protected Attributes

bool m_hasMoved
 
uint_fast8_t m_localEdgeIndex
 
MeshConstRef m_mesh
 
size_t m_triangleIndex
 
bool m_valid
 

Detailed Description

Class in order to circulate over the edges connected to a Triangle's face.

Involves a small overhead compared to using the more low-level access to the raw data by using getMeshData().

Definition at line 290 of file Mesh.h.

Constructor & Destructor Documentation

◆ FaceEdgeCirculator() [1/2]

agxCollide::Mesh::FaceEdgeCirculator::FaceEdgeCirculator ( )

A newly created and unassigned FaceEdgeCirculator will be invalid.

◆ FaceEdgeCirculator() [2/2]

agxCollide::Mesh::FaceEdgeCirculator::FaceEdgeCirculator ( const Mesh mesh,
size_t  triangleIndex 
)
protected

This hidden constructor can only be called from the Mesh class.

Parameters
mesh- Pointer to the mesh
triangleIndexWithin the meshData, the index of the Triangle the circulator points to when constructed.

Member Function Documentation

◆ atEnd()

bool agxCollide::Mesh::FaceEdgeCirculator::atEnd ( ) const
Returns
True if circulator is valid, at start position and has been increased. Watch out in while loops: Also test for isValid() to avoid endless loops.

Definition at line 1047 of file Mesh.h.

◆ getEdgeEndVertex()

agx::Vec3 agxCollide::Mesh::FaceEdgeCirculator::getEdgeEndVertex ( ) const
Returns
Ending vertex of the edge the circulator is pointing to.

Definition at line 1063 of file Mesh.h.

◆ getEdgeStartVertex()

agx::Vec3 agxCollide::Mesh::FaceEdgeCirculator::getEdgeStartVertex ( ) const
Returns
Starting vertex of the edge the circulator is pointing to.

Definition at line 1054 of file Mesh.h.

◆ getLocalEdgeIndex()

uint_fast8_t agxCollide::Mesh::FaceEdgeCirculator::getLocalEdgeIndex ( ) const
Returns
The local edge index of the edge the circulator is pointing to.

Definition at line 1078 of file Mesh.h.

◆ getMesh()

const Mesh * agxCollide::Mesh::FaceEdgeCirculator::getMesh ( ) const
Returns
A pointer to the Mesh this circulator is based on.

Definition at line 1092 of file Mesh.h.

◆ getTriangle()

const Mesh::Triangle agxCollide::Mesh::FaceEdgeCirculator::getTriangle ( ) const
inline
Returns
The triangle the circulator is pointing to.

Definition at line 1071 of file Mesh.h.

◆ isValid()

bool agxCollide::Mesh::FaceEdgeCirculator::isValid ( ) const
Returns
True if the circulator is valid. Circulators become invalid if constructed from or assigned with on invalid data.

Definition at line 1040 of file Mesh.h.

◆ operator++() [1/2]

Mesh::FaceEdgeCirculator & agxCollide::Mesh::FaceEdgeCirculator::operator++ ( )

Move circulator one step counter clockwise around the face.

Definition at line 1033 of file Mesh.h.

◆ operator++() [2/2]

void agxCollide::Mesh::FaceEdgeCirculator::operator++ ( int  )

Move circulator one step counter clockwise around the face.

Definition at line 1024 of file Mesh.h.

Member Data Documentation

◆ m_hasMoved

bool agxCollide::Mesh::FaceEdgeCirculator::m_hasMoved
protected

Definition at line 349 of file Mesh.h.

◆ m_localEdgeIndex

uint_fast8_t agxCollide::Mesh::FaceEdgeCirculator::m_localEdgeIndex
protected

Definition at line 348 of file Mesh.h.

◆ m_mesh

MeshConstRef agxCollide::Mesh::FaceEdgeCirculator::m_mesh
protected

Definition at line 346 of file Mesh.h.

◆ m_triangleIndex

size_t agxCollide::Mesh::FaceEdgeCirculator::m_triangleIndex
protected

Definition at line 347 of file Mesh.h.

◆ m_valid

bool agxCollide::Mesh::FaceEdgeCirculator::m_valid
protected

Definition at line 350 of file Mesh.h.


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