8#ifndef PXR_BASE_TS_TYPE_HELPERS_H
9#define PXR_BASE_TS_TYPE_HELPERS_H
12#include "pxr/base/ts/api.h"
13#include "pxr/base/ts/types.h"
15#include "pxr/base/tf/type.h"
20PXR_NAMESPACE_OPEN_SCOPE
31struct Ts_IsSupportedValueType;
35struct Ts_IsSupportedValueType :
public std::false_type {};
38#define _MAKE_CLAUSE(unused, tuple) \
40 TS_API TfType Ts_GetType<TS_SPLINE_VALUE_CPP_TYPE(tuple)>(); \
42 struct Ts_IsSupportedValueType<TS_SPLINE_VALUE_CPP_TYPE(tuple)> : \
43 public std::true_type {};
44TF_PP_SEQ_FOR_EACH(_MAKE_CLAUSE, ~, TS_SPLINE_SUPPORTED_VALUE_TYPES)
53TfType Ts_GetTypeFromTypeName(
const std::string &typeName);
58std::string Ts_GetTypeNameFromType(
TfType valueType);
64bool Ts_IsFinite(T value);
67TS_API
bool Ts_IsFinite(
const GfHalf value);
70bool Ts_IsFinite(
const T value)
72 return std::isfinite(value);
75PXR_NAMESPACE_CLOSE_SCOPE
TfType represents a dynamic runtime type.
This header serves to simply bring in the half float datatype and provide a hash_value function.
pxr_half::half GfHalf
A 16-bit floating point data type.