SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
regions.cpp File Reference
#include "meshkit/regions.hpp"
#include "meshkit/cdt.hpp"
#include <algorithm>
#include <cmath>
#include <limits>
Include dependency graph for regions.cpp:

Namespaces

namespace  meshkit
 
namespace  meshkit::plan
 

Functions

double meshkit::plan::ringSignedArea (const Polygon &ring)
 Compute oriented shoelace area after translating corners to the first vertex.
 
Polygon meshkit::plan::normalizeRingCCW (const Polygon &ring)
 Copy a ring while dropping scale-fuzzy consecutive/closing duplicates and reversing negative area.
 
bool meshkit::plan::polylineIntersectsRect (const Vector< Point2 > &path, const Box2 &rect)
 Test whether any consecutive path segment meets a normalized closed rectangle.
 
bool meshkit::plan::pointInRegion (const Polygon &ring, const Vector< Polygon > &holes, const Point2 &p)
 Combine outer-ring parity with exclusion by every supplied hole-ring parity.
 
bool meshkit::plan::pointInRing (const Polygon &ring, const Point2 &p)
 Test a point using a strict horizontal-ray odd-even crossing rule.
 
bool meshkit::plan::ringIsSimple (const Polygon &ring)
 Reject proper nonadjacent edge crossings using plain double orientation signs.
 
double meshkit::plan::ringTurnDeg (const Polygon &ring, int i)
 Compute a signed exterior turn at one ring corner using adjacent edge cross/dot products.
 
Text meshkit::plan::validateQuadRegion (const QuadRegion &r, const Vector< Polygon > &domains, const Vector< Polygon > &holes)
 Check region authoring policy, normalized ring and sampled domain/hole containment.
 
Text meshkit::plan::validateQuadRegionsDisjoint (const Vector< QuadRegion > &regions)
 Check explicit region pairs for proper crossings or strictly interior sampled vertices.
 
QuadRegionMode meshkit::plan::classifyQuadRegion (const Polygon &ring, Vector< int > *corners, double cornerTolDeg=25.0, double rectilinearTolDeg=2.0)
 Heuristically classify normalized ring turns as Mapped, Submapped or Free.
 
Polygon meshkit::plan::resampleRing (const Polygon &ring, double h, double keepTurnDeg=0.0)
 Normalize a ring and insert equal-part subdivisions along all implicit closing edges.