### Modeling Class Summary

The classes used for modeling are listed in the table below:

#### Class | #### Description
--- | ---
IMDrawable | An abstract base class, from which the 2D graphics classes descend, that allows a graphic object to draw itself.
IMGraphic | An abstract base class that provides protocols for constructing and deleting a 2D graphic, obtaining attribute information, transforming the graphic, and finding the bounds of the graphic.
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 IGArea2D.
IImage | Wrapper for the geometry class IGImage2D.
IGraphicHierarchy | An abstract base class that defines a hierarchy protocol for grouped graphics.
IGraphicIterator | An abstract base class that allows interation of a graphics hierarchy.
IGraphicGroup | A concrete class, derived from IGraphicHierarchy, that implements a group of graphics as a tree structure. This class for combines 2D graphics into a unit that is treated as a whole.
IGraphicGroupIterator | A class that provides functions to traverse and manage a hierarchical tree of graphic objects.