All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VtKatana_FromVtConversion< ElementType > Class Template Reference

Utilties for efficiently converting VtArrays to Katana attributes. More...

Static Public Member Functions

template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastable
< T >::value, AttrType >::type 
ZeroCopy (const VtArray< T > &array)
 Utility constructing attributes without copies by retaining a reference to the originating VtArray. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastable
< T >::value, AttrType >::type 
ZeroCopy (const std::vector< float > &times, const std::vector< VtArray< T >> &values)
 Utility constructing attributes without copies by retaining references to the originating VtArrays. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumeric< T >
::value, std::vector
< ValueType > >::type 
CopyIntermediate (const VtArray< T > &array)
 Utility for copying numeric types to an intermediate std::vector suitable for use with Katana APIs. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_HoldsString< T >
::value, std::vector
< ValueType > >::type 
CopyIntermediate (const VtArray< T > &array)
 Utility for copying tuple types to an intermediate std::vector suitable for use with Katana APIs. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsString< T >
::value, std::vector
< ValueType > >::type 
CopyIntermediate (const VtArray< T > &array)
 Utility for copying tuple types to an intermediate std::vector suitable for use with Katana APIs. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastable
< T >::value, AttrType >::type 
Copy (const VtArray< T > &array)
 Utility for copying tuple types that don't require an intermediate copy (ie. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCopyRequired
< T >::value, AttrType >::type 
Copy (const VtArray< T > &array)
 Utility for copying types that require an intermediate translation for use with Katana APIs. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_HoldsString< T >
::value, AttrType >::type 
Copy (const VtArray< T > &array)
 Utility for copying string types that require an intermediate translation for use with Katana APIs. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsString< T >
::value, AttrType >::type 
Copy (const VtArray< T > &array)
 Utility for copying std::string types. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastable
< T >::value, AttrType >::type 
Copy (const std::vector< float > &times, const std::vector< VtArray< T >> &values)
 Utility for copying numeric types that don't require an intermediate copy (ie. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsOrHoldsString< T >
::value, AttrType >::type 
Copy (const std::vector< float > &times, const std::vector< VtArray< T >> &values)
 Utility for copying string holder types that don't require intermediate copies. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCopyRequired
< T >::value, AttrType >::type 
Copy (const std::vector< float > &times, const typename std::vector< VtArray< T >> &values)
 Utility for copying numeric types that do require intermediate copies. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCopyRequired
< T >::value, AttrType >::type 
MapInternal (const VtArray< T > &value)
 Iternals of map for types that are not castable, requiring an intermediate copy of values to construct an attribute (ie. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsOrHoldsString< T >
::value, AttrType >::type 
MapInternal (const VtArray< T > &value)
 Iternals of map for string like types We haven't found signifcant zero copy performance improvements in practice and the implementation is complicated, so we've decided against exposing ZeroCopy for string like types for now. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastable
< T >::value, AttrType >::type 
MapInternal (const VtArray< T > &value)
 Iternals of map for types that do not require an intermediate copy of values to construct an attribute (ie. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCopyRequired
< T >::value, AttrType >::type 
MapInternalMultiple (const std::vector< float > &times, const typename std::vector< VtArray< T >> &values)
 Iternals of map for types that are not castable, requiring an intermediate copy of values to construct an attribute (ie. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsOrHoldsString< T >
::value, AttrType >::type 
MapInternalMultiple (const std::vector< float > &times, const typename std::vector< VtArray< T >> &values)
 Iternals of map for string types We haven't found signifcant zero copy performance improvements in practice and the implementation is complicated, so we've decided against exposing ZeroCopy for string like types for now. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastable
< T >::value, AttrType >::type 
MapInternalMultiple (const std::vector< float > &times, const typename std::vector< VtArray< T >> &values)
 Iternals of map for types that do not require an intermediate copy of values to construct an attribute (ie. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsOrHoldsString< T >
::value, AttrType >::type 
CopyElement (const T &value)
 Utility for copying string holder types. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericScalar< T >
::value, AttrType >::type 
CopyElement (T value)
 Utility for copying numeric scalar types. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCastableTuple
< T >::value, AttrType >::type 
CopyElement (const T &value)
 Utility for copying numeric scalar types. More...
 
template<typename T = ElementType>
static std::enable_if
< VtKatana_IsNumericCopyRequiredTuple
< T >::value, AttrType >::type 
CopyElement (const T &value)
 Utility for copying numeric tuple types. More...
 

Detailed Description

template<typename ElementType>
class VtKatana_Internal::VtKatana_FromVtConversion< ElementType >

Utilties for efficiently converting VtArrays to Katana attributes.

Definition at line 108 of file internalFromVt.h.

Member Function Documentation

static std::enable_if<VtKatana_IsNumericCastable<T>::value, AttrType>::type Copy ( const VtArray< T > &  array)
inlinestatic

Utility for copying tuple types that don't require an intermediate copy (ie.

VtVec3fArray -> FloatAttribute)

Definition at line 205 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCopyRequired<T>::value, AttrType>::type Copy ( const VtArray< T > &  array)
inlinestatic

Utility for copying types that require an intermediate translation for use with Katana APIs.

(ie. VtVec3hArray -> FloatAttribute, VtUIntArray -> IntAttribute)

Definition at line 220 of file internalFromVt.h.

static std::enable_if<VtKatana_HoldsString<T>::value, AttrType>::type Copy ( const VtArray< T > &  array)
inlinestatic

Utility for copying string types that require an intermediate translation for use with Katana APIs.

(ie. VtTokenArray -> StringAttribute)

Definition at line 233 of file internalFromVt.h.

static std::enable_if<VtKatana_IsString<T>::value, AttrType>::type Copy ( const VtArray< T > &  array)
inlinestatic

Utility for copying std::string types.

Definition at line 245 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCastable<T>::value, AttrType>::type Copy ( const std::vector< float > &  times,
const std::vector< VtArray< T >> &  values 
)
inlinestatic

Utility for copying numeric types that don't require an intermediate copy (ie.

VtVec3fArray -> FloatAttribute)

Definition at line 255 of file internalFromVt.h.

static std::enable_if<VtKatana_IsOrHoldsString<T>::value, AttrType>::type Copy ( const std::vector< float > &  times,
const std::vector< VtArray< T >> &  values 
)
inlinestatic

Utility for copying string holder types that don't require intermediate copies.

Definition at line 278 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCopyRequired<T>::value, AttrType>::type Copy ( const std::vector< float > &  times,
const typename std::vector< VtArray< T >> &  values 
)
inlinestatic

Utility for copying numeric types that do require intermediate copies.

Definition at line 304 of file internalFromVt.h.

static std::enable_if<VtKatana_IsOrHoldsString<T>::value, AttrType>::type CopyElement ( const T &  value)
inlinestatic

Utility for copying string holder types.

Definition at line 394 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericScalar<T>::value, AttrType>::type CopyElement ( value)
inlinestatic

Utility for copying numeric scalar types.

Definition at line 402 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCastableTuple<T>::value, AttrType>::type CopyElement ( const T &  value)
inlinestatic

Utility for copying numeric scalar types.

Definition at line 410 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCopyRequiredTuple<T>::value, AttrType>::type CopyElement ( const T &  value)
inlinestatic

Utility for copying numeric tuple types.

Definition at line 420 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumeric<T>::value, std::vector<ValueType> >::type CopyIntermediate ( const VtArray< T > &  array)
inlinestatic

Utility for copying numeric types to an intermediate std::vector suitable for use with Katana APIs.

(ie. VtVec3hArray -> std::vector<float>)

Definition at line 162 of file internalFromVt.h.

static std::enable_if<VtKatana_HoldsString<T>::value, std::vector<ValueType> >::type CopyIntermediate ( const VtArray< T > &  array)
inlinestatic

Utility for copying tuple types to an intermediate std::vector suitable for use with Katana APIs.

(ie. VtStringArray -> std::vector<std::string>)

Definition at line 178 of file internalFromVt.h.

static std::enable_if<VtKatana_IsString<T>::value, std::vector<ValueType> >::type CopyIntermediate ( const VtArray< T > &  array)
inlinestatic

Utility for copying tuple types to an intermediate std::vector suitable for use with Katana APIs.

(ie. VtStringArray -> std::vector<std::string>)

Definition at line 193 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCopyRequired<T>::value, AttrType>::type MapInternal ( const VtArray< T > &  value)
inlinestatic

Iternals of map for types that are not castable, requiring an intermediate copy of values to construct an attribute (ie.

uint, GfVec3h)

Definition at line 321 of file internalFromVt.h.

static std::enable_if<VtKatana_IsOrHoldsString<T>::value, AttrType>::type MapInternal ( const VtArray< T > &  value)
inlinestatic

Iternals of map for string like types We haven't found signifcant zero copy performance improvements in practice and the implementation is complicated, so we've decided against exposing ZeroCopy for string like types for now.

Definition at line 332 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCastable<T>::value, AttrType>::type MapInternal ( const VtArray< T > &  value)
inlinestatic

Iternals of map for types that do not require an intermediate copy of values to construct an attribute (ie.

double, GfMatrix4d, GfVec3f)

Definition at line 342 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCopyRequired<T>::value, AttrType>::type MapInternalMultiple ( const std::vector< float > &  times,
const typename std::vector< VtArray< T >> &  values 
)
inlinestatic

Iternals of map for types that are not castable, requiring an intermediate copy of values to construct an attribute (ie.

uint, GfVec3h)

Definition at line 357 of file internalFromVt.h.

static std::enable_if<VtKatana_IsOrHoldsString<T>::value, AttrType>::type MapInternalMultiple ( const std::vector< float > &  times,
const typename std::vector< VtArray< T >> &  values 
)
inlinestatic

Iternals of map for string types We haven't found signifcant zero copy performance improvements in practice and the implementation is complicated, so we've decided against exposing ZeroCopy for string like types for now.

Definition at line 369 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCastable<T>::value, AttrType>::type MapInternalMultiple ( const std::vector< float > &  times,
const typename std::vector< VtArray< T >> &  values 
)
inlinestatic

Iternals of map for types that do not require an intermediate copy of values to construct an attribute (ie.

double, GfMatrix4d, GfVec3f)

Definition at line 380 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCastable<T>::value, AttrType>::type ZeroCopy ( const VtArray< T > &  array)
inlinestatic

Utility constructing attributes without copies by retaining a reference to the originating VtArray.

Definition at line 123 of file internalFromVt.h.

static std::enable_if<VtKatana_IsNumericCastable<T>::value, AttrType>::type ZeroCopy ( const std::vector< float > &  times,
const std::vector< VtArray< T >> &  values 
)
inlinestatic

Utility constructing attributes without copies by retaining references to the originating VtArrays.

Definition at line 139 of file internalFromVt.h.


The documentation for this class was generated from the following file: