The ChainRoot object represents the root of a skeleton chain.
        using namespace XSI;
        Application app;
        Model root = app.GetActiveSceneRoot();
        ChainRoot myChainRoot;
        root.Add3DChain(    MATH::CVector3(0,0,0),
                            MATH::CVector3(1,0,0),
                            MATH::CVector3(0,0,1),
                            L"",
                            myChainRoot);
        ChainBone myChainBone1;
        myChainRoot.AddBone(MATH::CVector3(3,3,3),siChainBonePin,L"",myChainBone1);
        ChainBone myChainBone2;
        myChainRoot.AddBone(MATH::CVector3(6,0,0),siChainBoneBallJoint,L"",myChainBone2);
        app.LogMessage(CString(L"The chain root name is : ") + myChainRoot.GetFullName());
#include <xsi_chainroot.h>

| Public Member Functions | |
| ChainRoot () | |
| ~ChainRoot () | |
| ChainRoot (const CRef &in_ref) | |
| ChainRoot (const ChainRoot &in_obj) | |
| bool | IsA (siClassID in_ClassID) const | 
| siClassID | GetClassID () const | 
| ChainRoot & | operator= (const ChainRoot &in_obj) | 
| ChainRoot & | operator= (const CRef &in_ref) | 
| CRefArray | GetBones () const | 
| CStatus | AddBone (const MATH::CVector3 &in_newEffPos, siChainBoneType in_BoneType, const CString &in_name, ChainBone &io_bone) | 
| ChainRoot | ( | ) | 
Default constructor.
| ~ChainRoot | ( | ) | 
Default destructor.
| bool IsA | ( | siClassID | in_ClassID | ) | const [virtual] | 
Returns true if a given class type is compatible with this API class.
| in_ClassID | class type. | 
Reimplemented from ChainElement.
| siClassID GetClassID | ( | ) | const [virtual] | 
Creates an object from another object. The newly created object is set to empty if the input object is not compatible.
| in_obj | constant class object. | 
Creates an object from a reference object. The newly created object is set to empty if the input reference object is not compatible.
| in_ref | constant class object. | 
Reimplemented from ChainElement.
| CRefArray GetBones | ( | ) | const | 
| CStatus AddBone | ( | const MATH::CVector3 & | in_newEffPos, | 
| siChainBoneType | in_BoneType, | ||
| const CString & | in_name, | ||
| ChainBone & | io_bone | ||
| ) | 
Adds a ChainBone element at the end of this chain.
| in_newEffPos | The new effector position. | 
| in_BoneType | The type of bone to add. | 
| in_name | The name of the new chain. | 
| io_bone | The new bone. |