00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __HOM_Keyframe_h__
00017 #define __HOM_Keyframe_h__
00018
00019 #include "HOM_API.h"
00020 #include "HOM_BaseKeyframe.h"
00021 #include "HOM_EnumModules.h"
00022 #include "HOM_Module.h"
00023
00024 SWIGOUT(%rename(Keyframe) HOM_Keyframe;)
00025
00026 SWIGOUT(%feature("notabstract") HOM_Keyframe;)
00027 class HOM_API HOM_Keyframe : public HOM_BaseKeyframe
00028 {
00029 public:
00030
00031 #ifdef SWIG
00032 %extend
00033 {
00034 HOM_Keyframe() throw(HOM_Error)
00035 { return HOM().newKeyframe(); }
00036 HOM_Keyframe(double value) throw(HOM_Error)
00037 { return HOM().newKeyframe(value); }
00038 HOM_Keyframe(double value, double time) throw(HOM_Error)
00039 { return HOM().newKeyframe(value, time); }
00040 HOM_Keyframe(const HOM_Keyframe &keyframe)
00041 { return HOM().newKeyframe(keyframe); }
00042 }
00043 #else
00044 HOM_Keyframe() throw(HOM_Error);
00045 HOM_Keyframe(double value) throw(HOM_Error);
00046 HOM_Keyframe(double value, double time) throw(HOM_Error);
00047 HOM_Keyframe(const HOM_Keyframe &keyframe) throw(HOM_Error);
00048 #endif
00049
00050 virtual ~HOM_Keyframe();
00051
00052 virtual bool operator==(HOM_Keyframe &keyframe);
00053 virtual bool operator!=(HOM_Keyframe &keyframe);
00054
00055 virtual int __hash__();
00056 virtual std::string __repr__();
00057
00058 virtual HOM_EnumValue &evaluatedType()
00059 { return HOM_parmData::Float; }
00060
00061 void setValue(double value);
00062 double value() throw(HOM_KeyframeValueNotSet, HOM_Error);
00063 bool isValueSet();
00064
00065
00066
00067
00068
00069 void setInValue(double in_value);
00070 void unsetInValue();
00071 double inValue() throw(HOM_KeyframeValueNotSet, HOM_Error);
00072 bool isValueTied();
00073 bool isValueUsed();
00074 void useValue(bool use);
00075
00076 void setSlope(double slope);
00077 double slope() throw(HOM_KeyframeValueNotSet, HOM_Error);
00078 bool isSlopeSet();
00079 bool isSlopeUsed();
00080 void useSlope(bool use);
00081
00082 void setInSlope(double in_slope);
00083 void unsetInSlope();
00084 double inSlope() throw(HOM_KeyframeValueNotSet, HOM_Error);
00085 bool isSlopeTied();
00086
00087 void setAccel(double accel);
00088 double accel() throw(HOM_KeyframeValueNotSet, HOM_Error);
00089 bool isAccelSet();
00090 bool isAccelUsed();
00091 void useAccel(bool use);
00092
00093 void setInAccel(double in_accel);
00094 void unsetInAccel();
00095 double inAccel() throw(HOM_KeyframeValueNotSet, HOM_Error);
00096 bool isAccelTied();
00097 void interpretAccelAsRatio(bool on);
00098 bool isAccelInterpretedAsRatio();
00099
00100 private:
00101 double myValue;
00102 bool myIsValueSet;
00103 bool myIsValueUsed;
00104 double myInValue;
00105 bool myIsValueTied;
00106
00107 double mySlope;
00108 bool myIsSlopeSet;
00109 bool myIsSlopeUsed;
00110 double myInSlope;
00111 bool myIsSlopeTied;
00112
00113 double myAccel;
00114 bool myIsAccelSet;
00115 bool myIsAccelUsed;
00116 double myInAccel;
00117 bool myIsAccelTied;
00118 bool myAccelAsRatio;
00119 };
00120
00121 #endif