HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups 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(bool followactive = true);
27  const SIM_ConAnchor *getAnchor(int index) const;
28 
29 protected:
30  explicit SIM_Constraint(const SIM_DataFactory *factory);
31  ~SIM_Constraint() override;
32 
33  long getGuideParmVersionSubclass() const override;
34  SIM_Guide *createGuideObjectSubclass() const override;
36  const SIM_RootData &root,
37  const SIM_Options &options,
38  const GU_DetailHandle &gdh,
39  UT_DMatrix4 *xform,
40  const SIM_Time &t) const override;
41 
42 private:
43  const SIM_ConRel *getConstConRel(bool followactive = true) const;
44 
45  static const SIM_DopDescription *getDopDescription();
46 
47  static bool theMakingStateTransitions;
48 
49  friend class SIM_ConstraintIterator;
50 
54  "Constraint",
55  getDopDescription());
56 };
57 
58 #endif
59 
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:50
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:63
GLdouble t
Definition: glad.h:2397
GLuint index
Definition: glcorearb.h:786
#define SIM_API
Definition: SIM_API.h:12
virtual long getGuideParmVersionSubclass() const
virtual SIM_Guide * createGuideObjectSubclass() const