ILinkCtrl Class Reference
 
 
 
ILinkCtrl Class Reference

This reference page is linked to from the following overview topics: Controller API Elements.


#include <istdplug.h>

Inheritance diagram for ILinkCtrl:
Control FPMixinInterface ReferenceTarget FPInterface ReferenceMaker BaseInterface Animatable InterfaceServer InterfaceServer Noncopyable MaxHeapOperators MaxHeapOperators MaxHeapOperators

Class Description

See also:
Class Control.

Description:
This class represents the interface to the Link Controller. You can obtain a pointer to the link controller interface using; GetLinkConstInterface(cd). This macro will return

(LinkConstTransform*)(CD)->GetFPInterface(LINK_CONSTRAINT_INTERFACE).

Developers may use the following values to access the references of the Link controller.

LINKCTRL_CONTROL_REF

The TM controller

LINKCTRL_FIRSTPARENT_REF

The index of the first parent node.

LINKCTRL_PBLOCK_REF

The parameter block.

All methods of this class are Implemented by the System.

Public Types

enum   {
  get_num_targets, get_node, set_node, get_frame_no,
  set_frame_no, add_target, delete_target, add_world
}

Public Member Functions

BEGIN_FUNCTION_MAP  FN_0 (get_num_targets, TYPE_INT, GetNumTargets)
  FN_1 (get_node, TYPE_INODE, GetNode, TYPE_INDEX)
  FN_1 (get_frame_no, TYPE_INT, GetFrameNumber, TYPE_INDEX)
  FN_2 (set_frame_no, TYPE_BOOL, SetFrameNumber, TYPE_INDEX, TYPE_INT)
  FN_2 (add_target, TYPE_BOOL, AddTarget, TYPE_INODE, TYPE_INT)
  FN_1 (delete_target, TYPE_BOOL, DeleteTarget, TYPE_INDEX)
  FN_1 (add_world, TYPE_INT, AddWorld, TYPE_INT)
END_FUNCTION_MAP FPInterfaceDesc GetDesc ()
virtual int  GetNumTargets ()=0
virtual TimeValue  GetLinkTime (int i)=0
virtual void  SetLinkTime (int i, TimeValue t)=0
virtual void  LinkTimeChanged ()=0
virtual void  AddNewLink (INode *node, TimeValue t)=0
virtual BOOL  DeleteTarget (int frameNo)=0
virtual int  GetFrameNumber (int targetNumber)=0
virtual BOOL  SetFrameNumber (int targetNumber, int frameNumber)=0
virtual BOOL  AddTarget (INode *target, int frameNo)=0
virtual INode GetNode (int targetNumber)=0

Member Enumeration Documentation


Member Function Documentation

BEGIN_FUNCTION_MAP FN_0 ( get_num_targets  ,
TYPE_INT  ,
GetNumTargets   
)
FN_1 ( get_node  ,
TYPE_INODE  ,
GetNode  ,
TYPE_INDEX   
)
FN_1 ( get_frame_no  ,
TYPE_INT  ,
GetFrameNumber  ,
TYPE_INDEX   
)
FN_2 ( set_frame_no  ,
TYPE_BOOL  ,
SetFrameNumber  ,
TYPE_INDEX  ,
TYPE_INT   
)
FN_2 ( add_target  ,
TYPE_BOOL  ,
AddTarget  ,
TYPE_INODE  ,
TYPE_INT   
)
FN_1 ( delete_target  ,
TYPE_BOOL  ,
DeleteTarget  ,
TYPE_INDEX   
)
FN_1 ( add_world  ,
TYPE_INT  ,
AddWorld  ,
TYPE_INT   
)
END_FUNCTION_MAP FPInterfaceDesc* GetDesc ( ) [virtual]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

virtual int GetNumTargets ( ) [pure virtual]
Remarks:
This method is available in release 4.0 and later only.

This method returns the number of parents (links).
virtual TimeValue GetLinkTime ( int  i ) [pure virtual]
Remarks:
Returns the start time associated with the 'i-th' link.
Parameters:
int i

Specifies which parent (link).
virtual void SetLinkTime ( int  i,
TimeValue  t 
) [pure virtual]
Remarks:
Sets the start time associated with the 'i-th' link. See LinkTimeChanged() below. Note: This method also sorts the indices according to increasing time values.
Parameters:
int i

Specifies which parent (link).

TimeValue t

The time to set.
virtual void LinkTimeChanged ( ) [pure virtual]
Remarks:
This method should be called after changing link times. Note: This method also sorts the indices according to increasing time values.
virtual void AddNewLink ( INode node,
TimeValue  t 
) [pure virtual]
Remarks:
Adds a new link at the specified time.
Parameters:
INode *node

Points to the node of the link to add.

TimeValue t

The time to change to this link.
virtual BOOL DeleteTarget ( int  frameNo ) [pure virtual]
Remarks:
This method will delete the specified link.
Parameters:
int frameNo

Specifies which link to delete.
virtual int GetFrameNumber ( int  targetNumber ) [pure virtual]
Remarks:
This method returns the start frame of the specified target.
Parameters:
int targetNumber

The target number for which to get the start frame.
virtual BOOL SetFrameNumber ( int  targetNumber,
int  frameNumber 
) [pure virtual]
Remarks:
This method is available in release 4.0 and later only.

This method allows you to set the start frame of the specified target.
Parameters:
int targetNumber

The target number for which to set the start frame.

int frameNumber

The time value.
Returns:
TRUE if the start frame is set, otherwise FALSE.
virtual BOOL AddTarget ( INode target,
int  frameNo 
) [pure virtual]
Remarks:
This method is available in release 4.0 and later only.

This method allows you to append a target.
Parameters:
INode *target

The target node to append.

int frameNo

The frame time.
Returns:
TRUE if the target was appended, otherwise FALSE.
virtual INode* GetNode ( int  targetNumber ) [pure virtual]
Remarks:
This method is available in release 4.0 and later only.

This method returns one of the link nodes that the link constraint controller targets, specified by targetNumber.
Parameters:
int targetNumber

The node number in the link target list to be obtained.