Class ISplineIKControl

3DS Max Plug-In SDK

Class ISplineIKControl

Description:

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:

 

Methods:

 

Prototype:

virtual int GetHelperCount()=0;

Remarks:

Obtain the number of helpers created

 

Prototype:

virtual int GetKnotCount()=0;

Remarks:

Gets the total number of knots for spline.

 

Prototype:

virtual BOOL LinkToRoot() = 0;

Remarks:

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 affected.

 

Prototype:

virtual BOOL LinkInHierarchy() = 0;

Remarks:

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.

 

Prototype:

virtual BOOL UnLink() = 0;

Remarks:

All helpers are independent - not linked to any other helper so that they can be moved and rotated without any other helper being affected.

 

Prototype:

virtual BOOL CreateHelpers(int knotCt) = 0;

Remarks:

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.