Graphisoft®

GeometryVersion: 1.0

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::PGPolyAreaExt
Geometry::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