13 #ifndef __UT_Storage__
14 #define __UT_Storage__
92 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
93 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
103 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
104 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
114 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
115 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
125 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
126 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
136 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
137 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
147 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
148 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
158 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
159 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
169 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
170 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
180 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
181 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
192 template<UT_Storage STORAGE>
197 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
198 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
205 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
206 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
213 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
214 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
221 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
222 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
229 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
230 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
237 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
238 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
245 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
246 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
253 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
254 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
261 static constexpr
bool theIsFloat = SYS_IsFloatingPoint_v< Type >;
262 static constexpr
bool theIsInt = SYS_IsIntegral_v< Type >;
267 template<
typename T0,
typename T1>
274 template<
typename T0,
typename T1>
278 template<
typename T0,
typename T1>
284 template<
typename T0,
typename T1>
287 template<ex
int TSIZE,
typename DATA_T>
296 template<
typename DATA_T>
307 template<ex
int TSIZE>
315 int myTupleSizePlaceholder;
331 template<
typename TO,
typename FROM>
336 #define DECLARE_CONVERT_STORAGE_ROUND(T,F) \
339 T UTconvertStorage<T,F>(F from) \
340 { return T(from + ((from > 0) ? F(0.5) : F(-0.5))); } \
359 #undef DECLARE_CONVERT_STORAGE_ROUND
SYS_FORCE_INLINE UT_Storage getStorage() const
typename UT_StorageNum< T >::MathFloat UT_StorageMathFloat_t
SYS_FORCE_INLINE UT_Storage getStorage() const
SYS_FORCE_INLINE void setTupleSize(exint tuplesize)
This allows one to determine the type of T0+T1 at compile-time.
getFileOption("OpenEXR:storage") storage
static const UT_Storage theStorage
static constexpr bool theIsInt
SYS_FORCE_INLINE exint getTupleSize() const
SYS_FORCE_INLINE void setStorage(UT_Storage storage)
static constexpr bool theIsFloat
SYS_FORCE_INLINE constexpr bool UTisFloatStorage(UT_Storage storage)
Returns true iff the given storage type represents a floating-point number.
typename SYS_SelectType< typename UT_StorageNum< UT_StorageBetter_t< T0, T1 >>::AtLeast32Bit, T0, UT_StorageNum< UT_StorageBetter_t< T0, T1 >>::theStorage==UT_Storage::INVALID >::type type
static constexpr bool theIsInt
static const UT_Storage theStorage
SYS_FORCE_INLINE TO UTconvertStorage(FROM from)
SYS_FORCE_INLINE exint getTupleSize() const
#define DECLARE_CONVERT_STORAGE_ROUND(T, F)
SYS_FORCE_INLINE exint getTupleSize() const
SYS_FORCE_INLINE void setTupleSize(exint tuplesize)
typename UT_StorageAtLeast32Bit< T0, T1 >::type UT_StorageAtLeast32Bit_t
This allows one to determine the type of T0+T1 at compile-time.
static constexpr bool theIsFloat
typename UT_StorageBetter< T0, T1 >::type UT_StorageBetter_t
SYS_FORCE_INLINE exint getTupleSize() const
SYS_FORCE_INLINE void setStorage(UT_Storage storage)
typename SYS_SelectType< T0, T1,(int(UT_StorageNum< T0 >::theStorage)< int(UT_StorageNum< T1 >::theStorage))>::type type
SYS_FORCE_INLINE void setTupleSize(exint tuplesize)
SYS_FORCE_INLINE void setTupleSize(exint tuplesize)
SYS_FORCE_INLINE void setStorage(UT_Storage storage)
SYS_FORCE_INLINE UT_Storage getStorage() const
SYS_FORCE_INLINE void setStorage(UT_Storage storage)
SYS_FORCE_INLINE constexpr bool UTisIntStorage(UT_Storage storage)
Returns true iff the given storage type represents an integer.
SYS_FORCE_INLINE constexpr int UTstorageSize(UT_Storage storage)
Returns the number of bytes in the given storage type.
SYS_FORCE_INLINE UT_Storage getStorage() const