|
MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Collaboration diagram for moab::BSPTreePoly::EdgeUse: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().