37#ifndef Alembic_AbcCoreAbstract_ArraySample_h
38#define Alembic_AbcCoreAbstract_ArraySample_h
46namespace AbcCoreAbstract {
77 const Dimensions & iDims )
79 , m_dataType( iDataType )
80 , m_dimensions( iDims ) {}
87 const void*
getData()
const {
return m_data; }
99 size_t size()
const {
return m_dimensions.numPoints(); }
113 return ( m_dataType.getPod() != kUnknownPOD ) &&
114 !( m_data == NULL && m_dimensions.rank() < 1 );
123 m_dimensions = Dimensions();
129 Dimensions m_dimensions;
150 const Dimensions &iDims );
169 T *data =
reinterpret_cast<T*
>(
170 const_cast<void*
>( arraySample->
getData() ) );
182 const Dimensions &iDims )
184 DataType dtype( PODTraitsFromType<T>::pod_enum, iDataTypeExtent );
185 size_t numPODs = iDims.numPoints() * iDataTypeExtent;
188 T *data =
new T[numPODs];
190 new ArraySample(
reinterpret_cast<const void *
>( data ),
#define ALEMBIC_VERSION_NS
const DataType & getDataType() const
const Dimensions & getDimensions() const
const void * getData() const
ArraySample(const void *iData, const DataType &iDataType, const Dimensions &iDims)
Alembic::Util::shared_ptr< ArraySample > ArraySamplePtr
ArraySamplePtr TAllocateArraySample(size_t iDataTypeExtent, const Dimensions &iDims)
ALEMBIC_EXPORT ArraySamplePtr AllocateArraySample(const DataType &iDtype, const Dimensions &iDims)
void operator()(void *memory) const