void SceneReader::hashTransform( const ScenePath &path, const Gaffer::Context *context, const ScenePlug *parent, IECore::MurmurHash &h ) const { SceneNode::hashTransform( path, context, parent, h ); ConstSceneInterfacePtr s = scene( path ); if( !s ) { return; } refreshCountPlug()->hash( h ); s->hash( SceneInterface::TransformHash, context->getTime(), h ); }
void SceneReader::hashAttributes( const ScenePath &path, const Gaffer::Context *context, const ScenePlug *parent, IECore::MurmurHash &h ) const { ConstSceneInterfacePtr s = scene( path ); if( !s ) { h = parent->attributesPlug()->defaultValue()->Object::hash(); return; } SceneNode::hashAttributes( path, context, parent, h ); refreshCountPlug()->hash( h ); s->hash( SceneInterface::AttributesHash, context->getTime(), h ); }
void SceneReader::hashObject( const ScenePath &path, const Gaffer::Context *context, const ScenePlug *parent, IECore::MurmurHash &h ) const { ConstSceneInterfacePtr s = scene( path ); if( !s || !s->hasObject() ) { // no object h = parent->objectPlug()->defaultValue()->hash(); return; } SceneNode::hashObject( path, context, parent, h ); refreshCountPlug()->hash( h ); s->hash( SceneInterface::ObjectHash, context->getTime(), h ); }
void SceneReader::hashChildNames( const ScenePath &path, const Gaffer::Context *context, const ScenePlug *parent, IECore::MurmurHash &h ) const { ConstSceneInterfacePtr s = scene( path ); if( !s ) { h = parent->childNamesPlug()->defaultValue()->Object::hash(); return; } SceneNode::hashChildNames( path, context, parent, h ); refreshCountPlug()->hash( h ); // append a hash of the tags plug, as restricting the tags can affect the hierarchy tagsPlug()->hash( h ); s->hash( SceneInterface::ChildNamesHash, context->getTime(), h ); }
void SceneReader::hashBound( const ScenePath &path, const Gaffer::Context *context, const ScenePlug *parent, IECore::MurmurHash &h ) const { SceneNode::hashBound( path, context, parent, h ); ConstSceneInterfacePtr s = scene( path ); if( !s ) { return; } refreshCountPlug()->hash( h ); if( s->hasBound() ) { s->hash( SceneInterface::BoundHash, context->getTime(), h ); } else { fileNamePlug()->hash( h ); h.append( &path.front(), path.size() ); } }