OpendTect
6.6
|
Delaunay triangulation for 3D points. Should make sure all the points are defined. More...
Classes | |
struct | DAGTetrahedra |
Public Member Functions | |
DAGTetrahedraTree () | |
DAGTetrahedraTree (const DAGTetrahedraTree &) | |
virtual | ~DAGTetrahedraTree () |
const TypeSet< Coord3 > & | coordList () const |
bool | getConnections (int pointidx, TypeSet< int > &) const |
float | getInitSizeFactor () const |
bool | getSurfaceTriangles (TypeSet< int > &) const |
bool | getTetrahedras (TypeSet< int > &) const |
bool | init () |
int | insertPoint (const Coord3 &, int &dupid) |
bool | insertPoint (int pointidx, int &dupid) |
bool | isOK () const |
char | locationToTetrahedra (const Coord3 &checkpt, const Coord3 *v, char &face, int &dupididx, int &edgeend0idx, int &edgeend1idx, double &dist) const |
DAGTetrahedraTree & | operator= (const DAGTetrahedraTree &) |
char | searchTetrahedra (const Coord3 &) |
bool | setBBox (const Interval< double > &xrg, const Interval< double > &yrg, const Interval< double > &zrg) |
bool | setCoordList (const TypeSet< Coord3 > &, bool copy) |
void | setEpsilon (double err) |
void | setInitSizeFactor (float) |
Static Public Member Functions | |
static char | cNoVertex () |
static bool | computeCoordRanges (const TypeSet< Coord3 > &, Interval< double > &xrg, Interval< double > &yrg, Interval< double > &zrg) |
Protected Member Functions | |
void | addTriangle (int v0, int v1, int v2, TypeSet< int > &triangles) const |
char | isIntersect (const Coord3 &p, const Coord3 &q, const Coord3 &a, const Coord3 &b, const Coord3 &c, char &edge) const |
char | isOnEdge (const Coord3 &p, const Coord3 &a, const Coord3 &b, const Coord3 planenormal, bool &duponfirst, double &signedsqdist) const |
void | legalizeTetrahedras (TypeSet< int > &v0s, TypeSet< int > &v1s, TypeSet< int > &v2s, TypeSet< int > &tis) |
char | location (int ci, int ti, char &face, int &dupid, int &edgeend0, int &edgeend1, double &dist) const |
char | locationToTriangle (const Coord3 &pt, const Coord3 &a, const Coord3 &b, const Coord3 &c, double &signedsqdist, double &closeedgedist, char &dupid, char &edgeidx) const |
int | searchFaceOnChild (int a, int b, int c, int ti) const |
int | searchFaceOnList (int ci, int v0, int v1, int rep, const TypeSet< int > &tis) const |
int | searchFaceOnNeighbor (int a, int b, int c, int ti) const |
char | searchTetrahedra (int ci, int start, TypeSet< int > &tis, char &face, int &sharedv0, int &sharedv1, int &dupid) const |
void | splitInitialBox (int ci) |
void | splitTetrahedraInside (int ci, int ti) |
void | splitTetrahedraOnEdge (int ci, const TypeSet< int > &tis, int &sharedv0, int &sharedv1) |
void | splitTetrahedraOnFace (int ci, int ti0, int ti1, char face) |
Static Protected Member Functions | |
static char | cEdge01 () |
static char | cEdge12 () |
static char | cEdge20 () |
static char | cError () |
static char | cInitVertex0 () |
static char | cInitVertex1 () |
static char | cInitVertex2 () |
static char | cInitVertex3 () |
static char | cIsDuplicate () |
static char | cIsInside () |
static char | cIsOnEdge () |
static char | cIsOnFace () |
static char | cIsOutside () |
static char | cNoFace () |
static char | cNoTetrahedra () |
static char | cNotOnEdge () |
static char | cNotOnPlane () |
Protected Attributes | |
Coord3 | center_ |
TypeSet< Coord3 > * | coordlist_ |
double | epsilon_ |
Coord3 | initialcoords_ [4] |
float | initsizefactor_ |
bool | ownscoordlist_ |
TypeSet< DAGTetrahedra > | tetrahedras_ |
Delaunay triangulation for 3D points. Should make sure all the points are defined.
<>
DAGTetrahedraTree::DAGTetrahedraTree | ( | ) |
DAGTetrahedraTree::DAGTetrahedraTree | ( | const DAGTetrahedraTree & | ) |
|
virtual |
|
protected |
if triangles have {v0,v1,v2}, then return, else, add it.
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinestatic |
|
static |
bool DAGTetrahedraTree::getConnections | ( | int | pointidx, |
TypeSet< int > & | |||
) | const |
|
inline |
bool DAGTetrahedraTree::getSurfaceTriangles | ( | TypeSet< int > & | ) | const |
bool DAGTetrahedraTree::getTetrahedras | ( | TypeSet< int > & | ) | const |
bool DAGTetrahedraTree::init | ( | ) |
int DAGTetrahedraTree::insertPoint | ( | const Coord3 & | , |
int & | dupid | ||
) |
bool DAGTetrahedraTree::insertPoint | ( | int | pointidx, |
int & | dupid | ||
) |
|
protected |
ret inside, outside, on edge, or duplicate. edge will be defined if pq intersects ABC on edge 0, 1, 2 in order.
|
inline |
|
protected |
|
protected |
|
protected |
char DAGTetrahedraTree::locationToTetrahedra | ( | const Coord3 & | checkpt, |
const Coord3 * | v, | ||
char & | face, | ||
int & | dupididx, | ||
int & | edgeend0idx, | ||
int & | edgeend1idx, | ||
double & | dist | ||
) | const |
|
protected |
DAGTetrahedraTree& DAGTetrahedraTree::operator= | ( | const DAGTetrahedraTree & | ) |
|
protected |
|
protected |
|
protected |
char DAGTetrahedraTree::searchTetrahedra | ( | const Coord3 & | ) |
|
protected |
bool DAGTetrahedraTree::setBBox | ( | const Interval< double > & | xrg, |
const Interval< double > & | yrg, | ||
const Interval< double > & | zrg | ||
) |
|
inline |
void DAGTetrahedraTree::setInitSizeFactor | ( | float | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
-2,-3,-4, -5 are their indices.
|
protected |
|
protected |
|
protected |
Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2022