![]() |
OpendTect
6.3
|
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 () |
| DAGTetrahedraTree & | operator= (const DAGTetrahedraTree &) |
| bool | setCoordList (const TypeSet< Coord3 > &, bool copy) |
| const TypeSet< Coord3 > & | coordList () const |
| bool | init () |
| void | setInitSizeFactor (float) |
| float | getInitSizeFactor () const |
| bool | isOK () const |
| bool | setBBox (const Interval< double > &xrg, const Interval< double > &yrg, const Interval< double > &zrg) |
| bool | insertPoint (int pointidx, int &dupid) |
| int | insertPoint (const Coord3 &, int &dupid) |
| char | locationToTetrahedra (const Coord3 &checkpt, const Coord3 *v, char &face, int &dupididx, int &edgeend0idx, int &edgeend1idx, double &dist) const |
| char | searchTetrahedra (const Coord3 &) |
| bool | getConnections (int pointidx, TypeSet< int > &) const |
| bool | getTetrahedras (TypeSet< int > &) const |
| bool | getSurfaceTriangles (TypeSet< int > &) const |
| void | setEpsilon (double err) |
Static Public Member Functions | |
| static bool | computeCoordRanges (const TypeSet< Coord3 > &, Interval< double > &xrg, Interval< double > &yrg, Interval< double > &zrg) |
| static char | cNoVertex () |
Protected Member Functions | |
| void | splitInitialBox (int ci) |
| void | splitTetrahedraInside (int ci, int ti) |
| void | splitTetrahedraOnFace (int ci, int ti0, int ti1, char face) |
| void | splitTetrahedraOnEdge (int ci, const TypeSet< int > &tis, int &sharedv0, int &sharedv1) |
| void | legalizeTetrahedras (TypeSet< int > &v0s, TypeSet< int > &v1s, TypeSet< int > &v2s, TypeSet< int > &tis) |
| char | searchTetrahedra (int ci, int start, TypeSet< int > &tis, char &face, int &sharedv0, int &sharedv1, int &dupid) const |
| int | searchFaceOnNeighbor (int a, int b, int c, int ti) 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 |
| char | location (int ci, int ti, char &face, int &dupid, int &edgeend0, int &edgeend1, double &dist) const |
| char | isOnEdge (const Coord3 &p, const Coord3 &a, const Coord3 &b, const Coord3 planenormal, bool &duponfirst, double &signedsqdist) const |
| char | locationToTriangle (const Coord3 &pt, const Coord3 &a, const Coord3 &b, const Coord3 &c, double &signedsqdist, double &closeedgedist, char &dupid, char &edgeidx) const |
| char | isIntersect (const Coord3 &p, const Coord3 &q, const Coord3 &a, const Coord3 &b, const Coord3 &c, char &edge) const |
| void | addTriangle (int v0, int v1, int v2, TypeSet< int > &triangles) const |
Static Protected Member Functions | |
| static char | cIsInside () |
| static char | cIsOnFace () |
| static char | cIsOnEdge () |
| static char | cEdge01 () |
| static char | cEdge12 () |
| static char | cEdge20 () |
| static char | cIsDuplicate () |
| static char | cIsOutside () |
| static char | cNotOnEdge () |
| static char | cNotOnPlane () |
| static char | cError () |
| static char | cNoTetrahedra () |
| static char | cNoFace () |
| static char | cInitVertex0 () |
| static char | cInitVertex1 () |
| static char | cInitVertex2 () |
| static char | cInitVertex3 () |
Protected Attributes | |
| TypeSet< DAGTetrahedra > | tetrahedras_ |
| TypeSet< Coord3 > * | coordlist_ |
| Coord3 | center_ |
| Coord3 | initialcoords_ [4] |
| bool | ownscoordlist_ |
| double | epsilon_ |
| float | initsizefactor_ |
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 | ( | ) |
| bool DAGTetrahedraTree::insertPoint | ( | int | pointidx, |
| int & | dupid | ||
| ) |
| int DAGTetrahedraTree::insertPoint | ( | const Coord3 & | , |
| 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. 2017