37#ifndef Alembic_Abc_OSchemaObject_h
38#define Alembic_Abc_OSchemaObject_h
52template <
class SCHEMA>
70 return SCHEMA::getSchemaTitle() + std::string(
":" ) +
71 SCHEMA::getDefaultSchemaName();
76 return SCHEMA::getSchemaTitle();
82 static bool matches(
const AbcA::MetaData &iMetaData,
105 static bool matches(
const AbcA::ObjectHeader &iHeader,
108 return matches( iHeader.getMetaData(), iMatching );
124 const std::string &iName,
165template <
class SCHEMA>
169 const std::string &iName,
182 "OSchemaObject::OSchemaObject( OObject )" );
185 AbcA::ObjectWriterPtr parent = iParent.
getPtr();
187 "NULL Parent ObjectWriter in OSchemaObject ctor" );
197 metaData.set(
"schema", SCHEMA::getSchemaTitle() );
199 if ( std::string() != SCHEMA::getSchemaBaseType() )
201 metaData.set(
"schemaBaseType", SCHEMA::getSchemaBaseType() );
206 AbcA::ObjectHeader ohdr( iName, metaData );
207 m_object = parent->createChild( ohdr );
216 tsIndex = parent->getArchive()->addTimeSampling(*tsPtr);
219 AbcA::MetaData schemaMetaData;
220 if ( args.
isSparse() && SCHEMA::replaceOnSparse() )
222 schemaMetaData.set(
"replace",
"1" );
227 SCHEMA::getDefaultSchemaName(),
228 this->getErrorHandlerPolicy(),
#define ABCA_ASSERT(COND, TEXT)
#define ALEMBIC_ABC_SAFE_CALL_BEGIN(CONTEXT)
#define ALEMBIC_ABC_SAFE_CALL_END_RESET()
void setInto(Arguments &iArgs) const
const AbcA::MetaData & getMetaData() const
uint32_t getTimeSamplingIndex() const
ErrorHandler::Policy getErrorHandlerPolicy() const
AbcA::TimeSamplingPtr getTimeSampling() const
ErrorHandler & getErrorHandler() const
AbcA::ObjectWriterPtr getPtr()
AbcA::ObjectWriterPtr m_object
OSchemaObject< SCHEMA > this_type
const SCHEMA & getSchema() const
static std::string getSchemaObjTitle()
OSchemaObject(OObject iParent, const std::string &iName, const Argument &iArg0=Argument(), const Argument &iArg1=Argument(), const Argument &iArg2=Argument())
static bool matches(const AbcA::ObjectHeader &iHeader, SchemaInterpMatching iMatching=kStrictMatching)
OCollectionsSchema m_schema
ALEMBIC_OVERRIDE_OPERATOR_BOOL(this_type::valid())
static bool matches(const AbcA::MetaData &iMetaData, SchemaInterpMatching iMatching=kStrictMatching)
static const char * getSchemaTitle()
ErrorHandler::Policy GetErrorHandlerPolicy(SOMETHING iSomething, const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())