geos::triangulate::tri::Tri Class Reference

`#include <Tri.h>`

## Public Member Functions

| Tri (const Coordinate &c0, const Coordinate &c1, const Coordinate &c2)
void | setAdjacent (Tri *p_tri0, Tri *p_tri1, Tri *p_tri2)
void | setAdjacent (const Coordinate &pt, Tri *tri)
void | setTri (TriIndex edgeIndex, Tri *tri)
void | flip (TriIndex index)
void | remove ()
void | remove (TriList< Tri > &triList)
void | validate ()
void | validateAdjacent (TriIndex index)
std::pair< const Coordinate &, const Coordinate & > | getEdge (Tri *neighbor) const
const Coordinate & | getEdgeStart (TriIndex i) const
const Coordinate & | getEdgeEnd (TriIndex i) const
bool | hasCoordinate (const Coordinate &v) const
const Coordinate & | getCoordinate (TriIndex i) const
TriIndex | getIndex (const Coordinate &p) const
TriIndex | getIndex (const Tri *tri) const
Tri * | getAdjacent (TriIndex i) const
bool | hasAdjacent (TriIndex i) const
bool | hasAdjacent () const
bool | isAdjacent (Tri *tri) const
int | numAdjacent () const
bool | isInteriorVertex (TriIndex index) const
bool | isBorder () const
bool | isBoundary (TriIndex index) const
Coordinate | midpoint (TriIndex edgeIndex) const
double | getArea () const
double | getLength () const
double | getLength (TriIndex i) const
std::unique_ptr< Polygon > | toPolygon (const GeometryFactory *gf) const

## Static Public Member Functions

static TriIndex | next (TriIndex i)
static TriIndex | prev (TriIndex i)
static TriIndex | oppVertex (TriIndex edgeIndex)
static TriIndex | oppEdge (TriIndex vertexIndex)
static std::unique_ptr< Geometry > | toGeometry (std::set< Tri * > &tris, const GeometryFactory *gf)

## Protected Attributes

Coordinate | p0
Coordinate | p1
Coordinate | p2
Tri * | tri0
Tri * | tri1
Tri * | tri2

## Friends

std::ostream & | operator<< (std::ostream &os, const Tri &)

## Detailed Description

A memory-efficient representation of a triangle in a triangulation. Contains three vertices, and links to adjacent Tris for each edge. Tris are constructed independently, and if needed linked into a triangulation using `TriangulationBuilder`.

Author
  Martin Davis

## Member Function Documentation

## flip()

void geos::triangulate::tri::Tri::flip | ( | TriIndex | index | ) |

Interchanges the vertices of this triangle and a neighbor so that their common edge becomes the the other diagonal of the quadrilateral they form. Neighbour triangle links are modified accordingly.

Parameters

  index | the index of the adjacent tri to flip with

## isInteriorVertex()

bool geos::triangulate::tri::Tri::isInteriorVertex | ( | TriIndex | index | ) | const

Tests if a tri vertex is interior. A vertex of a triangle is interior if it is fully surrounded by other triangles.

Parameters

  index | the vertex index

Returns
  true if the vertex is interior

## remove()

void geos::triangulate::tri::Tri::remove | ( |  | ) |

Removes this triangle from a triangulation. All adjacent references and the references to this Tri in the adjacent Tris are set to nullptr.

## Member Data Documentation

## tri0

Tri* geos::triangulate::tri::Tri::tri0

protected

triN is the adjacent triangle across the edge pN - pNN. pNN is the next vertex CW from pN.

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

- Tri.h