![]() |
Scene Fusion 2 API Reference
|
#include <ksHierarchyObject.h>
Classes | |
| class | AncestorIter |
| class | DescendantIter |
Public Types | |
| typedef std::function< bool(std::shared_ptr< T >)> | ForEachCallback |
Public Member Functions | |
| ksHierarchyObject () | |
| virtual | ~ksHierarchyObject () |
| std::shared_ptr< T > | Parent () |
| const std::list< std::shared_ptr< T > > & | Children () |
| std::shared_ptr< T > | Child (size_t index) |
| int | IndexOfChild (std::shared_ptr< T > childPtr) |
| void | Detach () |
| bool | IsDescendantOf (std::shared_ptr< T > objPtr) |
| virtual bool | AddChild (std::shared_ptr< T > childPtr) |
| virtual bool | InsertChild (int index, std::shared_ptr< T > childPtr) |
| virtual bool | RemoveChild (std::shared_ptr< T > childPtr) |
| void | ForEachDescendant (ForEachCallback callback) |
| void | ForSelfAndDescendants (ForEachCallback callback) |
| AncestorIter< std::shared_ptr< T > > | SelfAndAncestors () |
| AncestorIter< std::shared_ptr< T > > | Ancestors () |
| DescendantIter< std::shared_ptr< T > > | SelfAndDescendants () |
| DescendantIter< std::shared_ptr< T > > | Descendants () |
Protected Member Functions | |
| virtual bool | MoveChild (std::shared_ptr< T > childPtr, int newIndex) |
| virtual bool | PerformAddChild (std::shared_ptr< T > childPtr) |
| virtual bool | PerformInsertChild (int index, std::shared_ptr< T > childPtr) |
| virtual bool | PerformRemoveChild (std::shared_ptr< T > childPtr) |
| void | PerformDetach () |
Protected Attributes | |
| std::weak_ptr< T > | m_parentPtr |
| std::list< std::shared_ptr< T > > | m_children |
Templated base class for hierarchy objects that have a parent and a list of children of type T.
| typedef std::function<bool(std::shared_ptr<T>)> KS::ksHierarchyObject< T >::ForEachCallback |
Callback for depth-first searches.
| std::shared_ptr<T> | - pointer to the object being iterated. |
|
inline |
Constructor
|
inlinevirtual |
Destructor
|
inlinevirtual |
Adds a child to the object if that does not create a circular reference. If the child has another parent, removes it from its parent first. Throws std::invalid_argument exception if the child is null.
| std::shared_ptr<T> | - pointer to the child to add. |
|
inline |
Get an ancestor iterator that does not include the current object.
|
inline |
Return a pointer to a child object at a specific index. If the index is out of bounds then a null pointer is returned.
| size_t | - child index |
|
inline |
Return a reference to this object's children list
|
inline |
Get an descendant iterator that does not include the current object.
|
inline |
Removes the object from its parent. Does nothing if the object has no parent.
|
inline |
Iterates the descendants using depth-first search.
| ForEachCallback | - callback to call on descendants. If it returns false, will not iterate children. |
|
inline |
Iterates this object and its descendants using depth-first search.
| ForEachCallback | - callback to call on descendants. If it returns false, will not iterate children. |
|
inline |
Get the index of a child in this object. Return -1 if the child is not in the list of children
| std::shared_ptr<T> | - pointer to the child object |
|
inlinevirtual |
Inserts a child at an index if that does not create a circular reference. If the child has another parent, removes it from its parent first. Throws std::invalid_argument exception if the child is null.
| int | - index to insert at. |
| std::shared_ptr<T> | - child to insert. |
|
inline |
Checks if an object is a descendant of this object.
| std::shared_ptr<T> | - pointer to the object to check. |
|
inlineprotectedvirtual |
Moves a child to a new index. Throws std::invalid_argument exception if child is null.
| std::shared_ptr<T> | - child to move. |
| int | - new index |
|
inline |
Get a pointer to this object's parent object
|
inlineprotectedvirtual |
Protected implementation of AddChild. The public AddChild calls this one. Derived classes can override either to change public or internal behaviour.
Adds a child to the object if that does not create a circular reference. If the child has another parent, removes it from its parent first. Throws std::invalid_argument exception if the child is null.
| std::shared_ptr<T> | - pointer to the child to add. |
|
inlineprotected |
Protected implementation of Detach.
Removes the object from its parent. Does nothing if the object has no parent.
|
inlineprotectedvirtual |
Protected implementation of InsertChild. The public InsertChild calls this one. Derived classes can override either to change public or internal behaviour.
Inserts a child at an index if that does not create a circular reference. If the child has another parent, removes it from its parent first. Throws std::invalid_argument exception if the child is null.
| int | - index to insert at. |
| std::shared_ptr<T> | - child to insert. |
|
inlineprotectedvirtual |
Protected implementation of RemoveChild. The public RemoveChild calls this one. Derived classes can override either to change public or internal behaviour.
Removes a child from this object. Throws std::invalid_argument exception if child is null.
| std::shared_ptr<T> | - child to remove. |
|
inlinevirtual |
Removes a child from this object. Throws std::invalid_argument exception if child is null.
| std::shared_ptr<T> | - child to remove. |
|
inline |
Get an ancestor iterator that includes the current object.
|
inline |
Get an descendant iterator that includes the current object.