35 #ifndef IECORE_LINKEDSCENE_H
36 #define IECORE_LINKEDSCENE_H
38 #include "IECore/Export.h"
39 #include "IECore/SampledSceneInterface.h"
40 #include "IECore/SimpleTypedData.h"
41 #include "IECore/VectorTypedData.h"
46 IE_CORE_FORWARDDECLARE( LinkedScene );
74 static const Name &fileNameLinkAttribute;
75 static const Name &rootLinkAttribute;
76 static const Name &timeLinkAttribute;
81 LinkedScene(
const std::string &fileName, IndexedIO::OpenMode mode );
95 static IECore::CompoundDataPtr linkAttributeData(
const SceneInterface *scene );
99 static IECore::CompoundDataPtr linkAttributeData(
const SceneInterface *scene,
double time );
105 std::string fileName()
const override;
107 Name name()
const override;
108 void path( Path &p )
const override;
110 size_t numBoundSamples()
const override;
111 double boundSampleTime(
size_t sampleIndex )
const override;
112 double boundSampleInterval(
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
113 Imath::Box3d readBoundAtSample(
size_t sampleIndex )
const override;
114 Imath::Box3d readBound(
double time )
const override;
115 void writeBound(
const Imath::Box3d &bound,
double time )
override;
117 size_t numTransformSamples()
const override;
118 double transformSampleTime(
size_t sampleIndex )
const override;
119 double transformSampleInterval(
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
120 ConstDataPtr readTransformAtSample(
size_t sampleIndex )
const override;
121 Imath::M44d readTransformAsMatrixAtSample(
size_t sampleIndex )
const override;
122 ConstDataPtr readTransform(
double time )
const override;
123 Imath::M44d readTransformAsMatrix(
double time )
const override;
124 void writeTransform(
const Data *transform,
double time )
override;
126 bool hasAttribute(
const Name &name )
const override;
127 void attributeNames( NameList &attrs )
const override;
128 size_t numAttributeSamples(
const Name &name )
const override;
129 double attributeSampleTime(
const Name &name,
size_t sampleIndex )
const override;
130 double attributeSampleInterval(
const Name &name,
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
131 ConstObjectPtr readAttributeAtSample(
const Name &name,
size_t sampleIndex )
const override;
132 ConstObjectPtr readAttribute(
const Name &name,
double time )
const override;
133 void writeAttribute(
const Name &name,
const Object *attribute,
double time )
override;
135 bool hasTag(
const Name &name,
int filter = SceneInterface::LocalTag )
const override;
136 void readTags( NameList &tags,
int filter = SceneInterface::LocalTag )
const override;
137 void writeTags(
const NameList &tags )
override;
139 bool hasObject()
const override;
140 size_t numObjectSamples()
const override;
141 double objectSampleTime(
size_t sampleIndex )
const override;
142 double objectSampleInterval(
double time,
size_t &floorIndex,
size_t &ceilIndex )
const override;
143 ConstObjectPtr readObjectAtSample(
size_t sampleIndex )
const override;
144 ConstObjectPtr readObject(
double time )
const override;
145 PrimitiveVariableMap readObjectPrimitiveVariables(
const std::vector<InternedString> &primVarNames,
double time )
const override;
146 void writeObject(
const Object *
object,
double time )
override;
148 bool hasChild(
const Name &name )
const override;
149 void childNames( NameList &childNames )
const override;
150 SceneInterfacePtr child(
const Name &name, SceneInterface::MissingBehaviour missingBehaviour = ThrowIfMissing )
override;
151 ConstSceneInterfacePtr child(
const Name &name, SceneInterface::MissingBehaviour missingBehaviour = ThrowIfMissing )
const override;
152 SceneInterfacePtr createChild(
const Name &name )
override;
153 SceneInterfacePtr scene(
const Path &path, MissingBehaviour missingBehaviour = ThrowIfMissing )
override;
154 ConstSceneInterfacePtr scene(
const Path &path, SceneInterface::MissingBehaviour missingBehaviour = ThrowIfMissing )
const override;
162 ConstSceneInterfacePtr expandLink(
const StringData *fileName,
const InternedStringVectorData *root,
int &linkDepth );
167 double remappedLinkTime(
double time )
const;
168 double remappedLinkTimeAtSample(
size_t sampleIndex )
const;
170 SceneInterfacePtr m_mainScene;
171 ConstSceneInterfacePtr m_linkedScene;
172 unsigned int m_rootLinkDepth;
186 #endif // IECORE_LINKEDSCENE_H
static const Name & linkAttribute
Equals to "SceneInterface:link" and it's the name given to the link attribute that is recognized...
Definition: LinkedScene.h:72
Definition: MurmurHash.h:64
HashType
Definition: SceneInterface.h:94
Definition: LinkedScene.h:64
Definition: SceneInterface.h:69
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