HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_ConAnchorObjPointGroupRot.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  * NAME: SIM_ConAnchorObjPointGroupRot.h ( SIM Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __SIM_ConAnchorObjPointGroupRot__
12 #define __SIM_ConAnchorObjPointGroupRot__
13 
15 #include "SIM_DopDescription.h"
16 #include "SIM_PRMShared.h"
17 
19 {
20 public:
21  /// The point group that we are anchored to.
23 
27 
28  /// Resets the current point to the first in the group.
29  void reset() const;
30 
31  /// Moves the current point to the next one.
32  /// This will not move beyond the last point in the group.
33  void nextPoint() const;
34 
35  /// Whether we have already reached the last point in the group.
36  bool atEnd() const;
37 
38 protected:
41 
42  virtual int getPointSubclass() const;
43  virtual void setPointSubclass(int ptnum);
44 
45  virtual bool getNeedsInitSubclass() const;
46  virtual void initAnchorSubclass(const SIM_Object *object);
47 
49  const SIM_Options &options,
50  const GU_DetailHandle &gdh,
51  const SIM_Relationship &rel,
52  const SIM_Time &time) const;
53 
54 
55  virtual const UT_Vector3 getRotationSubclass() const;
56  virtual SIM_DOFType getDOFTypeSubclass() const;
57  virtual const UT_Vector3 getDOFVectorSubclass() const;
58 
59 private:
60  UT_IntArray myPoints;
61  mutable int myPointsIdx;
62  mutable bool myAtEnd;
63 
64  void cachePoints();
65 
66  static const SIM_DopDescription *getDopDescription();
67 
71  "Anchor: Object Point Group Rotation",
72  getDopDescription());
73 };
74 
75 #endif
76 
virtual SIM_DOFType getDOFTypeSubclass() const
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition: SIM_DataUtils.h:45
#define SIM_NAME_ROTATIONATTRIBNAME
Definition: SIM_Names.h:178
virtual void buildAnchorGuideGeometrySubclass(const SIM_Options &options, const GU_DetailHandle &gdh, const SIM_Relationship &rel, const SIM_Time &t) const
Default implementation does nothing.
GT_API const UT_StringHolder time
virtual void initAnchorSubclass(const SIM_Object *object)
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition: SIM_DataUtils.h:58
GETSET_DATA_FUNCS_S(SIM_NAME_GEOMETRY, GeometryName)
GLfloat f
Definition: glcorearb.h:1925
virtual int getPointSubclass() const =0
virtual const UT_Vector3 getRotationSubclass() const
SIM_DOFType
We need better names for these.
#define SIM_NAME_POINTGROUP
Definition: SIM_Names.h:165
virtual bool getNeedsInitSubclass() const
#define SIM_NAME_CONDOFATTRIBNAME
Definition: SIM_Names.h:91
#define SIM_API
Definition: SIM_API.h:10
#define SIM_NAME_CONDIRATTRIBNAME
Definition: SIM_Names.h:89
virtual void setPointSubclass(int ptnum)=0
virtual const UT_Vector3 getDOFVectorSubclass() const