8 #ifndef PXR_BASE_TS_KNOT_DATA_H
9 #define PXR_BASE_TS_KNOT_DATA_H
141 template <
typename T>
203 static std::unique_ptr<Ts_KnotDataProxy>
232 template <
typename T>
267 template <
typename T>
277 #define COMP(member) \
278 if (member != other.member) \
283 template <
typename T>
301 COMP(preTanAlgorithm);
302 COMP(postTanAlgorithm);
309 template <
typename T>
312 return (dualValued ? preValue :
value);
315 template <
typename T>
321 template <
typename T>
324 return -preTanWidth * preTanSlope;
327 template <
typename T>
333 template <
typename T>
336 return postTanWidth * postTanSlope;
342 template <
typename T>
349 template <
typename T>
355 template <
typename T>
361 template <
typename T>
364 return Ts_GetType<T>();
367 template <
typename T>
374 return *_data == *typedOther;
377 template <
typename T>
384 template <
typename T>
388 *valueOut =
VtValue(_data->value);
391 template <
typename T>
398 template <
typename T>
402 *valueOut =
VtValue(_data->preValue);
405 template <
typename T>
412 template <
typename T>
416 *slopeOut =
VtValue(_data->GetPreTanSlope());
419 template <
typename T>
426 template <
typename T>
430 *slopeOut =
VtValue(_data->GetPostTanSlope());
433 template <
typename T>
442 ? prevTypedProxy->_data
447 ? nextTypedProxy->_data
void SetValue(VtValue value) override
T const & UncheckedGet() const &
static Ts_KnotData * Create(TfType valueType)
GT_API const UT_StringHolder time
#define PXR_NAMESPACE_OPEN_SCOPE
virtual void SetPreTanSlope(VtValue slope)=0
GLsizei const GLfloat * value
bool UpdateTangents(const Ts_KnotDataProxy *prevProxy, const Ts_KnotDataProxy *nextProxy, const TsCurveType curveType) override
bool operator==(const Ts_TypedKnotData< T > &other) const
TS_API bool _UpdateTangentAutoEase(const Ts_TypedKnotData< T > *prevData, const Ts_TypedKnotData< T > *nextData, bool updatePre)
virtual void SetValue(VtValue value)=0
void GetPreTanSlope(VtValue *slopeOut) const override
void GetPostTanSlope(VtValue *slopeOut) const override
TS_API bool _UpdateTangent(const Ts_TypedKnotData< T > *prevData, const Ts_TypedKnotData< T > *nextData, TsCurveType curveType, bool updatePre)
void SetPreTanSlope(VtValue slope) override
virtual bool UpdateTangents(const Ts_KnotDataProxy *prevProxy, const Ts_KnotDataProxy *nextProxy, const TsCurveType curveType)=0
void SetPostTanWidth(const TsTime width)
void SetPreValue(VtValue value) override
TsTime GetPostTanWidth() const
Ts_TypedKnotDataProxy(Ts_TypedKnotData< T > *data)
bool operator==(const Ts_KnotData &other) const
void SetPreTanWidth(const TsTime width)
T GetPostTanSlope() const
virtual bool IsDataEqualTo(const Ts_KnotData &other) const =0
Ts_KnotData * CloneData() const override
virtual TfType GetValueType() const =0
virtual ~Ts_KnotDataProxy()
T GetPostTanHeight() const
TfType GetValueType() const override
virtual void GetValue(VtValue *valueOut) const =0
virtual Ts_KnotData * CloneData() const =0
TsTangentAlgorithm postTanAlgorithm
static std::unique_ptr< Ts_KnotDataProxy > Create(Ts_KnotData *data, TfType valueType)
virtual void SetPostTanSlope(VtValue slope)=0
virtual void GetPreTanSlope(VtValue *slopeOut) const =0
TsTime GetPreTanWidth() const
bool IsDataEqualTo(const Ts_KnotData &other) const override
virtual void GetPreValue(VtValue *valueOut) const =0
#define PXR_NAMESPACE_CLOSE_SCOPE
void SetPostTanSlope(VtValue slope) override
virtual void SetPreValue(VtValue value)=0
virtual void DeleteData()=0
T GetPreTanHeight() const
TsTangentAlgorithm preTanAlgorithm
void DeleteData() override
TS_API bool UpdateTangents(const Ts_TypedKnotData< T > *prevData, const Ts_TypedKnotData< T > *nextData, const TsCurveType curveType)
virtual void GetPostTanSlope(VtValue *slopeOut) const =0
void GetPreValue(VtValue *valueOut) const override
void GetValue(VtValue *valueOut) const override