Alembic 1.8.11
Loading...
Searching...
No Matches
Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl Class Reference
Inheritance diagram for Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl:
Collaboration diagram for Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl:

Public Member Functions

 AprImpl (AbcA::CompoundPropertyReaderPtr iParent, H5Node &iParentGroup, PropertyHeaderPtr iHeader, bool iIsScalarLike, uint32_t iNumSamples, uint32_t iFirstChangedIndex, uint32_t iLastChangedIndex)
virtual AbcA::ArrayPropertyReaderPtr asArrayPtr ()
virtual bool isScalarLike ()
virtual void getDimensions (index_t iSampleIndex, Dimensions &oDim)
virtual void getAs (index_t iSample, void *iIntoLocation, PlainOldDataType iPod)
Public Member Functions inherited from Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::SimplePrImpl< AbcA::ArrayPropertyReader, AprImpl, AbcA::ArraySamplePtr & >
virtual const AbcA::PropertyHeader & getHeader () const
virtual AbcA::ObjectReaderPtr getObject ()
virtual AbcA::CompoundPropertyReaderPtr getParent ()
virtual size_t getNumSamples ()
virtual bool isConstant ()
virtual void getSample (index_t iSampleIndex, AbcA::ArraySamplePtr &oSample)
virtual std::pair< index_t, chrono_t > getFloorIndex (chrono_t iTime)
virtual std::pair< index_t, chrono_t > getCeilIndex (chrono_t iTime)
virtual std::pair< index_t, chrono_t > getNearIndex (chrono_t iTime)
virtual bool getKey (index_t iSampleIndex, AbcA::ArraySampleKey &oKey)
Public Member Functions inherited from Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ArrayPropertyReader
virtual ~ArrayPropertyReader ()
virtual void getSample (index_t iSampleIndex, ArraySamplePtr &oSample)=0
virtual bool getKey (index_t iSampleIndex, ArraySampleKey &oKey)=0
 Expose the key for apps that use their own custom cache management.
Public Member Functions inherited from Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::BasePropertyReader
virtual ~BasePropertyReader ()
const std::string & getName () const
PropertyType getPropertyType () const
bool isScalar () const
bool isArray () const
bool isCompound () const
bool isSimple () const
const MetaDatagetMetaData () const
const DataTypegetDataType () const
TimeSamplingPtr getTimeSampling () const
virtual ScalarPropertyReaderPtr asScalarPtr ()
virtual CompoundPropertyReaderPtr asCompoundPtr ()

Protected Member Functions

void readSample (hid_t iGroup, const std::string &iSampleName, index_t iSampleIndex, AbcA::ArraySamplePtr &oSamplePtr)
bool readKey (hid_t iGroup, const std::string &iSampleName, AbcA::ArraySampleKey &oSamplePtr)
Protected Member Functions inherited from Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::SimplePrImpl< AbcA::ArrayPropertyReader, AprImpl, AbcA::ArraySamplePtr & >
 SimplePrImpl (AbcA::CompoundPropertyReaderPtr iParent, H5Node &iParentGroup, PropertyHeaderPtr iHeader, uint32_t iNumSamples, uint32_t iFirstChangedIndex, uint32_t iLastChangedIndex)
index_t verifySampleIndex (index_t iSampleIndex)
void checkSamplesIGroup ()

Friends

class SimplePrImpl< AbcA::ArrayPropertyReader, AprImpl, AbcA::ArraySamplePtr & >

Additional Inherited Members

Protected Attributes inherited from Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::SimplePrImpl< AbcA::ArrayPropertyReader, AprImpl, AbcA::ArraySamplePtr & >
AbcA::CompoundPropertyReaderPtr m_parent
H5Node m_parentGroup
PropertyHeaderPtr m_header
hid_t m_fileDataType
bool m_cleanFileDataType
hid_t m_nativeDataType
bool m_cleanNativeDataType
uint32_t m_numSamples
uint32_t m_firstChangedIndex
uint32_t m_lastChangedIndex
H5Node m_samplesIGroup
Alembic::Util::mutex m_samplesIGroupMutex

Member Function Documentation

◆ asArrayPtr()

AbcA::ArrayPropertyReaderPtr Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl::asArrayPtr ( )
virtual

Up-cast this base property to an ArrayProperty, if such an upcast is valid. This can be checked with the isArray() function. If the upcast is not valid, an empty pointer will be returned. This default implementation returns an empty pointer.

Reimplemented from Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::BasePropertyReader.

◆ getAs()

void Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl::getAs ( index_t iSample,
void * iIntoLocation,
PlainOldDataType iPod )
virtual

Reads the data for the requested sample into the memory location specified by iIntoLocation as the requested POD type specified by iPod. Out-of-range indices, or incompatible POD types will cause an exception to be thrown.

Incompatible POD types include trying to read a std::string, std::wstring, or float16_t as anything OTHER than itself.

In all cases EXCEPT String and Wstring, the iPod type and the total number of items from getDimensions for this property can be used to determine the size of the memory buffer which iIntoLocation must point to. In the case of String and Wstring, iIntoLocation should be an array of std::string or std::wstring.

This is one of the only places where we break from POD types at the base, and we're making an explicit decision to use std::string and std::wstring as core language-level primitives.

Implements Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ArrayPropertyReader.

◆ getDimensions()

void Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl::getDimensions ( index_t iSampleIndex,
Dimensions & oDim )
virtual

The ArraySample may have incorrect dimensions, (even though the packed data will be correct) expose the correct dimensions here for those clients that need it.

Implements Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ArrayPropertyReader.

◆ isScalarLike()

bool Alembic::AbcCoreHDF5::ALEMBIC_VERSION_NS::AprImpl::isScalarLike ( )
virtual

A hint about whether this property has 1 and only 1 DataType for each of it's samples. Array Properties with no samples written to it are still considered scalar like.

Implements Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ArrayPropertyReader.


The documentation for this class was generated from the following files:
  • AbcCoreHDF5/AprImpl.h
  • AbcCoreHDF5/AprImpl.cpp