37#ifndef Alembic_AbcCoreLayer_OrImpl_h
38#define Alembic_AbcCoreLayer_OrImpl_h
40#include <Alembic/AbcCoreLayer/Foundation.h>
41#include <Alembic/AbcCoreLayer/ArImpl.h>
44namespace AbcCoreLayer {
45namespace ALEMBIC_VERSION_NS {
47typedef std::pair < AbcA::ObjectReaderPtr, size_t > ObjectAndIndex;
51 :
public AbcA::ObjectReader
52 ,
public Alembic::Util::enable_shared_from_this<OrImpl>
57 OrImpl( ArImplPtr iArchive,
58 std::vector< AbcA::ObjectReaderPtr > & iTops,
59 ObjectHeaderPtr iHeader);
61 OrImpl( OrImplPtr iParent,
size_t iIndex );
68 virtual const AbcA::ObjectHeader &
getHeader()
const;
72 virtual AbcA::ObjectReaderPtr
getParent();
81 (
const std::string &iName );
83 virtual AbcA::ObjectReaderPtr
getChild(
const std::string &iName );
85 virtual AbcA::ObjectReaderPtr
getChild(
size_t i );
96 void init( std::vector< AbcA::ObjectReaderPtr > & iObjects );
107 ObjectHeaderPtr m_header;
110 std::vector< ObjectHeaderPtr > m_childHeaders;
114 std::vector< std::vector< ObjectAndIndex > > m_children;
115 std::vector< Alembic::Util::weak_ptr< AbcA::ObjectReader > > m_children_ptrs;
119 std::vector< AbcA::CompoundPropertyReaderPtr > m_properties;
120 Alembic::Util::weak_ptr< AbcA::CompoundPropertyReader > m_top;
122 ChildNameMap m_childNameMap;
127using namespace ALEMBIC_VERSION_NS;
virtual AbcA::ArchiveReaderPtr getArchive()
Definition OrImpl.cpp:101
virtual AbcA::ObjectReaderPtr getChild(const std::string &iName)
Definition OrImpl.cpp:156
virtual AbcA::ObjectReaderPtr getParent()
Definition OrImpl.cpp:107
virtual bool getPropertiesHash(Util::Digest &oDigest)
Definition OrImpl.cpp:205
virtual AbcA::CompoundPropertyReaderPtr getProperties()
Definition OrImpl.cpp:113
virtual const AbcA::ObjectHeader & getHeader() const
Definition OrImpl.cpp:95
virtual const AbcA::ObjectHeader & getChildHeader(size_t i)
Definition OrImpl.cpp:134
virtual AbcA::ObjectReaderPtr asObjectPtr()
Definition OrImpl.cpp:199
virtual bool getChildrenHash(Util::Digest &oDigest)
Definition OrImpl.cpp:225
virtual size_t getNumChildren()
Definition OrImpl.cpp:128
Definition Foundation.h:176
Alembic namespace ...
Definition ArchiveInfo.cpp:39