Scene Graph Iterators¶
-
group
SI
API that allows to iterate through the locations and attributes on a Scenegraph.
This API allows to iterate through the locations on a scenegraph and query their attributes. This is an auxiliary API that can be used when implementing, for example, a connection of Katana to a Renderer. In this specific case the renderer will have at some point to discover which locations and attributes exist on the Katana scene being rendered.
Given the lazy initialization nature of Katana the scenegraph locations and attributes will be procedurally generated under the hood as the iterators go through the scene. Whenever a FnScenegraphIterator is instantiated Katana will generate its corresponding location if needed on that moment.
-
class
FnScenegraphIterator
¶ - #include <FnScenegraphIterator.h>
The Scenegraph Iterator that ‘points’ at a location in a scenegraph.
Each instance of this class will be conceptually pointing at a specific location of the scenegraph. It presents methods that return other iterators that point at child, sibling, parent and other arbitraty locations on the scenegraph. The location pointed by the instance is referred here as “current location”.
Public Functions
-
FnScenegraphIterator
(FnSgIteratorHandle handle)¶
-
FnScenegraphIterator
()¶
-
~FnScenegraphIterator
()¶
-
FnScenegraphIterator
(const FnScenegraphIterator &rhs)¶
-
FnScenegraphIterator &
operator=
(const FnScenegraphIterator &rhs)¶
-
bool
isValid
() const¶ Returns true if this Scenegraph Iterator is valid.
-
std::string
getName
() const¶ Returns the name of the current Location. (ex: “pony” in “/root/world/geo/pony”)
-
std::string
getFullName
() const¶ Returns the full path name of the current Location. (ex: “/root/world/geo/pony”)
-
std::string
getType
() const¶ Returns the type of the current Location. (ex: “subdmesh” or “group”)
-
FnScenegraphIterator
getFirstChild
(bool evict = false) const¶ Returns an iterator that poins at the first child of the current location.
-
FnScenegraphIterator
getNextSibling
(bool evict = false) const¶ Returns an iterator that poins at the next sibling of the current location.
-
FnScenegraphIterator
getParent
() const¶ Returns an iterator that poins at the parent of the current location.
-
FnScenegraphIterator
getRoot
() const¶ Returns an iterator that poins at the root location of the scenegraph where the current locations lives.
-
FnAttribute::StringAttribute
getPotentialChildren
() const¶ - Return
- a list of immediate potential child names
-
FnScenegraphIterator
getChildByName
(const std::string &name, bool evict = false) const¶ Returns an iterator which is child of the current one.
Returns an iterator that poins at the a child location of the current one with the specified name.
- Parameters
name
-the name of the child location
-
FnScenegraphIterator
getByPath
(const std::string &path, bool evict = false) const¶ Returns an iterator pointint at a specified location.
Returns an iterator that poins at a location on the scenegraph where the current location lives specified by the forward slash-separated scenegraph path.
- Parameters
name
-the forward slash-separated path of the location
-
FnAttribute::Attribute
getAttribute
(const std::string &name, bool global = false) const¶ Get a specific attribute from the location pointed by the iterator.
Returns an existing Attribute from the current Location if no location is specified. If there isn’t any Attribute with the given name on the given Location then an invalid FnAttribute is returned (which can be checked with the function FnAttribute::isValid()).
- Parameters
name
-The name of the attribute - can be a child of a GroupAttribute (ex: “geometry.point.P”)
global
-If false then the global attributes (inherited from parent Locations) will be ignored. In this case if the requested Attribute is global, then an invalid attribute is returned.
-
FnAttribute::StringAttribute
getAttributeNames
() const¶ Return the names of all the attributes on the location pointed by the iterator.
- Return
- A valid StringAttribute
-
FnAttribute::GroupAttribute
getGlobalXFormGroup
() const¶ - Return
- a GroupAttribute that represents the global transform for this location.
-
-
class