37 #ifndef Alembic_Abc_OSchema_h
38 #define Alembic_Abc_OSchema_h
105 #define ALEMBIC_ABC_DECLARE_SCHEMA_INFO( STITLE, SBTYP, SDFLT, SPREP, STDEF ) \
108 static const char * title() { return ( STITLE ) ; } \
109 static const char * defaultName() { return ( SDFLT ); } \
110 static const char * schemaBaseType() { return ( SBTYP ); } \
111 static bool replaceOnSparse() { return SPREP; } \
117 template <
class INFO>
132 return INFO::title();
139 return INFO::schemaBaseType();
146 return INFO::defaultName();
156 return INFO::replaceOnSparse();
203 this_type::init( iParent, iName, iArg0, iArg1, iArg2, iArg3 );
236 template <
class INFO>
257 "NULL parent passed into OSchema ctor" );
262 if ( emptyStr != getSchemaTitle() && !args.
isSparse() )
264 mdata.
set(
"schema", getSchemaTitle() );
266 if ( emptyStr != getSchemaBaseType() && !args.
isSparse() )
268 mdata.
set(
"schemaBaseType", getSchemaBaseType() );
272 m_property = iParent->createCompoundProperty( iName, mdata );
OSchema(OCompoundProperty iParent, const std::string &iName, const Argument &iArg0=Argument(), const Argument &iArg1=Argument(), const Argument &iArg2=Argument())
static bool matches(const AbcA::MetaData &iMetaData, SchemaInterpMatching iMatching=kStrictMatching)
static const char * getDefaultSchemaName()
static const char * getSchemaTitle()
GLsizei const GLchar *const * string
void setInto(Arguments &iArgs) const
static bool replaceOnSparse()
ErrorHandler::Policy getErrorHandlerPolicy() const
#define ALEMBIC_ABC_SAFE_CALL_END_RESET()
ErrorHandler::Policy GetErrorHandlerPolicy(SOMETHING iSomething, const Argument &iArg0, const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
#define ALEMBIC_ABC_SAFE_CALL_BEGIN(CONTEXT)
**If you just want to fire and args
OSchema(AbcA::CompoundPropertyWriterPtr iParent, const std::string &iName, const Argument &iArg0=Argument(), const Argument &iArg1=Argument(), const Argument &iArg2=Argument(), const Argument &iArg3=Argument())
static bool matches(const AbcA::PropertyHeader &iHeader, SchemaInterpMatching iMatching=kStrictMatching)
static const char * getSchemaBaseType()
const AbcA::MetaData & getMetaData() const
OSchema< INFO > this_type
#define ABCA_ASSERT(COND, TEXT)
#define ALEMBIC_VERSION_NS
Alembic::Util::shared_ptr< CompoundPropertyWriter > CompoundPropertyWriterPtr