17#include <geos/geom/Triangle.h>
18#include <geos/triangulate/tri/Tri.h>
19#include <geos/triangulate/tri/TriList.h>
20#include <geos/triangulate/quadedge/TriangleVisitor.h>
30namespace triangulate {
47class HullTri :
public Tri
52 bool m_isMarked =
false;
54 bool isBoundaryTouch(TriIndex index)
const;
61 , m_size(
Triangle::longestSideLength(c0, c1, c2))
64 class HullTriCompare {
67 bool operator()(
const HullTri* a,
const HullTri* b)
69 if (a->getSize() == b->getSize())
70 return a->getArea() < b->getArea();
72 return a->getSize() < b->getSize();
77 double getSize()
const;
84 void setSizeToBoundary();
86 bool isMarked()
const;
87 void setMarked(
bool marked);
89 TriIndex boundaryIndex()
const;
90 TriIndex boundaryIndexCCW()
const;
91 TriIndex boundaryIndexCW()
const;
100 bool isConnecting()
const;
107 int adjacent2VertexIndex()
const;
119 double lengthOfLongestEdge()
const;
127 bool hasBoundaryTouch()
const;
132 static void markConnected(HullTri* triStart, HullTri* exceptTri);
135 friend std::ostream& operator<<(std::ostream& os,
const HullTri& ht);
137 double lengthOfBoundary()
const;
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Represents a planar triangle, and provides methods for calculating various properties of triangles.
Definition: Triangle.h:28
Basic namespace for all GEOS functionalities.
Definition: geos.h:39