-
Geometric representations within
the library are vectors, points, lines, arcs, circles,
segments, triangles, rectangles, polygons, curved polygons,
polygons with holes and curved polygons with holes.
-
Fully object-oriented design.
Classes to represent collections of different geometric
entities.
-
Abstract line based polygon
class packed with functions. Add your own definition of a line
to the code and you have a new type of polygon.
-
Calculation of minimum distance
between geometric entities with closest points.
-
Intersections between all
different geometric entities.
-
Bounding rectangle
calculation for all.
-
Projections onto a line or
a vector for all.
-
Basic transformations for
all; movement, rotation, reflection in point, reflection in a
line and grow.
-
All polygon types support
intersection, union and difference with all other
polygon types.
-
All polygon types support area,
perimeter and centroid calculation.
-
Straight line polygon adds,
automatic reordering of points to avoid crossing lines,
collision avoidance, smoothing, morphing,
convex hull, convex sub area creation and
bounding circle.
-
Triangle class adds
Circumcentre, Fermat point (Torricelli point) and
InCentre.
-
The geodetic (lat long) position
classes supports transformation to Cartesian co-ordinates
through 24 different map projections as well as great
circle distance, bearing and slant range..
-
All co-ordinates stored as double
precision floating points for simplicity. Integer degenerate
cases handled for polygon operations.
-
Easy to understand comments for
every function and class.