ConstrainableType.h

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