|
MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Collaboration diagram for moab::BSPTreePoly::Face:Public Member Functions | |
| Face (Face *next) | |
| Face () | |
| ~Face () | |
| double | signed_volume () const |
Public Attributes | |
| BSPTreePoly::EdgeUse * | usePtr |
| BSPTreePoly::Face * | nextPtr |
Definition at line 156 of file BSPTreePoly.cpp.
| moab::BSPTreePoly::Face::Face | ( | Face * | next | ) | [inline] |
Definition at line 158 of file BSPTreePoly.cpp.
| moab::BSPTreePoly::Face::Face | ( | ) | [inline] |
Definition at line 166 of file BSPTreePoly.cpp.
Definition at line 374 of file BSPTreePoly.cpp.
| double moab::BSPTreePoly::Face::signed_volume | ( | ) | const |
Definition at line 486 of file BSPTreePoly.cpp.
References moab::BSPTreePoly::EdgeUse::nextPtr, and moab::sum().
{
CartVect sum( 0.0 );
const CartVect* base = usePtr->start();
CartVect d1 = ( *usePtr->end() - *base );
for( EdgeUse* coedge = usePtr->nextPtr; coedge != usePtr; coedge = coedge->nextPtr )
{
CartVect d2 = ( *coedge->end() - *base );
sum += d1 * d2;
d1 = d2;
}
return ( 1.0 / 6.0 ) * ( sum % *base );
}
Definition at line 176 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::clear(), moab::BSPTreePoly::cut_polyhedron(), moab::BSPTreePoly::is_valid(), and moab::BSPTreePoly::volume().
Definition at line 175 of file BSPTreePoly.cpp.
Referenced by moab::BSPTreePoly::EdgeUse::EdgeUse(), moab::BSPTreePoly::get_vertices(), and moab::split_face().