7 #ifndef PXR_BASE_VT_TYPES_H 
    8 #define PXR_BASE_VT_TYPES_H 
   35 #define VT_FLOATING_POINT_BUILTIN_VALUE_TYPES \ 
   36 ((      double,                Double )) \ 
   40 #define VT_INTEGRAL_BUILTIN_VALUE_TYPES     \ 
   43 ((      unsigned char,         UChar  ))    \ 
   45 ((      unsigned short,        UShort ))    \ 
   47 ((      unsigned int,          UInt   ))    \ 
   48 ((      int64_t,               Int64  ))    \ 
   49 ((      uint64_t,              UInt64 )) 
   51 #define VT_VEC_INT_VALUE_TYPES         \ 
   52 ((      GfVec4i,             Vec4i  )) \ 
   53 ((      GfVec3i,             Vec3i  )) \ 
   56 #define VT_VEC_HALF_VALUE_TYPES        \ 
   57 ((      GfVec4h,             Vec4h  )) \ 
   58 ((      GfVec3h,             Vec3h  )) \ 
   61 #define VT_VEC_FLOAT_VALUE_TYPES       \ 
   62 ((      GfVec4f,             Vec4f  )) \ 
   63 ((      GfVec3f,             Vec3f  )) \ 
   66 #define VT_VEC_DOUBLE_VALUE_TYPES      \ 
   67 ((      GfVec4d,             Vec4d  )) \ 
   68 ((      GfVec3d,             Vec3d  )) \ 
   71 #define VT_VEC_VALUE_TYPES   \ 
   72     VT_VEC_INT_VALUE_TYPES   \ 
   73     VT_VEC_HALF_VALUE_TYPES  \ 
   74     VT_VEC_FLOAT_VALUE_TYPES \ 
   75     VT_VEC_DOUBLE_VALUE_TYPES 
   77 #define VT_MATRIX_FLOAT_VALUE_TYPES      \ 
   78 ((      GfMatrix4f,          Matrix4f )) \ 
   79 ((      GfMatrix3f,          Matrix3f )) \ 
   80 ((      GfMatrix2f,          Matrix2f )) \ 
   82 #define VT_MATRIX_DOUBLE_VALUE_TYPES     \ 
   83 ((      GfMatrix4d,          Matrix4d )) \ 
   84 ((      GfMatrix3d,          Matrix3d )) \ 
   85 ((      GfMatrix2d,          Matrix2d )) 
   87 #define VT_MATRIX_VALUE_TYPES            \ 
   88     VT_MATRIX_FLOAT_VALUE_TYPES          \ 
   89     VT_MATRIX_DOUBLE_VALUE_TYPES         \ 
   91 #define VT_GFRANGE_VALUE_TYPES                 \ 
   92 ((      GfRange3f,           Range3f        )) \ 
   93 ((      GfRange3d,           Range3d        )) \ 
   94 ((      GfRange2f,           Range2f        )) \ 
   95 ((      GfRange2d,           Range2d        )) \ 
   96 ((      GfRange1f,           Range1f        )) \ 
   97 ((      GfRange1d,           Range1d        )) 
   99 #define VT_RANGE_VALUE_TYPES                   \ 
  100     VT_GFRANGE_VALUE_TYPES                     \ 
  101 ((      GfInterval,          Interval       )) \ 
  102 ((      GfRect2i,            Rect2i         )) 
  104 #define VT_STRING_VALUE_TYPES            \ 
  105 ((      std::string,           String )) \ 
  108 #define VT_QUATERNION_VALUE_TYPES           \ 
  109 ((      GfQuath,             Quath ))       \ 
  110 ((      GfQuatf,             Quatf ))       \ 
  111 ((      GfQuatd,             Quatd ))       \ 
  112 ((      GfQuaternion,        Quaternion )) 
  114 #define VT_DUALQUATERNION_VALUE_TYPES       \ 
  115 ((      GfDualQuath,         DualQuath ))   \ 
  116 ((      GfDualQuatf,         DualQuatf ))   \ 
  117 ((      GfDualQuatd,         DualQuatd )) 
  119 #define VT_NONARRAY_VALUE_TYPES                 \ 
  120 ((      GfFrustum,           Frustum))          \ 
  121 ((      GfMultiInterval,     MultiInterval)) 
  124 #define VT_TYPE(elem) \ 
  125 TF_PP_TUPLE_ELEM(0, elem) 
  126 #define VT_TYPE_NAME(elem) \ 
  127 TF_PP_TUPLE_ELEM(1, elem) 
  131 #define VT_BUILTIN_NUMERIC_VALUE_TYPES \ 
  132 VT_INTEGRAL_BUILTIN_VALUE_TYPES VT_FLOATING_POINT_BUILTIN_VALUE_TYPES  
  134 #define VT_BUILTIN_VALUE_TYPES \ 
  135 VT_BUILTIN_NUMERIC_VALUE_TYPES VT_STRING_VALUE_TYPES 
  137 #define VT_SCALAR_CLASS_VALUE_TYPES \ 
  139 VT_MATRIX_VALUE_TYPES \ 
  140 VT_RANGE_VALUE_TYPES \ 
  141 VT_QUATERNION_VALUE_TYPES \ 
  142 VT_DUALQUATERNION_VALUE_TYPES 
  144 #define VT_SCALAR_VALUE_TYPES \ 
  145 VT_SCALAR_CLASS_VALUE_TYPES VT_BUILTIN_VALUE_TYPES  
  154 #define VT_ARRAY_TYPEDEF(unused, elem) \ 
  155 typedef VtArray< VT_TYPE(elem) > \ 
  156 TF_PP_CAT(Vt, TF_PP_CAT(VT_TYPE_NAME(elem), Array)) ; 
  161 #define VT_ARRAY_TYPE_TUPLE(unused, elem) \ 
  162 (( TF_PP_CAT(Vt, TF_PP_CAT(VT_TYPE_NAME(elem), Array)) , \ 
  163    TF_PP_CAT(VT_TYPE_NAME(elem), Array) )) 
  164 #define VT_ARRAY_VALUE_TYPES \ 
  165 TF_PP_SEQ_FOR_EACH(VT_ARRAY_TYPE_TUPLE, ~, VT_SCALAR_VALUE_TYPES) 
  167 #define VT_CLASS_VALUE_TYPES \ 
  168 VT_ARRAY_VALUE_TYPES VT_SCALAR_CLASS_VALUE_TYPES VT_NONARRAY_VALUE_TYPES 
  170 #define VT_VALUE_TYPES \ 
  171     VT_BUILTIN_VALUE_TYPES VT_CLASS_VALUE_TYPES 
  173 #define _VT_MAP_TYPE_LIST(unused, elem) , VT_TYPE(elem) 
  182 namespace Vt_KnownValueTypeDetail
 
  187 template <
typename T>
 
  193 template <
typename T, 
typename Typelist>
 
  199     else if (
const int indexOfTail =
 
  202         return 1 + indexOfTail;
 
  209 template <
typename T>
 
  239     constexpr 
int index = Vt_KnownValueTypeDetail::GetIndex<T>();
 
  240     static_assert(index != -1, 
"T is not one of the known VT_VALUE_TYPES.");
 
  249     return Vt_KnownValueTypeDetail::GetIndex<T>() != -1;
 
  258     static const bool value = VtIsKnownValueType<T>();
 
  264 #define VT_SPECIALIZE_IS_VALUE_PROXY(unused, elem)                             \ 
  266     VtIsValueProxy< VT_TYPE(elem) > : std::false_type {};                      \ 
  268     VtIsTypedValueProxy< VT_TYPE(elem) > : std::false_type {};                 \ 
  270     VtIsErasedValueProxy< VT_TYPE(elem) > : std::false_type {}; 
  272 #undef VT_SPECIALIZE_IS_VALUE_PROXY 
  294         if (thisRank != otherRank)
 
  300         return !(*
this == other);
 
  303         memset(
this, 0, 
sizeof(*
this));
 
  312 #endif // PXR_BASE_VT_TYPES_H 
bool operator!=(Vt_ShapeData const &other) const 
 
GLsizei const GLfloat * value
 
PXR_NAMESPACE_OPEN_SCOPE VT_TYPE_IS_CHEAP_TO_COPY(TfToken)
 
unsigned int GetRank() const 
 
IMATH_HOSTDEVICE constexpr bool equal(T1 a, T2 b, T3 t) IMATH_NOEXCEPT
 
#define VT_SPECIALIZE_IS_VALUE_PROXY(unused, elem)
 
TF_PP_SEQ_FOR_EACH(_TS_SUPPORT_DATA_TYPE,~, TS_SPLINE_SUPPORTED_VALUE_TYPES) template< class T > inline const expr bool TsSplineIsValidSampleType
True if template parameter T is a supported spline sampling vertex type. 
 
#define VT_SCALAR_VALUE_TYPES
 
constexpr int VtGetKnownValueTypeIndex()
 
constexpr bool VtIsKnownValueType()
Returns true if T is a type that appears in VT_VALUE_TYPES. 
 
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
 
#define _VT_MAP_TYPE_LIST(unused, elem)
 
unsigned int otherDims[NumOtherDims]
 
#define PXR_NAMESPACE_CLOSE_SCOPE
 
static const int NumOtherDims
 
constexpr int VtGetNumKnownValueTypes()
 
constexpr int GetIndexImpl(TfMetaList<>)
 
bool operator==(Vt_ShapeData const &other) const 
 
TfMetaApply< TfMetaTail, TfMetaList< void TF_PP_SEQ_FOR_EACH(_VT_MAP_TYPE_LIST,~, VT_VALUE_TYPES)>> Vt_ValueTypeList
 
#define VT_ARRAY_TYPEDEF(unused, elem)