HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader Class Referenceabstract

#include <ScalarPropertyReader.h>

+ Inheritance diagram for Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader:

Public Member Functions

virtual ~ScalarPropertyReader ()
 
virtual size_t getNumSamples ()=0
 
virtual bool isConstant ()=0
 
virtual void getSample (index_t iSample, void *iIntoLocation)=0
 
virtual std::pair< index_t,
chrono_t
getFloorIndex (chrono_t iTime)=0
 
virtual std::pair< index_t,
chrono_t
getCeilIndex (chrono_t iTime)=0
 
virtual std::pair< index_t,
chrono_t
getNearIndex (chrono_t iTime)=0
 
- Public Member Functions inherited from Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::BasePropertyReader
virtual ~BasePropertyReader ()
 
virtual const PropertyHeadergetHeader () const =0
 
const std::stringgetName () 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 ObjectReaderPtr getObject ()=0
 
virtual CompoundPropertyReaderPtr getParent ()=0
 
virtual ScalarPropertyReaderPtr asScalarPtr ()
 
virtual ArrayPropertyReaderPtr asArrayPtr ()
 
virtual CompoundPropertyReaderPtr asCompoundPtr ()
 

Detailed Description

A Scalar Property is a Rank 0 property which has a single value for each sample. This is distinguished from an Array Property, which has a variable number of elements per sample, and requires more sophisticated resource management.

Definition at line 53 of file ScalarPropertyReader.h.

Constructor & Destructor Documentation

virtual Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::~ScalarPropertyReader ( )
virtual

Virtual destructor ...

Member Function Documentation

virtual std::pair<index_t, chrono_t> Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::getCeilIndex ( chrono_t  iTime)
pure virtual

Find the smallest valid index that has a time greater than the given time. Invalid to call this with zero samples. If the maximum sample time is less than iTime, index numSamples-1 will be returned.

virtual std::pair<index_t, chrono_t> Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::getFloorIndex ( chrono_t  iTime)
pure virtual

Find the largest valid index that has a time less than or equal to the given time. Invalid to call this with zero samples. If the minimum sample time is greater than iTime, index 0 will be returned.

virtual std::pair<index_t, chrono_t> Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::getNearIndex ( chrono_t  iTime)
pure virtual

Find the valid index with the closest time to the given time. Invalid to call this with zero samples.

virtual size_t Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::getNumSamples ( )
pure virtual

Return the number of samples contained in the property. This can be any number, including zero. This returns the number of samples that were written, independently of whether or not they were constant. Implementations may (and should) choose to condense identical samples.

virtual void Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::getSample ( index_t  iSample,
void iIntoLocation 
)
pure virtual

Returns the single sample value for the requested sample by reference. Out-of-range indices will cause an exception to be thrown. It will copy the scalar value directly into the memory location specified by iIntoLocation

In all cases EXCEPT String and Wstring, the DataType 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 ( void * )&std::string and ( void * )&std::wstring, respectively.

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.

virtual bool Alembic::AbcCoreAbstract::ALEMBIC_VERSION_NS::ScalarPropertyReader::isConstant ( )
pure virtual

Ask if we're constant - no change in value amongst samples, regardless of the time sampling.


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