8#ifndef PXR_BASE_TS_SPLINE_KEY_FRAMES_H
9#define PXR_BASE_TS_SPLINE_KEY_FRAMES_H
12#include "pxr/base/ts/keyFrame.h"
13#include "pxr/base/ts/keyFrameMap.h"
14#include "pxr/base/ts/loopParams.h"
15#include "pxr/base/ts/types.h"
16#include "pxr/base/vt/value.h"
22PXR_NAMESPACE_OPEN_SCOPE
61 *intervalAffected=NULL );
65 *intervalAffected=NULL );
88 void BakeSplineLoops();
91 typedef std::pair<TsKeyFrameMap::iterator,
92 TsKeyFrameMap::iterator> _KeyFrameRange;
102 void _SetLoopedFromNormal();
106 void _SetNormalFromLooped();
110 void _UnrollMaster();
113 const TsLoopParams ¶ms);
119 const TsKeyFrameMap::iterator &k0,
120 const TsKeyFrameMap::iterator &k1,
121 const TsLoopParams ¶ms,
122 std::vector<TsTime> *times = NULL);
129 _KeyFrameRange _GetKeyFrameRange( TsTime time );
134 _KeyFrameRange _GetKeyFrameRange( TsTime leftTime, TsTime rightTime );
138 GfInterval _FindRemoveKeyFrameChangedInterval(TsTime time);
145 TsExtrapolationType _GetEffectiveExtrapolationType(
147 const TsSide &side)
const;
150 void _LoopParamsChanged(
bool loopingChanged,
bool valueOffsetChanged,
154 friend class TsKeyFrameEvalUtil;
157 TsExtrapolationPair _extrapolation;
158 TsLoopParams _loopParams;
163PXR_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.