Tetrahedron. More...
#include <Tet3.h>
Public Member Functions | |
Point3 | getCircumcenter () |
Get Circumcenter. More... | |
void | getCorners (Point3 *&p0, Point3 *&p1, Point3 *&p2, Point3 *&p3) const |
Get Corners. More... | |
Point3 * | getCorner (const int ith) const |
Get Corner. More... | |
bool | hasVertex (const Point3 *p) const |
Has Vertex. More... | |
bool | hasVertex (const Point3 &p) const |
Has Vertex. More... | |
int | getIntraTetIndex (const Point3 *p) const |
Get IntraTetIndex. More... | |
int | getIntraTetIndex (const Tet3 *pNeigTet) const |
Get IntraTetIndex. More... | |
Tet3 * | getOppTet (const int ith) const |
Get Opposite Tetrahedron. More... | |
Tet3 * | getOppTet (const Point3 *pOppVtx) const |
Get Opposite Tetrahedron. More... | |
Point3 * | getOppVtxInOppTet (const int ith, bool bNullAllowed) const |
Get Opposite Tetrahedron. More... | |
Edge3 | getEdge (const int opp3, const int opp2) |
Get Edge. More... | |
Facet3 | getFacet (const int opp3) |
Get Facet. More... | |
Static Public Member Functions | |
static std::pair< int, int > | getEdgeIndices (int opp3, int opp2) |
Get Edge Indices. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &stream, const Tet3 &pC) |
The 4 corners of a Tetrahedron (Tet3) are addressed by the Intra-Tetrahedron-Indices 0,1,2 and 3. For short we refer to them as the IntraTetIndices. A Tet3 is oriented and thus its IntraTetIndices appear in a specific order. Here is a memory hook (see the image): When a triangle with counterclockwise indices 0,1,2 lies on the floor then the remaining vertex 3 of the tetrahedron lies above this triangle.
Point3 FADE3D::Tet3::getCircumcenter | ( | ) |
Point3* FADE3D::Tet3::getCorner | ( | const int | ith | ) | const |
ith
IntraTetIndex Used to access all corners of the present Tet3 at once
Edge3 FADE3D::Tet3::getEdge | ( | const int | opp3, |
const int | opp2 | ||
) |
return an Edge3 addressed by the two IntraTetIndices opp3
(selects the opposite triangle) and opp2
(selects the edge of this triangle)
|
static |
return a pair of IntraTetIndices that specify an edge of the tetrahedron.
The edge is selected through two IntraTetIndices: At first opp3
selects the opposite triangle. Then opp2
selects the opposite edge in this triangle. The triangle has a counterclockwise orientation (see the image) and thus the two returned indices are exactly defined.
Facet3 FADE3D::Tet3::getFacet | ( | const int | opp3 | ) |
return the Facet3 opposite from the vertex addressed by opp3
.
int FADE3D::Tet3::getIntraTetIndex | ( | const Point3 * | p | ) | const |
p
. int FADE3D::Tet3::getIntraTetIndex | ( | const Tet3 * | pNeigTet | ) | const |
Tet3* FADE3D::Tet3::getOppTet | ( | const int | ith | ) | const |
return the opposite tetrahedron of the ith
corner, i.e., the tetrahedron adjacent at the facet opposite to the ith
vertex.
return the opposite tetrahedron of pOppVtx
, i.e., the tetrahedron adjacent at the facet opposite to pOppVtx
.
Point3* FADE3D::Tet3::getOppVtxInOppTet | ( | const int | ith, |
bool | bNullAllowed | ||
) | const |
return the opposite vertex in the ith
opposite tetrahedron.
bool FADE3D::Tet3::hasVertex | ( | const Point3 * | p | ) | const |
p
bool FADE3D::Tet3::hasVertex | ( | const Point3 & | p | ) | const |
p
.