00001 //***************************************************************************** 00011 //***************************************************************************** 00012 00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER) 00014 #pragma once 00015 #endif 00016 00017 #ifndef __XSIKINEMATICS_H__ 00018 #define __XSIKINEMATICS_H__ 00019 00020 #include <xsi_property.h> 00021 #include <xsi_vector3.h> 00022 #include <xsi_kinematicstate.h> 00023 00024 namespace XSI { 00025 00026 class Constraint; 00027 00028 //***************************************************************************** 00072 //***************************************************************************** 00073 class SICPPSDKDECL Kinematics : public Property 00074 { 00075 public: 00077 Kinematics(); 00078 00080 ~Kinematics(); 00081 00085 Kinematics(const CRef& in_ref); 00086 00090 Kinematics(const Kinematics& in_obj); 00091 00096 bool IsA( siClassID in_ClassID) const; 00097 00101 siClassID GetClassID() const; 00102 00108 Kinematics& operator=(const Kinematics& in_obj); 00109 00115 Kinematics& operator=(const CRef& in_ref); 00116 00120 CRefArray GetConstraints() const; 00121 00136 CStatus AddConstraint( const CString& in_preset, 00137 const CRefArray& in_cnsning, 00138 bool in_bComp, 00139 const MATH::CVector3& in_offsetCnsned, 00140 const MATH::CVector3& in_offsetCnsning, 00141 Constraint& out_constraint); 00142 00149 KinematicState GetLocal() const; 00150 00155 KinematicState GetGlobal() const; 00156 00157 private: 00158 Kinematics * operator&() const; 00159 Kinematics * operator&(); 00160 }; 00161 00162 }; 00163 00164 #endif // __XSIKINEMATICS_H__