36#ifndef Alembic_Abc_ITypedArrayProperty_h
37#define Alembic_Abc_ITypedArrayProperty_h
49template <
class TRAITS>
66 return TRAITS::interpretation();
72 static bool matches(
const AbcA::MetaData &iMetaData,
77 return ( iMetaData.get(
"interpretation" ) ==
86 static bool matches(
const AbcA::PropertyHeader &iHeader,
89 return ( iHeader.getDataType().getPod() ==
90 TRAITS::dataType().getPod() &&
91 ( iHeader.getDataType().getExtent() ==
92 TRAITS::dataType().getExtent() ||
95 matches( iHeader.getMetaData(), iMatching );
112 const std::string &iName,
117 iArg0.setInto( args );
118 iArg1.setInto( args );
123 "ITypedArrayProperty::ITypedArrayProperty()" );
125 AbcA::CompoundPropertyReaderPtr parent = iParent.
getPtr();
127 "NULL CompoundPropertyReader passed into "
128 <<
"ITypedArrayProperty ctor" );
130 const AbcA::PropertyHeader *pheader =
131 parent->getPropertyHeader( iName );
133 "Nonexistent array property: " << iName );
136 "Incorrect match of header datatype: "
137 << pheader->getDataType()
139 << TRAITS::dataType()
140 <<
",\n...or incorrect match of interpretation: "
141 << pheader->getMetaData().get(
"interpretation" )
143 << TRAITS::interpretation() );
145 m_property = parent->getArrayProperty( iName );
158 "ITypedArrayProperty::ITypedArrayProperty()" );
160 const AbcA::PropertyHeader &pheader = iProperty->getHeader();
163 "Incorrect match of header datatype: "
164 << pheader.getDataType()
166 << TRAITS::dataType()
167 <<
",\n...or incorrect match of interpretation: "
168 << pheader.getMetaData().get(
"interpretation" )
170 << TRAITS::interpretation() );
195 AbcA::ArraySamplePtr ptr;
197 iVal = Alembic::Util::static_pointer_cast<
sample_type,
198 AbcA::ArraySample>( ptr );
#define ABCA_ASSERT(COND, TEXT)
#define ALEMBIC_ABC_SAFE_CALL_BEGIN(CONTEXT)
#define ALEMBIC_ABC_SAFE_CALL_END_RESET()
SchemaInterpMatching getSchemaInterpMatching() const
ErrorHandler::Policy getErrorHandlerPolicy() const
ErrorHandler & getErrorHandler() const
void setPolicy(Policy iPolicy)
void get(AbcA::ArraySamplePtr &oSample, const ISampleSelector &iSS=ISampleSelector()) const
AbcA::ArrayPropertyReaderPtr m_property
TRAITS::value_type value_type
ITypedArrayProperty< TRAITS > this_type
shared_ptr< sample_type > sample_ptr_type
static bool matches(const AbcA::MetaData &iMetaData, SchemaInterpMatching iMatching=kStrictMatching)
ITypedArrayProperty(AbcA::ArrayPropertyReaderPtr iProp, WrapExistingFlag iWrapFlag, const Argument &iArg0=Argument(), const Argument &iArg1=Argument())
ITypedArrayProperty(const ICompoundProperty &iParent, const std::string &iName, const Argument &iArg0=Argument(), const Argument &iArg1=Argument())
static bool matches(const AbcA::PropertyHeader &iHeader, SchemaInterpMatching iMatching=kStrictMatching)
void get(sample_ptr_type &iVal, const ISampleSelector &iSS=ISampleSelector()) const
static const char * getInterpretation()
TypedArraySample< TRAITS > sample_type
sample_ptr_type getValue(const ISampleSelector &iSS=ISampleSelector()) const
ITypedArrayProperty(AbcA::ArrayPropertyReaderPtr iProperty, const Argument &iArg0=Argument(), const Argument &iArg1=Argument())
ITypedArrayProperty< Uint16TPTraits > IUInt16ArrayProperty
ITypedArrayProperty< V2dTPTraits > IV2dArrayProperty
ITypedArrayProperty< N2dTPTraits > IN2dArrayProperty
ITypedArrayProperty< M44dTPTraits > IM44dArrayProperty
ITypedArrayProperty< P3sTPTraits > IP3sArrayProperty
ITypedArrayProperty< M33fTPTraits > IM33fArrayProperty
ITypedArrayProperty< Float16TPTraits > IHalfArrayProperty
ITypedArrayProperty< StringTPTraits > IStringArrayProperty
ITypedArrayProperty< Box3iTPTraits > IBox3iArrayProperty
ITypedArrayProperty< N2fTPTraits > IN2fArrayProperty
ITypedArrayProperty< Box3sTPTraits > IBox3sArrayProperty
ITypedArrayProperty< V2fTPTraits > IV2fArrayProperty
ITypedArrayProperty< V2sTPTraits > IV2sArrayProperty
ITypedArrayProperty< Uint8TPTraits > IUcharArrayProperty
ITypedArrayProperty< P3fTPTraits > IP3fArrayProperty
ITypedArrayProperty< M33dTPTraits > IM33dArrayProperty
ITypedArrayProperty< N3dTPTraits > IN3dArrayProperty
ITypedArrayProperty< Int32TPTraits > IInt32ArrayProperty
ITypedArrayProperty< QuatfTPTraits > IQuatfArrayProperty
ITypedArrayProperty< Int64TPTraits > IInt64ArrayProperty
ITypedArrayProperty< Box2dTPTraits > IBox2dArrayProperty
ITypedArrayProperty< P2sTPTraits > IP2sArrayProperty
ITypedArrayProperty< C3hTPTraits > IC3hArrayProperty
ITypedArrayProperty< P2dTPTraits > IP2dArrayProperty
ITypedArrayProperty< V2iTPTraits > IV2iArrayProperty
ITypedArrayProperty< P2fTPTraits > IP2fArrayProperty
ErrorHandler::Policy GetErrorHandlerPolicy(SOMETHING iSomething, const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
ITypedArrayProperty< Float32TPTraits > IFloatArrayProperty
ITypedArrayProperty< Box2sTPTraits > IBox2sArrayProperty
ITypedArrayProperty< V3dTPTraits > IV3dArrayProperty
ITypedArrayProperty< P2iTPTraits > IP2iArrayProperty
ITypedArrayProperty< P3iTPTraits > IP3iArrayProperty
ITypedArrayProperty< Box2iTPTraits > IBox2iArrayProperty
ITypedArrayProperty< Box2fTPTraits > IBox2fArrayProperty
ITypedArrayProperty< V3fTPTraits > IV3fArrayProperty
ITypedArrayProperty< Box3dTPTraits > IBox3dArrayProperty
ITypedArrayProperty< V3sTPTraits > IV3sArrayProperty
ITypedArrayProperty< BooleanTPTraits > IBoolArrayProperty
ITypedArrayProperty< C4cTPTraits > IC4cArrayProperty
ITypedArrayProperty< V3iTPTraits > IV3iArrayProperty
ITypedArrayProperty< Uint64TPTraits > IUInt64ArrayProperty
ITypedArrayProperty< Uint32TPTraits > IUInt32ArrayProperty
ITypedArrayProperty< M44fTPTraits > IM44fArrayProperty
ITypedArrayProperty< Int8TPTraits > ICharArrayProperty
SchemaInterpMatching GetSchemaInterpMatching(const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
ITypedArrayProperty< P3dTPTraits > IP3dArrayProperty
ITypedArrayProperty< WstringTPTraits > IWstringArrayProperty
ITypedArrayProperty< Box3fTPTraits > IBox3fArrayProperty
ITypedArrayProperty< N3fTPTraits > IN3fArrayProperty
ITypedArrayProperty< Float64TPTraits > IDoubleArrayProperty
ITypedArrayProperty< Int16TPTraits > IInt16ArrayProperty
ITypedArrayProperty< QuatdTPTraits > IQuatdArrayProperty
ITypedArrayProperty< C3fTPTraits > IC3fArrayProperty
ITypedArrayProperty< C4hTPTraits > IC4hArrayProperty
ITypedArrayProperty< C3cTPTraits > IC3cArrayProperty
ITypedArrayProperty< C4fTPTraits > IC4fArrayProperty