25#ifndef PXR_BASE_TS_TYPES_H
26#define PXR_BASE_TS_TYPES_H
29#include "pxr/base/ts/api.h"
48#include "pxr/base/tf/weakPtrFacade.h"
50#include "pxr/base/vt/value.h"
54PXR_NAMESPACE_OPEN_SCOPE
77enum TsExtrapolationType {
78 TsExtrapolationHeld = 0,
79 TsExtrapolationLinear,
81 TsExtrapolationNumTypes
86typedef std::pair<TsExtrapolationType,TsExtrapolationType>
101 TsTime inRightTime,
const VtValue& inRightValue,
102 bool inBlur =
false) :
119typedef std::vector<TsValueSample> TsSamples;
134 static const bool isSupportedSplineValueType =
false;
138 static const bool interpolatable =
true;
144 static const bool extrapolatable =
false;
148 static const bool supportsTangents =
true;
155struct TS_API TsTraits<
std::string> {
156 static const bool isSupportedSplineValueType =
true;
157 static const bool interpolatable =
false;
158 static const bool extrapolatable =
false;
159 static const bool supportsTangents =
false;
160 static const std::string zero;
164struct TS_API TsTraits<double> {
165 static const bool isSupportedSplineValueType =
true;
166 static const bool interpolatable =
true;
167 static const bool extrapolatable =
true;
168 static const bool supportsTangents =
true;
169 static const double zero;
173struct TS_API TsTraits<float> {
174 static const bool isSupportedSplineValueType =
true;
175 static const bool interpolatable =
true;
176 static const bool extrapolatable =
true;
177 static const bool supportsTangents =
true;
178 static const float zero;
182struct TS_API TsTraits<int> {
183 static const bool isSupportedSplineValueType =
true;
184 static const bool interpolatable =
false;
185 static const bool extrapolatable =
false;
186 static const bool supportsTangents =
false;
187 static const int zero;
191struct TS_API TsTraits<bool> {
192 static const bool isSupportedSplineValueType =
true;
193 static const bool interpolatable =
false;
194 static const bool extrapolatable =
false;
195 static const bool supportsTangents =
false;
196 static const bool zero;
200struct TS_API TsTraits<
GfVec2d> {
201 static const bool isSupportedSplineValueType =
true;
202 static const bool interpolatable =
true;
203 static const bool extrapolatable =
true;
204 static const bool supportsTangents =
false;
209struct TS_API TsTraits<
GfVec2f> {
210 static const bool isSupportedSplineValueType =
true;
211 static const bool interpolatable =
true;
212 static const bool extrapolatable =
true;
213 static const bool supportsTangents =
false;
218struct TS_API TsTraits<
GfVec3d> {
219 static const bool isSupportedSplineValueType =
true;
220 static const bool interpolatable =
true;
221 static const bool extrapolatable =
true;
222 static const bool supportsTangents =
false;
227struct TS_API TsTraits<
GfVec3f> {
228 static const bool isSupportedSplineValueType =
true;
229 static const bool interpolatable =
true;
230 static const bool extrapolatable =
true;
231 static const bool supportsTangents =
false;
236struct TS_API TsTraits<
GfVec4d> {
237 static const bool isSupportedSplineValueType =
true;
238 static const bool interpolatable =
true;
239 static const bool extrapolatable =
true;
240 static const bool supportsTangents =
false;
245struct TS_API TsTraits<
GfVec4f> {
246 static const bool isSupportedSplineValueType =
true;
247 static const bool interpolatable =
true;
248 static const bool extrapolatable =
true;
249 static const bool supportsTangents =
false;
254struct TS_API TsTraits<
GfQuatd> {
255 static const bool isSupportedSplineValueType =
true;
256 static const bool interpolatable =
true;
257 static const bool extrapolatable =
false;
258 static const bool supportsTangents =
false;
263struct TS_API TsTraits<
GfQuatf> {
264 static const bool isSupportedSplineValueType =
true;
265 static const bool interpolatable =
true;
266 static const bool extrapolatable =
false;
267 static const bool supportsTangents =
false;
273 static const bool isSupportedSplineValueType =
true;
274 static const bool interpolatable =
true;
275 static const bool extrapolatable =
true;
276 static const bool supportsTangents =
false;
282 static const bool isSupportedSplineValueType =
true;
283 static const bool interpolatable =
true;
284 static const bool extrapolatable =
true;
285 static const bool supportsTangents =
false;
291 static const bool isSupportedSplineValueType =
true;
292 static const bool interpolatable =
true;
293 static const bool extrapolatable =
true;
294 static const bool supportsTangents =
false;
299struct TS_API TsTraits<
VtArray<double> > {
300 static const bool isSupportedSplineValueType =
true;
301 static const bool interpolatable =
true;
302 static const bool extrapolatable =
true;
303 static const bool supportsTangents =
false;
308struct TS_API TsTraits<
VtArray<float> > {
309 static const bool isSupportedSplineValueType =
true;
310 static const bool interpolatable =
true;
311 static const bool extrapolatable =
true;
312 static const bool supportsTangents =
false;
313 static const bool supportsVaryingShapes =
false;
318struct TS_API TsTraits<
TfToken> {
319 static const bool isSupportedSplineValueType =
true;
320 static const bool interpolatable =
false;
321 static const bool extrapolatable =
false;
322 static const bool supportsTangents =
false;
326PXR_NAMESPACE_CLOSE_SCOPE
Stores a 2x2 matrix of double elements.
Stores a 3x3 matrix of double elements.
Stores a 4x4 matrix of double elements.
Basic type: a quaternion, a complex number with a real coefficient and three imaginary coefficients,...
Basic type: a quaternion, a complex number with a real coefficient and three imaginary coefficients,...
Basic type for a vector of 2 double components.
Basic type for a vector of 2 float components.
Basic type for a vector of 3 double components.
Basic type for a vector of 3 float components.
Basic type for a vector of 4 double components.
Basic type for a vector of 4 float components.
Token for efficient comparison, assignment, and hashing of known strings.
Represents an arbitrary dimensional rectangular container class.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
This file defines some macros that are useful for declaring and using static TfTokens.
TsTime leftTime
Left side time (inclusive)
VtValue leftValue
Value at left or, for blur, min value.
bool isBlur
True if a blur sample.
TsTime rightTime
Right side time (exclusive)
VtValue rightValue
Value at right or, for blur, max value.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...