### Geometry Class Summary

This is the architecture summary for 2D geometry classes.

### 2D Graphic Classes
#### Class | #### Description
--- | ---
ILine | Wrapper for the geometry class IGLine2D.
IPolyline | Wrapper for the geometry class IGPolyline2D.
ICurve | Wrapper for the geometry class IGCurve2D.
IEllipse | Wrapper for the geometry class IGEllipse2D.
ILoop | Wrapper for the geometry class IGLoop2D.
IPolygon | Wrapper for the geometry class IGPolygon2D.
IArea | Wrapper for the geometry class IGArea.
IImage | Wrapper for the geometry class IGImage.

### 2D Geometry Classes
| #### Class | #### Description
--- | --- | ---
| IGLine2D | A line segment defined by a starting point and an ending point.
| IGPolyline2D | A set of points connected by straight lines.
| IGCurve2D | Free-form curves, arcs, and path geometry.
| IGConicEndCenterEnd | A lightweight class derived from IGCurve2D to disambiguate the constructors for arcs having similar arguments. It creates a curve as a conic with tangents perpendicular to ab and bc and centered about the second point.
IGArcThrough3Points | A lightweight class derived from IGCurve2D to disambiguate the constructors for arcs having similar arguments. It creates a curve as a circular arc that passes through the three given points.
IGCardinalSpline | A lightweight class derived from IGCurve2D to disambiguate the constructors for cubic splines having similar arguments. It creates a curve as a cubic matrix spline, where the curve interpolates the control points.
IGHermiteSpline | A lightweight class derived from IGCurve2D to disambiguate the constructors for cubic splines having similar arguments. It creates a curve as a cubic matrix spline, where the curve is defined by point/tangent pairs.
IGTensionSpline | A lightweight class derived from IGCurve2D to disambiguate the constructors for cubic splines having similar arguments. It creates a curve as a cubic matrix spline, where the curve is defined by points, and interpolation is controlled by bias and tension values.
IBaseCurve | Templatized base class for IGCurve2D.
| IGEllipse2D | Elliptical shapes including circles.
| IGLoop2D | A closed curve that can be filled as well as framed.
| IGPie2D | A subclass of IGLoop2D that constructs a pie-shaped wedge.
| IGPolygon2D | A closed polyline that can be filled as well as framed.
| IGArea | An arbitrary shape created from Boolean operations on one or more 2D geometries.
| IText::IGraphicText | A specialized text string for creating and manipulating local text as a graphic.
| IGImage | A pixel-based graphic.

### 2D Graphics Computational Geometry Classes
| #### Class | #### Description
--- | --- | ---
| IGPoint2D | Represents a 2D point.
| IGRPoint2D | Represents rational (homogeneous) 2D points.
| IGPoint2DArray | Represents an extensible array of 2D points used in cases where an array or list of points is needed.
| IGRPoint2DArray | Represents an extensible array of 2D rational (homogeneous) points used in cases where an array or list of points is needed.
| IRawArray | Template class that provides a low level substitute for traditional C arrays created with malloc and free. IRawArray stores only primitive types and objects with no virtual functions.
| IGRect2D | Used for 2D geometric calculations and as a basic building block for other 2D geometry classes. This is the only underlying 2D geometry class that can be sent directly to the drawing port for rendering. It is used to construct ellipses and polygons.