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.