MIRA
|
Abstract base class where all other different types of transformation nodes must be derived from. More...
#include <transform/TransformerNode.h>
Public Types | |
typedef AbstractTransformerNode * | AbstractNodePtr |
Pointer type for this AbstractTransformerNode. More... | |
Public Member Functions | |
const std::string & | getID () const |
Returns the id of this node. More... | |
const std::list< AbstractNodePtr > & | getChildren () const |
Returns a list with all children of this node. More... | |
const AbstractNodePtr & | getParent () const |
Returns the parent of the node. More... | |
uint32 | getDescendantCount () const |
Returns the number of descendants of this node (children, grandchildren, etc.) More... | |
bool | isAncestorOf (const AbstractNodePtr other) const |
Returns true, if the this node is an ancestor of the given 'other' node. More... | |
virtual bool | isEmpty () const =0 |
Returns if the node has data or is empty. More... | |
template<typename Transform , typename Filter > | |
Transform | getTransform (const Time &time, Filter &&filter) |
Returns the transform stored in this node at the specified time stamp. More... | |
Protected Member Functions | |
AbstractTransformerNode (const std::string &id) | |
virtual | ~AbstractTransformerNode () |
Protected Attributes | |
std::string | mID |
The id of this node. More... | |
AbstractNodePtr | mParent |
Pointer to the parent node within the tree. More... | |
std::list< AbstractNodePtr > | mChildren |
List with pointers to the children within the transformation tree. More... | |
Friends | |
class | TransformerBase |
Abstract base class where all other different types of transformation nodes must be derived from.
Each node can take part in a transformation tree that is managed by the Transformer (GenericTransformer).
Moreover, each node has a unique ID within the Transformer it belongs to. Each node stores a pointer to its parent to its children within the transformation tree. Last but not least, each node stores a transformation history. Hence, the transformation of the node at a certain time stamp can be queried using the getTransform() method. Note, that the derived classes need to implement the getTransform() method and hence the storage of the transformation data.
typedef AbstractTransformerNode* AbstractNodePtr |
Pointer type for this AbstractTransformerNode.
|
inlineprotected |
|
inlineprotectedvirtual |
|
inline |
Returns the id of this node.
|
inline |
Returns a list with all children of this node.
|
inline |
Returns the parent of the node.
uint32 getDescendantCount | ( | ) | const |
Returns the number of descendants of this node (children, grandchildren, etc.)
bool isAncestorOf | ( | const AbstractNodePtr | other | ) | const |
Returns true, if the this node is an ancestor of the given 'other' node.
|
pure virtual |
Returns if the node has data or is empty.
Implemented in TransformerNode< StorageTransform >, and FrameworkTransformerNode.
|
inline |
Returns the transform stored in this node at the specified time stamp.
Additionally, the transform can be filtered depending on the specified filter, e.g. to allow linear interpolation of transforms around the specified time stamp.
|
friend |
|
protected |
The id of this node.
|
protected |
Pointer to the parent node within the tree.
|
protected |
List with pointers to the children within the transformation tree.