Datastructure-independent 2D Polygon functions
These functions work on any data-structures with callback functions (nowadays called: iterators). It gives you a big freedom to choose the appropriate data-storage format for your special needs, but you must provide these callbacks (iterators) for working.
What you should provide a general description of a polygon: number of contours
and vertices, orientation, etc. And a callback function like a constant random
iterator to polygon segments called here as edges. Each polygon segment consist
of a vertex and an edge starting from it according to the orientation. Each
segment should mark that it is an end of a contour or not. So there are no
separate contour structure.
To get the results you must provide a callback function like a back-inserter
iterator to a storage for the resulting polygons. And a callback function like
a back-inserter iterator to a storage for the resulting segments (called edges
too) for all polygons. The contour ends are marked in the segments.
Geometry::PGEDGESTATUSEXT
Geometry::PGEDGEEXT
GetPGEdgeProcExt
NewPGEdgeProcExt
Geometry::PGPOLYSTATUSEXT
Geometry::PGPOLYEXT
NewPGPolyProcExt
PGRESPOLYEXT
PGRESSECTOREXT
Geometry::PGRelPolyPosExt
Geometry::PGPositionExt
These functions work on callback polygons.
Geometry::PGPolyAreaExtGeometry::PGPolyRemoveHolesExt
Geometry::PGPolyMakeRegularExt
Geometry::PGPolyMakeRegular2Ext
Geometry::PGPolyResizeContourExt
Geometry::PGPolyMoveVertexExt
Geometry::PGPolyGetMaxVertexFilletExt
Geometry::PGPolyFilletVertexExt
Geometry::PGPolyFilletContourExt
Geometry::PGPolyChamferVertexExt
Geometry::PGPolyChamferContourExt
Geometry::PGPolyInsertVertexExt
Geometry::PGPolySetEdgeAngleExt
Geometry::PGPolyOffsetEdgeExt
Geometry::PGPolyDeleteEdgeExt
Geometry::PGCoordInPolyExt
Geometry::PGSegmentInPolyExt
Geometry::PGPolyPositionExt
Geometry::PGPolyUnionExt
Geometry::PGPolyDifferenceExt
Geometry::PGPolyStrip
Geometry::PGPolyClip
Geometry::PGPolyCut
Geometry::PGPolyIntersectionExt
Geometry::PGSetDebugFlagsExt
See Also
Geometry, Geometry::PG3DEDGEEXT, Geometry::PGPoly3DPosition, Geometry::PG3DSplitPolyExt