00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Side Effects Software Inc 00008 * 123 Front Street West, Suite 1401 00009 * Toronto, Ontario 00010 * Canada M5J 2M2 00011 * 416-504-9876 00012 */ 00013 00014 #ifndef __SIM_Constraint_h__ 00015 #define __SIM_Constraint_h__ 00016 00017 #include "SIM_API.h" 00018 #include "SIM_RelationshipData.h" 00019 00020 class SIM_Relationship; 00021 class SIM_ConAnchor; 00022 class SIM_ConRel; 00023 00024 /// The intention of this class is to act as a flexible container for 00025 /// constraint data. The individual components of the container (the 00026 /// relationship, the anchors, etc.) can each be switched at need, without 00027 /// affecting the other components. 00028 class SIM_API SIM_Constraint : public SIM_RelationshipData 00029 { 00030 public: 00031 void initConstraint(const SIM_Relationship *relationship); 00032 SIM_ConRel *getConRel(); 00033 const SIM_ConAnchor *getAnchor(int index) const; 00034 00035 protected: 00036 explicit SIM_Constraint(const SIM_DataFactory *factory); 00037 virtual ~SIM_Constraint(); 00038 00039 virtual long getGuideParmVersionSubclass() const; 00040 virtual SIM_Guide *createGuideObjectSubclass() const; 00041 virtual void buildGuideGeometrySubclass(const SIM_RootData &root, 00042 const SIM_Options &options, 00043 const GU_DetailHandle &gdh, 00044 UT_DMatrix4 *xform, 00045 const SIM_Time &t) const; 00046 00047 private: 00048 const SIM_ConRel *getConstConRel() const; 00049 00050 static const SIM_DopDescription *getDopDescription(); 00051 00052 static bool theMakingStateTransitions; 00053 00054 friend class SIM_ConstraintIterator; 00055 00056 DECLARE_STANDARD_GETCASTTOTYPE(); 00057 DECLARE_DATAFACTORY(SIM_Constraint, 00058 SIM_RelationshipData, 00059 "Constraint", 00060 getDopDescription()); 00061 }; 00062 00063 #endif 00064
1.5.9