00001 //*************************************************************************************** 00002 // 00003 // File supervisor: Crosswalk team 00004 // 00005 // Copyright 2008 Autodesk, Inc. All rights reserved. 00006 // Use of this software is subject to the terms of the Autodesk license agreement 00007 // provided at the time of installation or download, or which otherwise accompanies 00008 // this software in either electronic or hard copy form. 00009 // 00010 //*************************************************************************************** 00011 00012 #ifndef _CONSTRAINABLETYPE_H 00013 #define _CONSTRAINABLETYPE_H 00014 00015 #include "Constraint.h" 00016 00019 class XSIEXPORT CSLConstrainableType 00020 { 00021 public: 00025 virtual CSLConstraint* AddConstraint(CSLConstraint::EConstraintType in_ConstraintType) = 0; 00026 00031 SI_Error RemoveConstraint( SI_Int in_nIndex ); 00032 00037 SI_Error RemoveConstraint( CSLConstraint *in_pToRemove ); 00038 00042 SI_Int GetConstraintCount(); 00043 00047 CSLConstraint** GetConstraintList(); 00048 00052 SI_Error ClearConstraints(); 00053 00058 CSLConstraint* ConnectConstraint( CSLConstraint* in_pNewConstraint ); 00059 00060 // overloaded methods ///////////////////////////////////////////////////// 00061 SI_Error Synchronize(); 00062 00063 protected: 00064 CSLConstrainableType(CSLScene* in_pScene); 00065 virtual ~CSLConstrainableType(); 00066 00067 private: 00068 CSIBCArray<CSLConstraint*> m_Constraints; 00069 CSLScene *m_pScene; 00070 }; 00071 00072 00073 #endif // _CONSTRAINABLETYPE_H 00074