25 #ifndef PXR_BASE_TS_KEY_FRAME_H
26 #define PXR_BASE_TS_KEY_FRAME_H
88 TsTime leftTangentLength = 0,
89 TsTime rightTangentLength = 0);
98 TsTime leftTangentLength = 0,
99 TsTime rightTangentLength = 0);
102 template <
typename T>
109 TsTime leftTangentLength = 0,
110 TsTime rightTangentLength = 0);
120 TsTime leftTangentLength = 0,
121 TsTime rightTangentLength = 0);
138 TsKeyFrame &
operator=(
const TsKeyFrame &rhs);
375 const VtValue & leftTangentSlope,
376 const VtValue & rightTangentSlope,
378 TsTime rightTangentLength);
382 void _InitializeKnotType(
TsKnotType knotType);
384 void _InitializeTangentLength(
TsTime leftTangentLength,
385 TsTime rightTangentLength);
389 bool _ValidateTangentSetting()
const;
401 template <
typename T>
405 const T & leftTangentSlope,
406 const T & rightTangentSlope,
408 TsTime rightTangentLength)
412 _holder.
New(time,
false ,
413 val, val, leftTangentSlope, rightTangentSlope);
415 _InitializeKnotType(knotType);
416 _InitializeTangentLength(leftTangentLength,rightTangentLength);
419 template <
typename T>
424 const T & leftTangentSlope,
425 const T & rightTangentSlope,
427 TsTime rightTangentLength)
431 _holder.
New(time,
true , lhv, rhv,
432 leftTangentSlope, rightTangentSlope);
434 _InitializeKnotType(knotType);
435 _InitializeTangentLength(leftTangentLength,rightTangentLength);
TS_API bool GetTangentSymmetryBroken() const
TS_API bool IsExtrapolatable() const
TS_API TsTime GetLeftTangentLength() const
A Linear knot; tangents will be ignored.
GT_API const UT_StringHolder time
TS_API TsKnotType GetKnotType() const
Gets the knot type.
TS_API bool IsInterpolatable() const
Gets whether the value type of this keyframe is interpolatable.
GLsizei const GLchar *const * string
TS_API bool operator==(const TsKeyFrame &) const
Compare this keyframe with another.
TS_API std::ostream & operator<<(std::ostream &out, const TsKeyFrame &val)
void SetTime(TsTime newTime)
TS_API VtValue GetZero() const
Gets a zero for this keyframe's value type.
TS_API VtValue GetLeftValueDerivative() const
TS_API void SetTangentSymmetryBroken(bool broken)
TS_API void SetKnotType(TsKnotType knotType)
Sets the knot type.
const Ts_Data * Get() const
TS_API ~TsKeyFrame()
Non-virtual destructor; this class should not be subclassed.
TS_API VtValue GetLeftValue() const
TS_API void SetTime(const TsTime &newTime)
Sets the time of this keyframe.
TS_API void SetRightTangentSlope(VtValue newSlope)
friend Ts_Data * Ts_GetKeyFrameData(TsKeyFrame &kf)
Gets whether the value type of this keyframe is interpolatable.
TsKnotType
Keyframe knot types.
TS_API TsTime GetTime() const
Gets the time of this keyframe.
TS_API TsKeyFrame & operator=(const TsKeyFrame &rhs)
Assignment operator.
SIM_API const UT_StringHolder broken
TS_API bool HasTangents() const
Specifies the value of an TsSpline object at a particular point in time.
TS_API void SetValue(VtValue val)
Sets the value at this keyframe.
TS_API VtValue GetLeftTangentSlope() const
Gets the left-side tangent slope (in units per frame) of this knot.
PXR_NAMESPACE_OPEN_SCOPE typedef double TsTime
The time type used by Ts.
TS_API bool operator!=(const TsKeyFrame &) const
Assignment operator.
TS_API TsKeyFrame()
Constructs a default double keyframe.
TS_API void SetRightTangentLength(TsTime)
TS_API TsTime GetRightTangentLength() const
TS_API void SetLeftTangentLength(TsTime)
TsSide
Dual-value keyframe side.
TS_API bool GetIsDualValued() const
TS_API bool IsEquivalentAtSide(const TsKeyFrame &keyFrame, TsSide side) const
TS_API void SetLeftTangentSlope(VtValue)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Holds the data for an TsKeyFrame.
#define PXR_NAMESPACE_CLOSE_SCOPE
TS_API bool CanSetKnotType(TsKnotType, std::string *reason=NULL) const
TS_API bool SupportsTangents() const
TS_API void ResetTangentSymmetryBroken()
TS_API void SetLeftValue(VtValue val)
TS_API VtValue GetValue() const
Gets the value at this keyframe.
TS_API VtValue GetValueDerivative() const
Gets the value of the derivative at this keyframe.
TS_API VtValue GetRightTangentSlope() const
Gets the right-side tangent slope (in units per frame) of this knot.
TS_API void SetIsDualValued(bool isDual)