25#ifndef PXR_BASE_TS_SPLINE_KEY_FRAMES_H
26#define PXR_BASE_TS_SPLINE_KEY_FRAMES_H
29#include "pxr/base/ts/keyFrame.h"
30#include "pxr/base/ts/keyFrameMap.h"
31#include "pxr/base/ts/loopParams.h"
32#include "pxr/base/ts/types.h"
33#include "pxr/base/vt/value.h"
39PXR_NAMESPACE_OPEN_SCOPE
78 *intervalAffected=NULL );
82 *intervalAffected=NULL );
105 void BakeSplineLoops();
108 typedef std::pair<TsKeyFrameMap::iterator,
109 TsKeyFrameMap::iterator> _KeyFrameRange;
119 void _SetLoopedFromNormal();
123 void _SetNormalFromLooped();
127 void _UnrollMaster();
130 const TsLoopParams ¶ms);
136 const TsKeyFrameMap::iterator &k0,
137 const TsKeyFrameMap::iterator &k1,
138 const TsLoopParams ¶ms,
139 std::vector<TsTime> *times = NULL);
146 _KeyFrameRange _GetKeyFrameRange( TsTime time );
151 _KeyFrameRange _GetKeyFrameRange( TsTime leftTime, TsTime rightTime );
155 GfInterval _FindRemoveKeyFrameChangedInterval(TsTime time);
162 TsExtrapolationType _GetEffectiveExtrapolationType(
164 const TsSide &side)
const;
167 void _LoopParamsChanged(
bool loopingChanged,
bool valueOffsetChanged,
171 friend class TsKeyFrameEvalUtil;
174 TsExtrapolationPair _extrapolation;
175 TsLoopParams _loopParams;
180PXR_NAMESPACE_CLOSE_SCOPE
A basic mathematical interval class.
Specifies the value of an TsSpline object at a particular point in time.
An ordered sequence of keyframes with STL-compliant API for finding, inserting, and erasing keyframes...
Maintains the keyframes for a spline.
void SetExtrapolation(const TsExtrapolationPair &extrapolation)
Sets the left and right extrapolation.
void SetKeyFrames(const TsKeyFrameMap &)
If looping, just writes to the non unrolled intervals.
const TsExtrapolationPair & GetExtrapolation() const
Get the left and right extrapolation.
TsSpline_KeyFrames(TsSpline_KeyFrames const &other, TsKeyFrameMap const *keyFrames=NULL)
Generalized copy constructor.
void SwapKeyFrames(std::vector< TsKeyFrame > *keyFrames)
Replaces the key frames of this spline with keyFrames, and replaces the contents of keyFrames with th...
const TsKeyFrameMap & GetNormalKeyFrames() const
Gets the underlying normal keys.
void Clear()
Clears both maps.
const TsKeyFrameMap & GetKeyFrames() const
Gets the looped or unlooped keys, according to whether the spline is looping.
const TsLoopParams & GetLoopParams() const
Get the loop parameters.
void SetLoopParams(const TsLoopParams &loopParams)
Sets the loop parameters.
void RemoveKeyFrame(TsTime t, GfInterval *intervalAffected=NULL)
If looping, just affects the non unrolled intervals.
void SetKeyFrame(TsKeyFrame kf, GfInterval *intervalAffected=NULL)
If looping, just writes to the non unrolled intervals.
Represents a spline value object.