37#ifndef Alembic_AbcCoreAbstract_ArraySample_h
38#define Alembic_AbcCoreAbstract_ArraySample_h
40#include <Alembic/Util/Export.h>
41#include <Alembic/AbcCoreAbstract/Foundation.h>
42#include <Alembic/AbcCoreAbstract/ArraySampleKey.h>
43#include <Alembic/AbcCoreAbstract/DataType.h>
46namespace AbcCoreAbstract {
47namespace ALEMBIC_VERSION_NS {
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;
138typedef Alembic::Util::shared_ptr<ArraySample> ArraySamplePtr;
148ALEMBIC_EXPORT ArraySamplePtr
149AllocateArraySample(
const DataType &iDtype,
150 const Dimensions &iDims );
164 void operator()(
void *memory )
const
169 T *data =
reinterpret_cast<T*
>(
170 const_cast<void*
>( arraySample->
getData() ) );
181ArraySamplePtr TAllocateArraySample(
size_t iDataTypeExtent,
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 ),
206using namespace ALEMBIC_VERSION_NS;
Definition ArraySample.h:60
bool valid() const
Definition ArraySample.h:111
const DataType & getDataType() const
Definition ArraySample.h:91
const Dimensions & getDimensions() const
Definition ArraySample.h:95
const void * getData() const
Definition ArraySample.h:87
ArraySample(const void *iData, const DataType &iDataType, const Dimensions &iDims)
Definition ArraySample.h:75
size_t size() const
Definition ArraySample.h:99
ArraySample()
Definition ArraySample.h:68
void reset()
Definition ArraySample.h:119
Alembic namespace ...
Definition ArchiveInfo.cpp:39
Definition ArraySampleKey.h:48
Definition ArraySample.h:163