9 #ifndef __HOM_ChannelPrim_h__
10 #define __HOM_ChannelPrim_h__
46 virtual double start() = 0;
47 virtual double end() = 0;
48 virtual double length() = 0;
50 virtual void setStart(
double frame) = 0;
52 virtual double defaultValue() = 0;
53 virtual void setDefaultValue(
double value) = 0;
56 virtual double eval(
double frame) = 0;
57 virtual double _evalSlope(
double frame) = 0;
59 virtual bool hasKeyAtFrame(
double frame) = 0;
61 virtual void insertKey(
double frame,
bool auto_slope =
true) = 0;
62 virtual void destroyKey(
double frame) = 0;
63 virtual void destroyKeys(
double frame_start,
double frame_end) = 0;
65 virtual void clear() = 0;
69 virtual int keyIndex(
double frame) = 0;
71 virtual bool setKeyValue(
double frame,
double value,
73 virtual bool setKeySlope(
double frame,
double slope,
75 virtual bool setKeyAccel(
double frame,
double accel,
78 virtual double keyValue(
double frame,
HOM_EnumValue *key_half=
nullptr) = 0;
79 virtual double keySlope(
double frame,
HOM_EnumValue *key_half=
nullptr) = 0;
80 virtual double keyAccel(
double frame,
HOM_EnumValue *key_half=
nullptr) = 0;
82 virtual bool setKeyAutoSlope(
double frame,
bool auto_slope,
90 virtual std::vector<double> keyFrames() = 0;
91 virtual std::vector<double> keyValues(
HOM_EnumValue *key_half=
nullptr) = 0;
92 virtual std::vector<double> keySlopes(
HOM_EnumValue *key_half=
nullptr) = 0;
93 virtual std::vector<double> keyAccels(
HOM_EnumValue *key_half=
nullptr) = 0;
95 virtual void setKeyValues(
const std::vector<double> &
values,
97 virtual void setKeySlopes(
const std::vector<double> &slopes,
99 virtual void setKeyAccels(
const std::vector<double> &accels,
102 virtual void moveKeyframes(
const std::vector<int> &key_indices,
103 const std::vector<double> &frame_offsets) = 0;
105 virtual void smoothAutoSlopes(
bool force =
false) = 0;
106 virtual void smoothAutoSlopesForKeys(
int start_index,
108 bool force =
false) = 0;
SIM_API const UT_StringHolder vertex
#define HOM_DESTRUCT_OBJECT(pointer)
GA_API const UT_StringHolder accel
GLsizei const GLfloat * value
GLuint GLsizei GLsizei * length
string __repr__(VtArray< T > const &self)
GLint GLint GLsizei GLint GLenum GLenum type
~HOM_ChannelPrim() override
#define HOM_CONSTRUCT_OBJECT(pointer)
HUSD_API bool eval(VtValue &val, T &ret_val)
SIM_API const UT_StringHolder force
GLenum GLsizei GLsizei GLint * values
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
HOM_ChannelPrim(const HOM_ChannelPrim &face)