# 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