Geom Software - C++ Programming and Geometry Libraries
Fade3D Documentation pages v0.99
FADE3D::Tet3 Class Reference

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...
 
Point3getCorner (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...
 
Tet3getOppTet (const int ith) const
 Get Opposite Tetrahedron. More...
 
Tet3getOppTet (const Point3 *pOppVtx) const
 Get Opposite Tetrahedron. More...
 
Point3getOppVtxInOppTet (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)
 

Detailed Description

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.

tetrahedron-indices.png
IntraTetIndices: A counterclockwise triangle 0,1,2 on the floor and corner 3 above

Member Function Documentation

◆ getCircumcenter()

Point3 FADE3D::Tet3::getCircumcenter ( )
Returns
the center of a sphere that passes through the 4 corners of the present Tet3.

◆ getCorner()

Point3* FADE3D::Tet3::getCorner ( const int  ith) const
Returns
the corner with the ith IntraTetIndex

◆ getCorners()

void FADE3D::Tet3::getCorners ( Point3 *&  p0,
Point3 *&  p1,
Point3 *&  p2,
Point3 *&  p3 
) const

Used to access all corners of the present Tet3 at once

◆ getEdge()

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)

◆ getEdgeIndices()

static std::pair<int,int> FADE3D::Tet3::getEdgeIndices ( int  opp3,
int  opp2 
)
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.

◆ getFacet()

Facet3 FADE3D::Tet3::getFacet ( const int  opp3)

return the Facet3 opposite from the vertex addressed by opp3.

◆ getIntraTetIndex() [1/2]

int FADE3D::Tet3::getIntraTetIndex ( const Point3 p) const
Returns
the IntraTetIndex of the vertex p.

◆ getIntraTetIndex() [2/2]

int FADE3D::Tet3::getIntraTetIndex ( const Tet3 pNeigTet) const

The present Tet3 and pNeigTet must be neighbors. The present method returns the IntraTetIndex of the corner of the present Tet3 opposite to the shared triangle.

◆ getOppTet() [1/2]

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.

◆ getOppTet() [2/2]

Tet3* FADE3D::Tet3::getOppTet ( const Point3 pOppVtx) const

return the opposite tetrahedron of pOppVtx, i.e., the tetrahedron adjacent at the facet opposite to pOppVtx.

◆ getOppVtxInOppTet()

Point3* FADE3D::Tet3::getOppVtxInOppTet ( const int  ith,
bool  bNullAllowed 
) const

return the opposite vertex in the ith opposite tetrahedron.

◆ hasVertex() [1/2]

bool FADE3D::Tet3::hasVertex ( const Point3 p) const
Returns
true if any of the four vertex pointers corresponds to p

◆ hasVertex() [2/2]

bool FADE3D::Tet3::hasVertex ( const Point3 p) const
Returns
true if the coordinates of any of the four corner vertices correspond to the coordinates of p.

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