37#ifndef Alembic_Abc_IObject_h
38#define Alembic_Abc_IObject_h
40#include <Alembic/Util/Export.h>
41#include <Alembic/Abc/Foundation.h>
42#include <Alembic/Abc/Base.h>
43#include <Alembic/Abc/Argument.h>
44#include <Alembic/Abc/IArchive.h>
48namespace ALEMBIC_VERSION_NS {
60 typedef IObject operator_bool_base_type;
75 const std::string &iName,
80 GetErrorHandlerPolicy( iParent, iArg0 ) );
89 : m_object( GetObjectReaderPtr( iPtr ) )
92 getErrorHandler().setPolicy(
93 GetErrorHandlerPolicy( iPtr, iArg0 ) );
99 IObject( AbcA::ObjectReaderPtr iPtr,
102 : m_object( GetObjectReaderPtr( iPtr ) )
105 getErrorHandler().setPolicy(
106 GetErrorHandlerPolicy( iPtr, iArg0 ) );
116 init( iArchive, iArg0 );
124 init( iArchive, iArg0 );
141 const AbcA::ObjectHeader &getHeader()
const;
147 const std::string &getName()
const;
153 const std::string &getFullName()
const;
175 size_t getNumChildren()
const;
179 const AbcA::ObjectHeader & getChildHeader(
size_t i )
const;
183 const AbcA::ObjectHeader *
184 getChildHeader(
const std::string &iName )
const;
199 IObject getChild(
size_t iChildIndex )
const;
205 IObject getChild(
const std::string &iChildName )
const;
218 bool isInstanceRoot()
const;
222 bool isInstanceDescendant()
const;
226 std::string instanceSourcePath()
const;
228 bool isChildInstance(
size_t iChildIndex)
const;
229 bool isChildInstance(
const std::string &iChildName)
const;
244 AbcA::ObjectReaderPtr
getPtr()
const {
return m_object; }
253 return ( Base::valid() && m_object );
269 AbcA::ObjectReaderPtr m_object;
275 void init( AbcA::ObjectReaderPtr iParentObject,
276 const std::string &iName,
277 ErrorHandler::Policy iPolicy );
281 void setInstancedFullName(
const std::string& parentPath)
const;
284 AbcA::ObjectReaderPtr m_instanceObject;
287 mutable std::string m_instancedFullName;
290typedef Alembic::Util::shared_ptr< IObject > IObjectPtr;
293inline AbcA::ObjectReaderPtr
301inline ErrorHandler::Policy GetErrorHandlerPolicy( OBJ iObj,
302 ErrorHandler::Policy iPcy )
305 return GetErrorHandlerPolicy( iObj, arg );
310using namespace ALEMBIC_VERSION_NS;
Definition Argument.h:120
Definition ICompoundProperty.h:53
IObject()
Definition IObject.h:68
ALEMBIC_OPERATOR_BOOL(valid())
const AbcA::ObjectHeader & getHeader() const
Definition IObject.cpp:67
AbcA::ObjectReaderPtr getPtr() const
Definition IObject.h:244
IObject(AbcA::ObjectReaderPtr iPtr, const Argument &iArg0=Argument())
Definition IObject.h:87
IObject(const IObject &iParent, const std::string &iName, const Argument &iArg0=Argument())
Definition IObject.h:74
AbcA::ObjectReaderPtr getInstancePtr() const
Returns the original ObjectReaderPtr, if this object is an instance.
Definition IObject.h:232
const AbcA::MetaData & getMetaData() const
Definition IObject.h:161
IObject(IArchive &iArchive, const Argument &iArg0=Argument())
Definition IObject.h:113
IObject this_type
Definition IObject.h:59
bool valid() const
Definition IObject.h:251
Alembic namespace ...
Definition ArchiveInfo.cpp:39