8#ifndef PXR_BASE_TS_TYPES_H
9#define PXR_BASE_TS_TYPES_H
12#include "pxr/base/ts/api.h"
31#include "pxr/base/tf/weakPtrFacade.h"
33#include "pxr/base/vt/value.h"
37PXR_NAMESPACE_OPEN_SCOPE
60enum TsExtrapolationType {
61 TsExtrapolationHeld = 0,
62 TsExtrapolationLinear,
64 TsExtrapolationNumTypes
69typedef std::pair<TsExtrapolationType,TsExtrapolationType>
84 TsTime inRightTime,
const VtValue& inRightValue,
85 bool inBlur =
false) :
102typedef std::vector<TsValueSample> TsSamples;
117 static const bool isSupportedSplineValueType =
false;
121 static const bool interpolatable =
true;
127 static const bool extrapolatable =
false;
131 static const bool supportsTangents =
true;
138struct TS_API TsTraits<
std::string> {
139 static const bool isSupportedSplineValueType =
true;
140 static const bool interpolatable =
false;
141 static const bool extrapolatable =
false;
142 static const bool supportsTangents =
false;
143 static const std::string zero;
147struct TS_API TsTraits<double> {
148 static const bool isSupportedSplineValueType =
true;
149 static const bool interpolatable =
true;
150 static const bool extrapolatable =
true;
151 static const bool supportsTangents =
true;
152 static const double zero;
156struct TS_API TsTraits<float> {
157 static const bool isSupportedSplineValueType =
true;
158 static const bool interpolatable =
true;
159 static const bool extrapolatable =
true;
160 static const bool supportsTangents =
true;
161 static const float zero;
165struct TS_API TsTraits<int> {
166 static const bool isSupportedSplineValueType =
true;
167 static const bool interpolatable =
false;
168 static const bool extrapolatable =
false;
169 static const bool supportsTangents =
false;
170 static const int zero;
174struct TS_API TsTraits<bool> {
175 static const bool isSupportedSplineValueType =
true;
176 static const bool interpolatable =
false;
177 static const bool extrapolatable =
false;
178 static const bool supportsTangents =
false;
179 static const bool zero;
183struct TS_API TsTraits<
GfVec2d> {
184 static const bool isSupportedSplineValueType =
true;
185 static const bool interpolatable =
true;
186 static const bool extrapolatable =
true;
187 static const bool supportsTangents =
false;
192struct TS_API TsTraits<
GfVec2f> {
193 static const bool isSupportedSplineValueType =
true;
194 static const bool interpolatable =
true;
195 static const bool extrapolatable =
true;
196 static const bool supportsTangents =
false;
201struct TS_API TsTraits<
GfVec3d> {
202 static const bool isSupportedSplineValueType =
true;
203 static const bool interpolatable =
true;
204 static const bool extrapolatable =
true;
205 static const bool supportsTangents =
false;
210struct TS_API TsTraits<
GfVec3f> {
211 static const bool isSupportedSplineValueType =
true;
212 static const bool interpolatable =
true;
213 static const bool extrapolatable =
true;
214 static const bool supportsTangents =
false;
219struct TS_API TsTraits<
GfVec4d> {
220 static const bool isSupportedSplineValueType =
true;
221 static const bool interpolatable =
true;
222 static const bool extrapolatable =
true;
223 static const bool supportsTangents =
false;
228struct TS_API TsTraits<
GfVec4f> {
229 static const bool isSupportedSplineValueType =
true;
230 static const bool interpolatable =
true;
231 static const bool extrapolatable =
true;
232 static const bool supportsTangents =
false;
237struct TS_API TsTraits<
GfQuatd> {
238 static const bool isSupportedSplineValueType =
true;
239 static const bool interpolatable =
true;
240 static const bool extrapolatable =
false;
241 static const bool supportsTangents =
false;
246struct TS_API TsTraits<
GfQuatf> {
247 static const bool isSupportedSplineValueType =
true;
248 static const bool interpolatable =
true;
249 static const bool extrapolatable =
false;
250 static const bool supportsTangents =
false;
256 static const bool isSupportedSplineValueType =
true;
257 static const bool interpolatable =
true;
258 static const bool extrapolatable =
true;
259 static const bool supportsTangents =
false;
265 static const bool isSupportedSplineValueType =
true;
266 static const bool interpolatable =
true;
267 static const bool extrapolatable =
true;
268 static const bool supportsTangents =
false;
274 static const bool isSupportedSplineValueType =
true;
275 static const bool interpolatable =
true;
276 static const bool extrapolatable =
true;
277 static const bool supportsTangents =
false;
282struct TS_API TsTraits<
VtArray<double> > {
283 static const bool isSupportedSplineValueType =
true;
284 static const bool interpolatable =
true;
285 static const bool extrapolatable =
true;
286 static const bool supportsTangents =
false;
291struct TS_API TsTraits<
VtArray<float> > {
292 static const bool isSupportedSplineValueType =
true;
293 static const bool interpolatable =
true;
294 static const bool extrapolatable =
true;
295 static const bool supportsTangents =
false;
296 static const bool supportsVaryingShapes =
false;
301struct TS_API TsTraits<
TfToken> {
302 static const bool isSupportedSplineValueType =
true;
303 static const bool interpolatable =
false;
304 static const bool extrapolatable =
false;
305 static const bool supportsTangents =
false;
309PXR_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...