The following are the main classes used when working with shapes and splines:
- ShapeObject - These are open or closed hierarchical shape objects. This is the base class that SimpleSpline, SimpleShape, SplineShape, and LinearShape are derived from. This class is defined in \MAXSDK\INCLUDE\OBJECT.H.
- SplineShape - The SplineShape is the shape object flows down the geometry pipeline of 3ds Max. The SplineShape contains a BezierShape. A SplineShape and its contained BezierShape are analogous to a TriObject which flows down the pipeline and its Mesh. This class is defined in \MAXSDK\INCLUDE\SPLSHAPE.H.
- BezierShape - The BezierShape is effectively a collection of Bezier Splines. For example, the 3ds Max Donut object has two splines in a hierarchy to make
a shape. The BezierShape contains these splines. The BezierShape is analogous to the Mesh of the TriObject. This class is defined in \MAXSDK\INCLUDE\SHAPE.H.
- Spline3D - This is a general 3D spline class. The BezierShape class has a list of these splines that make up the bezier shape. This class is defined in \MAXSDK\INCLUDE\SPLINE3D.H.
- PolyShape - This class is used in the caching of bezier shapes. This is used for doing a one time interpolation of a bezier shape into
a form that is the same shape but doesn't require any further interpolation. In this way the system can do the complex calculations
once, store the shape into this PolyShape representation, and not have to go through the cubic spline calculations to figure out where the points are in the future.
This class maintains an array of PolyLines. This class is defined in \MAXSDK\INCLUDE\POLYSHP.H.
- PolyLine - This class describes a single polygon in a PolyShape using linear segments. This class is defined in \MAXSDK\INCLUDE\POLYSHP.H.
- SimpleSpline - This is a class used in the creation of shape plugins. Most of the 3ds Max shapes and splines are derived from this class.
For example, Line, Arc, Circle, Ellipse and Star are all SimpleSplines. This class is defined in \MAXSDK\INCLUDE\SIMPSPL.H.
- SimpleShape - This class is used to make procedural shape primitives easier to create. The 3ds Max Helix procedural shape is derived
from this class. It's defined in \MAXSDK\INCLUDE\SIMPSHP.H.
- LinearShape - This class is similar to a SplineShape except this class uses a PolyShape as its data while a SplineShape uses a BezierShape as its data. Therefore this is a shape made up of entirely linear segments. This class is defined in \MAXSDK\INCLUDE\LINSHAPE.H.