00001 //*************************************************************************************** 00002 // File supervisor: Crosswalk team 00012 //*************************************************************************************** 00013 00014 #ifndef _CONSTRAINABLETYPE_H 00015 #define _CONSTRAINABLETYPE_H 00016 00017 #include "Constraint.h" 00018 00021 class XSIEXPORT CSLConstrainableType 00022 { 00023 public: 00028 virtual CSLConstraint* AddConstraint(CSLConstraint::EConstraintType in_ConstraintType) = 0; 00029 00034 SI_Error RemoveConstraint( SI_Int in_nIndex ); 00035 00040 SI_Error RemoveConstraint( CSLConstraint *in_pToRemove ); 00041 00045 SI_Int GetConstraintCount(); 00046 00050 CSLConstraint** GetConstraintList(); 00051 00055 SI_Error ClearConstraints(); 00056 00061 CSLConstraint* ConnectConstraint( CSLConstraint* in_pNewConstraint ); 00062 00063 // overloaded methods ///////////////////////////////////////////////////// 00064 SI_Error Synchronize(); 00065 00066 protected: 00067 CSLConstrainableType(CSLScene* in_pScene); 00068 virtual ~CSLConstrainableType(); 00069 00070 private: 00071 CSIBCArray<CSLConstraint*> m_Constraints; 00072 CSLScene *m_pScene; 00073 }; 00074 00075 00076 #endif // _CONSTRAINABLETYPE_H 00077