| OpendTect 8.0

Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
DAGTetrahedraTree Class Reference
Algo

Delaunay triangulation for 3D points. Should make sure all the points are defined. More...

`#include <delaunay3d.h>`

## Classes
struct | DAGTetrahedra

## Public Member Functions
| DAGTetrahedraTree ()
| DAGTetrahedraTree (const DAGTetrahedraTree &)
virtual | ~DAGTetrahedraTree ()
const TypeSet< Coord3 > & | coordList () const
bool | getAllTriangles (TypeSet< int > &) 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_

## Detailed Description

Delaunay triangulation for 3D points. Should make sure all the points are defined.

<>

## Constructor & Destructor Documentation

## ◆ DAGTetrahedraTree() [1/2]

DAGTetrahedraTree::DAGTetrahedraTree | ( |  | ) |

## ◆ DAGTetrahedraTree() [2/2]

DAGTetrahedraTree::DAGTetrahedraTree | ( | const DAGTetrahedraTree & |  | ) |

## ◆ ~DAGTetrahedraTree()

virtual DAGTetrahedraTree::~DAGTetrahedraTree | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ addTriangle()

void DAGTetrahedraTree::addTriangle | ( | int | v0,
|  | int | v1,
|  | int | v2,
|  | TypeSet< int > & | triangles ) const
| protected

if triangles have {v0,v1,v2}, then return, else, add it.

## ◆ cEdge01()

static char DAGTetrahedraTree::cEdge01 | ( |  | ) |
| inline static protected

## ◆ cEdge12()

static char DAGTetrahedraTree::cEdge12 | ( |  | ) |
| inline static protected

## ◆ cEdge20()

static char DAGTetrahedraTree::cEdge20 | ( |  | ) |
| inline static protected

## ◆ cError()

static char DAGTetrahedraTree::cError | ( |  | ) |
| inline static protected

## ◆ cInitVertex0()

static char DAGTetrahedraTree::cInitVertex0 | ( |  | ) |
| inline static protected

## ◆ cInitVertex1()

static char DAGTetrahedraTree::cInitVertex1 | ( |  | ) |
| inline static protected

## ◆ cInitVertex2()

static char DAGTetrahedraTree::cInitVertex2 | ( |  | ) |
| inline static protected

## ◆ cInitVertex3()

static char DAGTetrahedraTree::cInitVertex3 | ( |  | ) |
| inline static protected

## ◆ cIsDuplicate()

static char DAGTetrahedraTree::cIsDuplicate | ( |  | ) |
| inline static protected

## ◆ cIsInside()

static char DAGTetrahedraTree::cIsInside | ( |  | ) |
| inline static protected

## ◆ cIsOnEdge()

static char DAGTetrahedraTree::cIsOnEdge | ( |  | ) |
| inline static protected

## ◆ cIsOnFace()

static char DAGTetrahedraTree::cIsOnFace | ( |  | ) |
| inline static protected

## ◆ cIsOutside()

static char DAGTetrahedraTree::cIsOutside | ( |  | ) |
| inline static protected

## ◆ cNoFace()

static char DAGTetrahedraTree::cNoFace | ( |  | ) |
| inline static protected

## ◆ cNoTetrahedra()

static char DAGTetrahedraTree::cNoTetrahedra | ( |  | ) |
| inline static protected

## ◆ cNotOnEdge()

static char DAGTetrahedraTree::cNotOnEdge | ( |  | ) |
| inline static protected

## ◆ cNotOnPlane()

static char DAGTetrahedraTree::cNotOnPlane | ( |  | ) |
| inline static protected

## ◆ cNoVertex()

static char DAGTetrahedraTree::cNoVertex | ( |  | ) |
| inline static

## ◆ computeCoordRanges()

static bool DAGTetrahedraTree::computeCoordRanges | ( | const TypeSet< Coord3 > & | ,
|  | Interval< double > & | xrg,
|  | Interval< double > & | yrg,
|  | Interval< double > & | zrg )
| static

## ◆ coordList()

const TypeSet< Coord3 > & DAGTetrahedraTree::coordList | ( |  | ) | const
| inline

## ◆ getAllTriangles()

bool DAGTetrahedraTree::getAllTriangles | ( | TypeSet< int > & |  | ) | const

## ◆ getConnections()

bool DAGTetrahedraTree::getConnections | ( | int | pointidx,
|  | TypeSet< int > & | ) const

## ◆ getInitSizeFactor()

float DAGTetrahedraTree::getInitSizeFactor | ( |  | ) | const
| inline

## ◆ getSurfaceTriangles()

bool DAGTetrahedraTree::getSurfaceTriangles | ( | TypeSet< int > & |  | ) | const

## ◆ getTetrahedras()

bool DAGTetrahedraTree::getTetrahedras | ( | TypeSet< int > & |  | ) | const

## ◆ init()

bool DAGTetrahedraTree::init | ( |  | ) |

## ◆ insertPoint() [1/2]

int DAGTetrahedraTree::insertPoint | ( | const Coord3 & | ,
|  | int & | dupid )

## ◆ insertPoint() [2/2]

bool DAGTetrahedraTree::insertPoint | ( | int | pointidx,
|  | int & | dupid )

## ◆ isIntersect()

char DAGTetrahedraTree::isIntersect | ( | const Coord3 & | p,
|  | const Coord3 & | q,
|  | const Coord3 & | a,
|  | const Coord3 & | b,
|  | const Coord3 & | c,
|  | char & | edge ) const
| protected

ret inside, outside, on edge, or duplicate. edge will be defined if pq intersects ABC on edge 0, 1, 2 in order.

## ◆ isOK()

bool DAGTetrahedraTree::isOK | ( |  | ) | const
| inline

## ◆ isOnEdge()

char DAGTetrahedraTree::isOnEdge | ( | const Coord3 & | p,
|  | const Coord3 & | a,
|  | const Coord3 & | b,
|  | const Coord3 | planenormal,
|  | bool & | duponfirst,
|  | double & | signedsqdist ) const
| protected

## ◆ legalizeTetrahedras()

void DAGTetrahedraTree::legalizeTetrahedras | ( | TypeSet< int > & | v0s,
|  | TypeSet< int > & | v1s,
|  | TypeSet< int > & | v2s,
|  | TypeSet< int > & | tis )
| protected

## ◆ location()

char DAGTetrahedraTree::location | ( | int | ci,
|  | int | ti,
|  | char & | face,
|  | int & | dupid,
|  | int & | edgeend0,
|  | int & | edgeend1,
|  | double & | dist ) const
| protected

## ◆ locationToTetrahedra()

char DAGTetrahedraTree::locationToTetrahedra | ( | const Coord3 & | checkpt,
|  | const Coord3 * | v,
|  | char & | face,
|  | int & | dupididx,
|  | int & | edgeend0idx,
|  | int & | edgeend1idx,
|  | double & | dist ) const

## ◆ locationToTriangle()

char DAGTetrahedraTree::locationToTriangle | ( | const Coord3 & | pt,
|  | const Coord3 & | a,
|  | const Coord3 & | b,
|  | const Coord3 & | c,
|  | double & | signedsqdist,
|  | double & | closeedgedist,
|  | char & | dupid,
|  | char & | edgeidx ) const
| protected

## ◆ operator=()

DAGTetrahedraTree & DAGTetrahedraTree::operator= | ( | const DAGTetrahedraTree & |  | ) |

## ◆ searchFaceOnChild()

int DAGTetrahedraTree::searchFaceOnChild | ( | int | a,
|  | int | b,
|  | int | c,
|  | int | ti ) const
| protected

## ◆ searchFaceOnList()

int DAGTetrahedraTree::searchFaceOnList | ( | int | ci,
|  | int | v0,
|  | int | v1,
|  | int | rep,
|  | const TypeSet< int > & | tis ) const
| protected

## ◆ searchFaceOnNeighbor()

int DAGTetrahedraTree::searchFaceOnNeighbor | ( | int | a,
|  | int | b,
|  | int | c,
|  | int | ti ) const
| protected

## ◆ searchTetrahedra() [1/2]

char DAGTetrahedraTree::searchTetrahedra | ( | const Coord3 & |  | ) |

## ◆ searchTetrahedra() [2/2]

char DAGTetrahedraTree::searchTetrahedra | ( | int | ci,
|  | int | start,
|  | TypeSet< int > & | tis,
|  | char & | face,
|  | int & | sharedv0,
|  | int & | sharedv1,
|  | int & | dupid ) const
| protected

## ◆ setBBox()

bool DAGTetrahedraTree::setBBox | ( | const Interval< double > & | xrg,
|  | const Interval< double > & | yrg,
|  | const Interval< double > & | zrg )

## ◆ setCoordList()

bool DAGTetrahedraTree::setCoordList | ( | const TypeSet< Coord3 > & | ,
|  | bool | copy )

## ◆ setEpsilon()

void DAGTetrahedraTree::setEpsilon | ( | double | err | ) |
| inline

## ◆ setInitSizeFactor()

void DAGTetrahedraTree::setInitSizeFactor | ( | float |  | ) |

## ◆ splitInitialBox()

void DAGTetrahedraTree::splitInitialBox | ( | int | ci | ) |
| protected

## ◆ splitTetrahedraInside()

void DAGTetrahedraTree::splitTetrahedraInside | ( | int | ci,
|  | int | ti )
| protected

## ◆ splitTetrahedraOnEdge()

void DAGTetrahedraTree::splitTetrahedraOnEdge | ( | int | ci,
|  | const TypeSet< int > & | tis,
|  | int & | sharedv0,
|  | int & | sharedv1 )
| protected

## ◆ splitTetrahedraOnFace()

void DAGTetrahedraTree::splitTetrahedraOnFace | ( | int | ci,
|  | int | ti0,
|  | int | ti1,
|  | char | face )
| protected

## Member Data Documentation

## ◆ center_

Coord3 DAGTetrahedraTree::center_
| protected

## ◆ coordlist_

TypeSet<Coord3>* DAGTetrahedraTree::coordlist_
| protected

## ◆ epsilon_

double DAGTetrahedraTree::epsilon_
| protected

## ◆ initialcoords_

Coord3 DAGTetrahedraTree::initialcoords_[4]
| protected

-2,-3,-4, -5 are their indices.

## ◆ initsizefactor_

float DAGTetrahedraTree::initsizefactor_
| protected

## ◆ ownscoordlist_

bool DAGTetrahedraTree::ownscoordlist_
| protected

## ◆ tetrahedras_

TypeSet<DAGTetrahedra> DAGTetrahedraTree::tetrahedras_
| protected

Generated at
for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2025