33 #ifndef __H__UG__tetrahedron_rules__
34 #define __H__UG__tetrahedron_rules__
63 {0, 3}, {1, 3}, {2,3}};
67 {0, 2, 3, -1}, {0, 3, 1, -1}};
83 {2, 5, 3, -1}, {3, 4, 0, -1}};
86 const int FACE_CONTAINS_EDGE[][6] = {{1, 1, 1, 0, 0, 0}, {0, 1, 0, 0, 1, 1},
87 {0, 0, 1, 1, 0, 1}, {1, 0, 0, 1, 1, 0}};
94 {2, 1, -1, 5}, {3, 4, 5, -1}};
101 {{{-1, -1, -1, -1}, {-1, -1, 0, 3}, {-1, 0, -1, 2}, {-1, 3, 2, -1}},
102 {{-1, -1, 0, 3}, {-1, -1, -1, -1}, {0, -1, -1, 1}, {3, -1, 1, -1}},
103 {{-1, 0, -1, 2}, {0, -1, -1, 1}, {-1, -1, -1, -1}, {2, 1, -1, -1}},
104 {{-1, 3, 2, -1}, {3, -1, 1, -1}, {2, 1, -1, -1}, {-1, -1, -1, -1}}};
107 const int FACE_FROM_EDGES[][6] = {{0, 0, 0, 3, 3, -1}, {0, 0, 0, -1, 1, 1},
108 {0, 0, 0, 2, -1, 2}, {3, -1, 2, 2, 3, 2},
109 {3, 1, -1, 3, 1, 1}, {-1, 1, 2, 2, 1, 1}};
158 int Refine(
int* newIndsOut,
int* newEdgeVrts,
bool& newCenterOut,
159 vector3* corners = NULL,
bool* isSnapPoint = NULL);
const int FACE_VRT_INDS[][4]
the local vertex indices of the given face
Definition: tetrahedron_rules.h:66
const int OPPOSED_OBJECT[][NUM_VERTICES]
Definition: tetrahedron_rules.h:75
void SetRefinementRule(GlobalRefinementRule refRule)
Definition: tetrahedron_rules.cpp:45
int Refine(int *newIndsOut, int *newEdgeVrts, bool &newCenterOut, vector3 *corners, bool *)
Definition: tetrahedron_rules.cpp:90
const int NUM_VERTICES
Definition: tetrahedron_rules.h:54
const int FACE_CONTAINS_EDGE[][6]
tells whether the i-th face contains the j-th edge
Definition: tetrahedron_rules.h:86
const int EDGE_FROM_VRTS[4][4]
Associates the index of the connecting edge with each tuple of vertices.
Definition: tetrahedron_rules.h:93
GlobalRefinementRule
identification of refinement rule to be used
Definition: tetrahedron_rules.h:46
@ STANDARD
Definition: tetrahedron_rules.h:47
@ HYBRID_TET_OCT
Definition: tetrahedron_rules.h:48
const int MAX_NUM_INDS_OUT
Definition: tetrahedron_rules.h:59
const int NUM_EDGES
Definition: tetrahedron_rules.h:55
const int FACE_EDGE_INDS[4][4]
returns the j-th edge of the i-th face
Definition: tetrahedron_rules.h:82
GlobalRefinementRule GetRefinementRule()
Definition: tetrahedron_rules.cpp:50
const int NUM_QUADS
Definition: tetrahedron_rules.h:58
const int OPPOSED_EDGE[]
for each edge the local index of the opposed edge
Definition: tetrahedron_rules.h:70
const int NUM_TRIS
Definition: tetrahedron_rules.h:57
bool IsRegularRefRule(const int edgeMarks)
returns true if the specified edgeMarks would lead to a regular refinement
Definition: tetrahedron_rules.cpp:716
const int NUM_FACES
Definition: tetrahedron_rules.h:56
const int EDGE_VRT_INDS[][2]
the local vertex indices of the given edge
Definition: tetrahedron_rules.h:62
const int FACE_FROM_EDGES[][6]
given two edges, the table returns the face, which contains both (or -1)
Definition: tetrahedron_rules.h:107
const int FACE_FROM_VRTS[4][4][4]
Associates the index of the connecting face with each triple of vertices.
Definition: tetrahedron_rules.h:100