42[[nodiscard]] QVector<QPointF>
cleanPolyline(
const QVector<QPointF> &
v,
78 QVector<QPointF> interior,
const QPointF &from,
const QPointF &to);
88[[nodiscard]]
double polylineLength(
const QVector<QPointF> &vertices);
98[[nodiscard]] QVector<QPointF>
replacedAt(
const QVector<QPointF> &vertices,
100 const QPointF &newPt);
107[[nodiscard]] QVector<QPointF>
insertedAt(
const QVector<QPointF> &vertices,
109 const QPointF &newPt);
116[[nodiscard]] QVector<QPointF>
removedAt(
const QVector<QPointF> &vertices,
131 const QPointF &point,
132 int *segmentIndex =
nullptr,
133 QPointF *closestPoint =
nullptr);
142[[nodiscard]]
double polygonArea(
const QVector<QPointF> &polygon);
181[[nodiscard]]
bool pointInRing(
const QVector<QPointF> &
ring,
const QPointF &pt);
193[[nodiscard]]
double netArea(
const RingPolygon &
p);
198[[nodiscard]]
bool containsPoint(
const RingPolygon &
p,
const QPointF &pt);
int e
Definition inpmeshreader.cpp:41
ArrowPlacement p
Definition linesymbollayer.cpp:27
int index
Position in m_quadRegions / m_quadReports.
Definition meshgenerator.cpp:153
QPolygonF ring
normalizeRingCCW(r.ring).
Definition meshgenerator.cpp:156
Definition editgeometry.h:19
bool containsPoint(const RingPolygon &p, const QPointF &pt)
True when pt is inside the exterior and outside every hole.
Definition editgeometry.cpp:330
double polygonArea(const QVector< QPointF > &polygon)
Compute the area of a polygon using the shoelace formula.
Definition editgeometry.cpp:177
QVector< QPointF > cleanPolyline(const QVector< QPointF > &v, double tol=kCoincidenceTol)
Drop consecutive coincident points from a polyline.
Definition editgeometry.cpp:27
RingValidity
Validity classes for a RingPolygon (in-house checks, no GEOS).
Definition editgeometry.h:213
@ HoleOutsideExterior
A hole escapes / crosses the exterior.
@ SelfIntersecting
Exterior or a hole crosses itself.
@ TooFewVertices
Exterior or a hole has < 3 vertices.
@ HolesOverlap
Two holes overlap or nest.
QVector< QPointF > replacedAt(const QVector< QPointF > &vertices, int index, const QPointF &newPt)
Replace one endpoint of a polyline, producing a new vector.
Definition editgeometry.cpp:89
RingPolygon normalizeRingPolygon(RingPolygon p, double tol=kCoincidenceTol)
Clean every ring (dedupe + de-close), drop degenerate interior rings, and orient exterior CCW / inter...
Definition editgeometry.cpp:303
RingValidity validateRingPolygon(const RingPolygon &p)
Validate a RingPolygon with in-house geometry checks (O(n^2) edge tests; intended for hand-digitized ...
Definition editgeometry.cpp:402
constexpr double kCoincidenceTol
Default coincidence tolerance, in layer-CRS units.
Definition editgeometry.h:28
double netArea(const RingPolygon &p)
Net area = |exterior| − Σ|holes|, clamped to >= 0.
Definition editgeometry.cpp:322
QVector< QPointF > orientInteriorToEndpoints(QVector< QPointF > interior, const QPointF &from, const QPointF &to)
Orient a link's interior bend points to run from from toward to.
Definition editgeometry.cpp:58
bool pointInRing(const QVector< QPointF > &ring, const QPointF &pt)
Even-odd point-in-ring test (boundary result is unspecified but stable). Returns false for rings with...
Definition editgeometry.cpp:281
double distanceToPolyline(const QVector< QPointF > &vertices, const QPointF &point, int *segmentIndex=nullptr, QPointF *closestPoint=nullptr)
Distance from a point to the nearest point on a polyline segment.
Definition editgeometry.cpp:124
double signedRingArea(const QVector< QPointF > &ring)
Signed area of a ring via the shoelace formula.
Definition editgeometry.cpp:266
QVector< QPointF > insertedAt(const QVector< QPointF > &vertices, int index, const QPointF &newPt)
Insert a vertex at index, producing a new polyline of size+1.
Definition editgeometry.cpp:99
QPointF interiorPoint(const QVector< QPointF > &ring)
A point guaranteed strictly interior to a simple ring — robust for non-convex rings — suitable as a T...
Definition editgeometry.cpp:340
QVector< QPointF > removedAt(const QVector< QPointF > &vertices, int index)
Remove the vertex at index, producing a new polyline of size-1.
Definition editgeometry.cpp:112
double polylineLength(const QVector< QPointF > &vertices)
Compute the total length of a polyline.
Definition editgeometry.cpp:74
QVector< QPointF > cleanPolygonRing(const QVector< QPointF > &v, double tol=kCoincidenceTol)
Normalize a polygon ring: collapse coincident points and drop a redundant explicit closing vertex.
Definition editgeometry.cpp:45
QVector< int > v
pool vertex indices
Definition pslgminsize.cpp:159
A polygon: exactly one exterior ring + zero-or-more interior rings.
Definition editgeometry.h:162
int holeCount() const
Definition editgeometry.h:167
bool isEmpty() const
Definition editgeometry.h:166
QVector< QPointF > exterior
Outer boundary (open ring, >= 3 pts).
Definition editgeometry.h:163
QVector< QVector< QPointF > > interiors
Holes; each an open ring (>= 3 pts).
Definition editgeometry.h:164