00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSICHAINROOT_H__ 00018 #define __XSICHAINROOT_H__ 00019 00020 #include <xsi_chainelement.h> 00021 #include <xsi_status.h> 00022 #include <xsi_vector3.h> 00023 00024 namespace XSI { 00025 00026 class ChainBone; 00027 00028 //***************************************************************************** 00056 //***************************************************************************** 00057 00058 class SICPPSDKDECL ChainRoot : public ChainElement 00059 { 00060 public: 00062 ChainRoot(); 00063 00065 ~ChainRoot(); 00066 00070 ChainRoot(const CRef& in_ref); 00071 00075 ChainRoot(const ChainRoot& in_obj); 00076 00081 bool IsA( siClassID in_ClassID) const; 00082 00086 siClassID GetClassID() const; 00087 00093 ChainRoot& operator=(const ChainRoot& in_obj); 00094 00100 ChainRoot& operator=(const CRef& in_ref); 00101 00105 CRefArray GetBones() const; 00106 00116 CStatus AddBone 00117 ( 00118 const MATH::CVector3& in_newEffPos, 00119 siChainBoneType in_BoneType, 00120 const CString& in_name, 00121 ChainBone& io_bone 00122 ); 00123 00124 private: 00125 ChainRoot * operator&() const; 00126 ChainRoot * operator&(); 00127 }; 00128 00129 }; 00130 00131 #endif // __XSICHAINROOT_H__