HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_Keyframe.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  * COMMENTS:
7  */
8 
9 #ifndef __HOM_Keyframe_h__
10 #define __HOM_Keyframe_h__
11 
12 #include "HOM_API.h"
13 #include "HOM_BaseKeyframe.h"
14 #include "HOM_EnumModules.h"
15 #include "HOM_Module.h"
16 #include "HOM_PtrOrNull.h"
17 
18 SWIGOUT(%rename(Keyframe) HOM_Keyframe;)
19 
20 SWIGOUT(%feature("notabstract") HOM_Keyframe;)
22 {
23 public:
24 
25 #ifdef SWIG
26 %extend
27 {
28  HOM_Keyframe()
29  { return HOM().newKeyframe(); }
30  HOM_Keyframe(double value)
31  { return HOM().newKeyframe(value); }
32  HOM_Keyframe(double value, double time)
33  { return HOM().newKeyframe(value, time); }
34  HOM_Keyframe(const HOM_Keyframe &keyframe)
35  { return HOM().newKeyframe(keyframe); }
36 }
37 #else
38  HOM_Keyframe();
39  HOM_Keyframe(double value);
40  HOM_Keyframe(double value, double time);
41  HOM_Keyframe(const HOM_Keyframe &keyframe);
42 #endif
43 
44  ~HOM_Keyframe() override;
45 
46  bool operator==(HOM_PtrOrNull<HOM_BaseKeyframe> keyframe) override;
47 
48  int __hash__() override;
49  std::string __repr__() override;
50 
52  { return HOM_parmData::Float; }
53 
54  void setValue(double value);
55  double value();
56  bool isValueSet();
57 
58  // If you set the in value and the (out) value is not set, it will be
59  // set to the same value. Setting the in value breaks the tie between
60  // the values. If neither of the in or (out) values are set, they
61  // are considered tied.
62  void setInValue(double in_value);
63  void unsetInValue();
64  double inValue();
65  bool isValueTied();
66  bool isValueUsed();
67  void useValue(bool use);
68 
69  void setSlope(double slope);
70  double slope();
71  bool isSlopeSet();
72  bool isSlopeUsed();
73  void useSlope(bool use);
74  bool isSlopeAuto();
75  void setSlopeAuto(bool on);
76 
77  void setInSlope(double in_slope);
78  void unsetInSlope();
79  double inSlope();
80  bool isSlopeTied();
81  bool isInSlopeAuto();
82  void setInSlopeAuto(bool on);
83 
84  void setAccel(double accel);
85  double accel();
86  bool isAccelSet();
87  bool isAccelUsed();
88  void useAccel(bool use);
89 
90  void setInAccel(double in_accel);
91  void unsetInAccel();
92  double inAccel();
93  bool isAccelTied();
94  void interpretAccelAsRatio(bool on);
95  bool isAccelInterpretedAsRatio();
96 
97 private:
98  double myValue;
99  bool myIsValueSet;
100  bool myIsValueUsed;
101  double myInValue;
102  bool myIsValueTied;
103 
104  double mySlope;
105  bool myIsSlopeSet;
106  bool myIsSlopeUsed;
107  double myInSlope;
108  bool myIsSlopeTied;
109  bool myIsSlopeAuto;
110  bool myIsInSlopeAuto;
111 
112  double myAccel;
113  bool myIsAccelSet;
114  bool myIsAccelUsed;
115  double myInAccel;
116  bool myIsAccelTied;
117  bool myAccelAsRatio;
118 };
119 
120 #endif
GA_API const UT_StringHolder accel
GT_API const UT_StringHolder time
GLsizei const GLchar *const * string
Definition: glcorearb.h:814
GLsizei const GLfloat * value
Definition: glcorearb.h:824
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
virtual HOM_Keyframe * newKeyframe()=0
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:349
__hostdev__ void setValue(uint32_t offset, bool v)
Definition: NanoVDB.h:5750
#define HOM_API
Definition: HOM_API.h:13
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
virtual int __hash__()=0
Definition: core.h:1131
HOM_API HOM_Module & HOM()
bool operator==(const Mat3< T0 > &m0, const Mat3< T1 > &m1)
Equality operator, does exact floating point comparisons.
Definition: Mat3.h:542
HOM_EnumValue & evaluatedType() override
Definition: HOM_Keyframe.h:51