This class is only available in release 5 or later.
This class refers to the new modifier which, when assigned to a
spline (or a NURBS) curve, generates a certain number of helper
objects attached to the knots of the curve.
Spline IK Control
Modifier (works for NURBS Point curve and NURBS CV Curve too):
This is a modifier and can be used independently of the SplineIK.
When applied to a spline, this modifier creates one point helper
for each knot of the spline. The user can then animate the spline
by simply animating (position and rotation) the point helpers. Thus
to animate the spline, the user wouldn't need to get into the
sub-object level.
There are three options Link Types, presented as a set of 3 radio
buttons:
Link All in Hierarchy (default):
Makes a helper a child to its immediately previous helper. So,
Helper#2 is child to Helper#1, Helper#3 is child to Helper#2, and
so on. Helper#1 is still child to the world. Translation and
rotation of a helper then "solidly" moves/rotates part of the
spline _subsequent_ to the selected helper. The part of the spline
previous to the helper is unaffected.
Link All to Root
Makes all helpers children to Helper#1, i.e., knot#1. Helper#1 can
be position constrained or linked to another object, like it is
possible above. Additionally individual helpers can be moved and
rotated without any other helper being affect.
No Linking
All helpers are independent -- not linked to any other helper -- so
that they can be moved and rotated without any other helper being
affect.
"Create Helpers" button:
Helpers are not automatically added to the spline on the assignment
of the modifier. To do that the user need to press the "Create
Helpers" button.
Helper Display:
These are the all the options:
- center marker (default OFF)
- axis tripod (default OFF)
- cross (default OFF)
- box (default ON)
- size (default 20.0)
- constant screen size (default OFF)
- draw on top (default ON) for a standard point object.
If the user adds ("insert") a knot to the spline, a new helper
object is automatically created at that knotpoint.
Furthermore, please refer to the implementation project which is in
/maxsdk/samples/modifiers/splineikcontrol.
The following helper methods have been added to istdplug.h
for general access:
Public Types
|
enum |
{
SplineIKControl_params } |
enum |
{
sm_point_node_list,
sm_helpersize,
sm_helper_centermarker,
sm_helper_axistripod,
sm_helper_cross,
sm_helper_box,
sm_helper_screensize,
sm_helper_drawontop,
sm_link_types
} |
enum |
{
getHelperCount,
getKnotCount,
link_allToRoot,
link_allinHierarchy,
link_none,
create_hlpr
} |
Public Member Functions
|
BEGIN_FUNCTION_MAP |
FN_0 (getHelperCount, TYPE_INT, GetHelperCount) |
|
FN_0 (getKnotCount, TYPE_INT, GetKnotCount) |
|
FN_0 (link_allToRoot, TYPE_BOOL, LinkToRoot) |
|
FN_0 (link_allinHierarchy, TYPE_BOOL, LinkInHierarchy) |
|
FN_0 (link_none, TYPE_BOOL, UnLink) |
|
FN_1 (create_hlpr, TYPE_BOOL, CreateHelpers, TYPE_INT) |
END_FUNCTION_MAP
FPInterfaceDesc * |
GetDesc () |
virtual
int |
GetHelperCount ()=0 |
virtual
int |
GetKnotCount ()=0 |
virtual
BOOL |
LinkToRoot ()=0 |
virtual
BOOL |
LinkInHierarchy ()=0 |
virtual
BOOL |
UnLink ()=0 |
virtual
BOOL |
CreateHelpers (int knotCt)=0 |