MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Public Member Functions | |
EdgeUse (Edge *edge) | |
EdgeUse (Edge *edge, Face *face) | |
~EdgeUse () | |
BSPTreePoly::Vertex * | start () const |
BSPTreePoly::Vertex * | end () const |
int | sense () const |
void | insert_after (BSPTreePoly::EdgeUse *prev) |
void | insert_before (BSPTreePoly::EdgeUse *next) |
Public Attributes | |
BSPTreePoly::EdgeUse * | prevPtr |
BSPTreePoly::EdgeUse * | nextPtr |
BSPTreePoly::Edge * | edgePtr |
BSPTreePoly::Face * | facePtr |
Definition at line 46 of file BSPTreePoly.cpp.
moab::BSPTreePoly::EdgeUse::EdgeUse | ( | BSPTreePoly::Edge * | edge, |
BSPTreePoly::Face * | face | ||
) |
Definition at line 266 of file BSPTreePoly.cpp.
References nextPtr, prevPtr, and moab::BSPTreePoly::Face::usePtr.
: edgePtr( edge ), facePtr( face ) { assert( !face->usePtr ); face->usePtr = prevPtr = nextPtr = this; if( !face->usePtr ) { face->usePtr = prevPtr = nextPtr = this; return; } nextPtr = face->usePtr; prevPtr = nextPtr->prevPtr; assert( prevPtr->nextPtr == nextPtr ); nextPtr->prevPtr = this; prevPtr->nextPtr = this; }
Definition at line 312 of file BSPTreePoly.cpp.
{ if( facePtr->usePtr == this ) facePtr->usePtr = ( nextPtr == this ) ? 0 : nextPtr; if( edgePtr->forwardPtr == this ) edgePtr->forwardPtr = 0; if( edgePtr->reversePtr == this ) edgePtr->reversePtr = 0; if( !edgePtr->forwardPtr && !edgePtr->reversePtr ) delete edgePtr; nextPtr->prevPtr = prevPtr; prevPtr->nextPtr = nextPtr; nextPtr = prevPtr = 0; }
BSPTreePoly::Vertex * moab::BSPTreePoly::EdgeUse::end | ( | ) | const [inline] |
Definition at line 346 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::cut_polyhedron(), moab::BSPTreePoly::get_vertices(), insert_after(), moab::BSPTreePoly::is_valid(), and moab::split_face().
{ if( edgePtr->forwardPtr == this ) return edgePtr->end(); else if( edgePtr->reversePtr == this ) return edgePtr->start(); else return 0; }
void moab::BSPTreePoly::EdgeUse::insert_after | ( | BSPTreePoly::EdgeUse * | prev | ) |
Definition at line 284 of file BSPTreePoly.cpp.
References end(), facePtr, nextPtr, and prevPtr.
Referenced by moab::BSPTreePoly::cut_polyhedron(), moab::BSPTreePoly::set(), and moab::split_edge().
void moab::BSPTreePoly::EdgeUse::insert_before | ( | BSPTreePoly::EdgeUse * | next | ) |
Definition at line 298 of file BSPTreePoly.cpp.
References facePtr, nextPtr, prevPtr, and start().
Referenced by moab::split_edge().
int moab::BSPTreePoly::EdgeUse::sense | ( | ) | const |
Definition at line 326 of file BSPTreePoly.cpp.
{ if( edgePtr->forwardPtr == this ) return 1; else if( edgePtr->reversePtr == this ) return -1; else return 0; }
BSPTreePoly::Vertex * moab::BSPTreePoly::EdgeUse::start | ( | ) | const [inline] |
Definition at line 336 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::cut_polyhedron(), insert_before(), moab::BSPTreePoly::is_valid(), and moab::split_face().
{ if( edgePtr->forwardPtr == this ) return edgePtr->start(); else if( edgePtr->reversePtr == this ) return edgePtr->end(); else return 0; }
Definition at line 53 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::cut_polyhedron(), moab::BSPTreePoly::is_valid(), and moab::BSPTreePoly::set_vertex_marks().
Definition at line 54 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::Edge::forward(), insert_after(), insert_before(), moab::BSPTreePoly::is_valid(), moab::BSPTreePoly::Edge::reverse(), moab::split_face(), and moab::BSPTreePoly::Edge::use().
Definition at line 52 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::cut_polyhedron(), EdgeUse(), moab::BSPTreePoly::get_vertices(), insert_after(), insert_before(), moab::BSPTreePoly::is_valid(), moab::BSPTreePoly::set_vertex_marks(), moab::BSPTreePoly::Face::signed_volume(), and moab::split_face().
Definition at line 52 of file BSPTreePoly.cpp.
Referenced by EdgeUse(), insert_after(), insert_before(), moab::BSPTreePoly::is_valid(), and moab::split_face().