HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SIM_Constraint.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __SIM_Constraint_h__
9 #define __SIM_Constraint_h__
10 
11 #include "SIM_API.h"
12 #include "SIM_RelationshipData.h"
13 
14 class SIM_Relationship;
15 class SIM_ConAnchor;
16 class SIM_ConRel;
17 
18 /// The intention of this class is to act as a flexible container for
19 /// constraint data. The individual components of the container (the
20 /// relationship, the anchors, etc.) can each be switched at need, without
21 /// affecting the other components.
23 {
24 public:
25  void initConstraint(const SIM_Relationship *relationship);
26  SIM_ConRel *getConRel();
27  const SIM_ConAnchor *getAnchor(int index) const;
28 
29 protected:
30  explicit SIM_Constraint(const SIM_DataFactory *factory);
31  virtual ~SIM_Constraint();
32 
33  virtual long getGuideParmVersionSubclass() const;
34  virtual SIM_Guide *createGuideObjectSubclass() const;
35  virtual void buildGuideGeometrySubclass(const SIM_RootData &root,
36  const SIM_Options &options,
37  const GU_DetailHandle &gdh,
38  UT_DMatrix4 *xform,
39  const SIM_Time &t) const;
40 
41 private:
42  const SIM_ConRel *getConstConRel() const;
43 
44  static const SIM_DopDescription *getDopDescription();
45 
46  static bool theMakingStateTransitions;
47 
48  friend class SIM_ConstraintIterator;
49 
53  "Constraint",
54  getDopDescription());
55 };
56 
57 #endif
58 
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:45
virtual void buildGuideGeometrySubclass(const SIM_RootData &root, const SIM_Options &options, const GU_DetailHandle &gdh, UT_DMatrix4 *xform, const SIM_Time &t) const
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:58
GLuint index
Definition: glcorearb.h:785
#define SIM_API
Definition: SIM_API.h:10
virtual long getGuideParmVersionSubclass() const
virtual SIM_Guide * createGuideObjectSubclass() const