Loading...
Searching...
No Matches
interpolation.h
Go to the documentation of this file.
1//
2// Copyright 2016 Pixar
3//
4// Licensed under the Apache License, Version 2.0 (the "Apache License")
5// with the following modification; you may not use this file except in
6// compliance with the Apache License and the following modification to it:
7// Section 6. Trademarks. is deleted and replaced with:
8//
9// 6. Trademarks. This License does not grant permission to use the trade
10// names, trademarks, service marks, or product names of the Licensor
11// and its affiliates, except as required to comply with Section 4(c) of
12// the License and to reproduce the content of the NOTICE file.
13//
14// You may obtain a copy of the Apache License at
15//
16// http://www.apache.org/licenses/LICENSE-2.0
17//
18// Unless required by applicable law or agreed to in writing, software
19// distributed under the Apache License with the above modification is
20// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21// KIND, either express or implied. See the Apache License for the specific
22// language governing permissions and limitations under the Apache License.
23//
24#ifndef PXR_USD_USD_INTERPOLATION_H
25#define PXR_USD_USD_INTERPOLATION_H
26
28
29#include "pxr/pxr.h"
30#include "pxr/usd/usd/api.h"
32#include "pxr/base/vt/array.h"
33#include "pxr/base/gf/declare.h"
34
35PXR_NAMESPACE_OPEN_SCOPE
36
37
45{
48};
49
73#define USD_LINEAR_INTERPOLATION_TYPES \
74 (GfHalf) (VtArray<GfHalf>) \
75 (float) (VtArray<float>) \
76 (double) (VtArray<double>) \
77 (SdfTimeCode) (VtArray<SdfTimeCode>) \
78 (GfMatrix2d) (VtArray<GfMatrix2d>) \
79 (GfMatrix3d) (VtArray<GfMatrix3d>) \
80 (GfMatrix4d) (VtArray<GfMatrix4d>) \
81 (GfVec2d) (VtArray<GfVec2d>) \
82 (GfVec2f) (VtArray<GfVec2f>) \
83 (GfVec2h) (VtArray<GfVec2h>) \
84 (GfVec3d) (VtArray<GfVec3d>) \
85 (GfVec3f) (VtArray<GfVec3f>) \
86 (GfVec3h) (VtArray<GfVec3h>) \
87 (GfVec4d) (VtArray<GfVec4d>) \
88 (GfVec4f) (VtArray<GfVec4f>) \
89 (GfVec4h) (VtArray<GfVec4h>) \
90 (GfQuatd) (VtArray<GfQuatd>) \
91 (GfQuatf) (VtArray<GfQuatf>) \
92 (GfQuath) (VtArray<GfQuath>)
93
101template <class T>
103{
104 static const bool isSupported = false;
105};
106
108#define _USD_DECLARE_INTERPOLATION_TRAITS(unused, type) \
109template <> \
110struct UsdLinearInterpolationTraits<type> \
111{ \
112 static const bool isSupported = true; \
113};
114
115TF_PP_SEQ_FOR_EACH(_USD_DECLARE_INTERPOLATION_TRAITS, ~,
117
118#undef _USD_DECLARE_INTERPOLATION_TRAITS
120
121
122PXR_NAMESPACE_CLOSE_SCOPE
123
124#endif // PXR_USD_USD_INTERPOLATION_H
Declares Gf types.
UsdInterpolationType
Attribute value interpolation options.
Definition: interpolation.h:45
@ UsdInterpolationTypeHeld
Held interpolation.
Definition: interpolation.h:46
@ UsdInterpolationTypeLinear
Linear interpolation.
Definition: interpolation.h:47
#define USD_LINEAR_INTERPOLATION_TYPES
Sequence of value types that support linear interpolation.
Definition: interpolation.h:73
Traits class describing whether a particular C++ value type supports linear interpolation.