The AcGe library includes a broad set of classes for representing commonly used geometry, such as points, lines, curves, and surfaces. It provides a common representation for geometry that can be used by any Autodesk application. The library is purely mathematical; though its classes do not deal directly with the database or with graphics, many of its classes are used by the AcDb and AcGi libraries.
The AcGe library provides both simple and complex geometry classes. Simple linear algebra classes include the point, vector, matrix, 2D and 3D linear entity classes, and planar entity classes. Complex classes include curve classes, such as spline entity, and surface classes, such as NURBS surfaces.
The class hierarchy offers separate classes for 2D and 3D geometry. This simplifies programming by clearly distinguishing 2D parametric-space geometry from 3D modeling-space geometry. Because of this distinction, you cannot inadvertently mix 2D and 3D entities in the same operation.
The library includes a number of basic types, such as AcGePoint3d, AcGeVector3d, and AcGeMatrix3d, that have public data members for fast and efficient access. These simple classes are commonly used by other libraries as well as by the AcGe classes derived from AcGeEntity2d and AcGeEntity3d.
Runtime type checking is provided for all classes derived from AcGeEntity2d and AcGeEntity3d. Each class provides a type() function that returns the object's class and an isKindOf() function that returns whether the object is of a particular class (or a class derived from that class).
Two entities are considered equal if they are of the same type and represent the same point set. Curves and surfaces are considered equal only if their parameterization is the same.
The class hierarchy for the AcGe library is shown as follows: