35 #ifndef IECORE_SCENECACHE_H
36 #define IECORE_SCENECACHE_H
38 #include "IECore/Export.h"
39 #include "IECore/SampledSceneInterface.h"
44 IE_CORE_FORWARDDECLARE( SceneCache );
58 typedef SceneInterface::NameList NameList;
59 typedef SceneInterface::Path Path;
69 SceneCache(
const std::string &fileName, IndexedIO::OpenMode mode );
84 std::string fileName()
const override;
86 Name name()
const override;
87 void path( Path &p )
const override;
89 size_t numBoundSamples()
const override;
90 double boundSampleTime(
size_t sampleIndex )
const override;
91 double boundSampleInterval(
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
92 Imath::Box3d readBoundAtSample(
size_t sampleIndex )
const override;
93 void writeBound(
const Imath::Box3d &bound,
double time )
override;
95 size_t numTransformSamples()
const override;
96 double transformSampleTime(
size_t sampleIndex )
const override;
97 double transformSampleInterval(
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
98 ConstDataPtr readTransformAtSample(
size_t sampleIndex )
const override;
99 Imath::M44d readTransformAsMatrixAtSample(
size_t sampleIndex )
const override;
100 void writeTransform(
const Data *transform,
double time )
override;
102 bool hasAttribute(
const Name &name )
const override;
103 void attributeNames( NameList &attrs )
const override;
104 size_t numAttributeSamples(
const Name &name )
const override;
105 double attributeSampleTime(
const Name &name,
size_t sampleIndex )
const override;
106 double attributeSampleInterval(
const Name &name,
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
107 ConstObjectPtr readAttributeAtSample(
const Name &name,
size_t sampleIndex )
const override;
108 void writeAttribute(
const Name &name,
const Object *attribute,
double time )
override;
110 bool hasTag(
const Name &name,
int filter = SceneInterface::LocalTag )
const override;
111 void readTags( NameList &tags,
int filter = SceneInterface::LocalTag )
const override;
112 void writeTags(
const NameList &tags )
override;
114 bool hasObject()
const override;
115 size_t numObjectSamples()
const override;
116 double objectSampleTime(
size_t sampleIndex )
const override;
117 double objectSampleInterval(
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
118 ConstObjectPtr readObjectAtSample(
size_t sampleIndex )
const override;
119 PrimitiveVariableMap readObjectPrimitiveVariables(
const std::vector<InternedString> &primVarNames,
double time )
const override;
120 void writeObject(
const Object *
object,
double time )
override;
122 bool hasChild(
const Name &name )
const override;
123 void childNames( NameList &childNames )
const override;
124 SceneInterfacePtr child(
const Name &name, SceneInterface::MissingBehaviour missingBehaviour = ThrowIfMissing )
override;
125 ConstSceneInterfacePtr child(
const Name &name, SceneInterface::MissingBehaviour missingBehaviour = ThrowIfMissing )
const override;
126 SceneInterfacePtr createChild(
const Name &name )
override;
127 SceneInterfacePtr scene(
const Path &path, MissingBehaviour missingBehaviour = ThrowIfMissing )
override;
128 ConstSceneInterfacePtr scene(
const Path &path, SceneInterface::MissingBehaviour missingBehaviour = ThrowIfMissing )
const override;
133 bool readOnly()
const;
137 static const Name &animatedObjectTopologyAttribute;
138 static const Name &animatedObjectPrimVarsAttribute;
142 IE_CORE_FORWARDDECLARE( Implementation );
143 virtual SceneCachePtr duplicate( ImplementationPtr& implementation )
const;
144 SceneCache( ImplementationPtr& implementation );
148 void writeTags(
const NameList &tags,
bool descendentTags );
154 ImplementationPtr m_implementation;
156 class ReaderImplementation;
157 class WriterImplementation;
163 #endif // IECORE_SCENECACHE_H
Definition: SceneCache.h:53
Definition: MurmurHash.h:64
HashType
Definition: SceneInterface.h:94
Definition: LinkedScene.h:64
Definition: SampledSceneInterface.h:60
Definition: InternedString.h:55
This namespace contains all components of the core library.
Definition: AddSmoothSkinningInfluencesOp.h:43
std::map< std::string, PrimitiveVariable > PrimitiveVariableMap
A simple type to hold named PrimitiveVariables.
Definition: PrimitiveVariable.h:107