#include <iNode.h>
Inherited by igor::iNodeAudioListener, igor::iNodeAudioSource, igor::iNodeCamera, igor::iNodeEmitter, igor::iNodeLODSwitch, igor::iNodeLODTrigger, igor::iNodeLight, igor::iNodeModel, igor::iNodeRender, igor::iNodeSwitch, and igor::iNodeTransform.
base node implementation
Works basically as a group node and has no other specific features.
Make changes to the scene only in main thread. If you want to create nodes multithreaded you can do so but adding them is only save within the main thread
◆ iNode() [1/2]
◆ iNode() [2/2]
◆ ~iNode()
◆ calcWorldTransformation()
void igor::iNode::calcWorldTransformation |
( |
iaMatrixd & |
matrix | ) |
|
gets the world transformation for any node
this is a quite expensive routine. preferably use an other interface from specialized nodes like iNodeCamera::getWorldMatrix
- Parameters
-
[out] | matrix | world matrix of this node |
◆ getAllChildren()
void igor::iNode::getAllChildren |
( |
std::vector< iNodePtr > & |
children | ) |
const |
returns list of all children
- Parameters
-
[out] | children | returned list with all children active and inactive |
◆ getChild() [1/2]
returns child by name
attention names are not unique. It will return the first node with the correct name found
- Parameters
-
name | the name to search for |
- Returns
- node with the name specified. returns zero in case of an error
◆ getChild() [2/2]
returns child by id
- Parameters
-
id | the id of the child node |
- Returns
- pointer to child object
◆ getChildren()
const std::vector< iNodePtr > & igor::iNode::getChildren |
( |
| ) |
const |
- Returns
- list of active children
◆ getID()
iNodeID igor::iNode::getID |
( |
| ) |
const |
◆ getInactiveChildren()
const std::vector< iNodePtr > & igor::iNode::getInactiveChildren |
( |
| ) |
const |
- Returns
- list of inactive children
◆ getInfo()
std::vector< iaString > igor::iNode::getInfo |
( |
bool |
brief = false | ) |
const |
|
virtual |
returns multiple lines of information about this node
each entry in vector is one line of information
- Returns
- strings with the nodes information
- Parameters
-
brief | if true only one brief line of information will be returned |
Reimplemented in igor::iNodeMesh, igor::iNodeModel, and igor::iNodeTransform.
◆ getKind()
- Returns
- kind (group) of the node
◆ getKindName()
- Returns
- name for given kind of node
- Parameters
-
nodeType | the given kind of node |
◆ getName()
const iaString & igor::iNode::getName |
( |
| ) |
const |
◆ getParent()
- Returns
- pointer to parent node
◆ getScene()
- Returns
- pointer to scene this node is in
◆ getTransformationChangeEvent()
iTransformationChangeEvent & igor::iNode::getTransformationChangeEvent |
( |
| ) |
|
◆ getType()
- Returns
- the type of the node
◆ getTypeName()
- Returns
- name for given node type
- Parameters
-
nodeType | the given node type |
◆ hasChildren()
bool igor::iNode::hasChildren |
( |
| ) |
|
- Returns
- true: if node has children; false: if node has no children
◆ insertNode()
void igor::iNode::insertNode |
( |
iNodePtr |
node | ) |
|
inserts node as child
- Parameters
-
node | pointer to node to be inserted |
◆ insertNodeAsync()
void igor::iNode::insertNodeAsync |
( |
iNodePtr |
node | ) |
|
inserts a node as child asynchronously
- Parameters
-
node | pointer to node to be inserted |
◆ isActive()
bool igor::iNode::isActive |
( |
| ) |
const |
- Returns
- true: if node is active
◆ isChild() [1/2]
bool igor::iNode::isChild |
( |
| ) |
|
- Returns
- true: if this node has a parent; false if it does not have a parent
◆ isChild() [2/2]
bool igor::iNode::isChild |
( |
iNodePtr |
child | ) |
|
- Returns
- true if node is child of node
- Parameters
-
child | the node to check if it is a child of this node |
◆ isDataDirty()
bool igor::iNode::isDataDirty |
( |
| ) |
|
|
protected |
- Returns
- true if data is dirty and top be queued
◆ isTransformationDirty()
bool igor::iNode::isTransformationDirty |
( |
| ) |
|
- Returns
- true: if transformation flag is dirty; false: if not
this flag is set if on the path form root node down to this node the transformations have changed, so it's position will get updated during next frame
◆ onPostCopyLink()
void igor::iNode::onPostCopyLink |
( |
std::map< iNodeID, iNodeID > & |
nodeIDMap | ) |
|
|
protectedvirtual |
called after a node was copied
- Parameters
-
nodeIDMap | map with old node ids to new node ids |
◆ onPostSetScene()
void igor::iNode::onPostSetScene |
( |
| ) |
|
|
protectedvirtual |
◆ onPreSetScene()
void igor::iNode::onPreSetScene |
( |
| ) |
|
|
protectedvirtual |
◆ onUpdateData()
bool igor::iNode::onUpdateData |
( |
| ) |
|
|
protectedvirtual |
called by update dirty data queue
to end up in that queue call setDataDirty();
◆ onUpdateTransform()
void igor::iNode::onUpdateTransform |
( |
iaMatrixd & |
matrix | ) |
|
|
protectedvirtual |
◆ removeNode()
void igor::iNode::removeNode |
( |
iNodePtr |
node | ) |
|
removes node that was a child before
- Parameters
-
node | pointer to node to be removed |
◆ removeNodeAsync()
void igor::iNode::removeNodeAsync |
( |
iNodePtr |
node | ) |
|
removes node that was a child before asynchronously
- Parameters
-
node | pointer to node to be removed |
◆ setActive()
void igor::iNode::setActive |
( |
bool |
active = true | ) |
|
sets node active or inactive
- Parameters
-
◆ setActiveAsync()
void igor::iNode::setActiveAsync |
( |
bool |
active = true | ) |
|
sets node active or inactive asynchronously
- Parameters
-
◆ setDataDirty()
void igor::iNode::setDataDirty |
( |
| ) |
|
|
protected |
sets data dirty and puts node in update data queue
◆ setName()
void igor::iNode::setName |
( |
const iaString & |
name | ) |
|
sets name of the node
- Parameters
-
◆ setParent()
void igor::iNode::setParent |
( |
iNodePtr |
parent | ) |
|
|
protected |
sets the parent of this node
- Parameters
-
parent | pointer to parent node |
◆ setScene()
void igor::iNode::setScene |
( |
iScenePtr |
scene | ) |
|
|
protected |
sets pointer to scene
- Parameters
-
◆ setTransformationDirty()
void igor::iNode::setTransformationDirty |
( |
bool |
dirty = true | ) |
|
sets the transformation flag dirty.
also sets the transformation flag of all children and parents dirty
- Parameters
-
dirty | true: this node, all parents and children will be set dirty; false: only this node will be set non dirty |
◆ setTransformationDirtyDown()
void igor::iNode::setTransformationDirtyDown |
( |
| ) |
|
|
protected |
traveses child trees ans sets the transformation dirty flag
◆ setTransformationDirtyUp()
void igor::iNode::setTransformationDirtyUp |
( |
| ) |
|
|
protected |
goes through all parent nodes and sets the transformation dirty flag
◆ iDataUpdateQueue
friend class iDataUpdateQueue |
|
friend |
◆ iNodeManager
◆ iNodeVisitorUpdateTransform
◆ iScene
◆ _active
bool igor::iNode::_active = true |
|
protected |
true: node is active; false: node will be ignored for most operations
◆ _children
std::vector<iNodePtr> igor::iNode::_children |
|
protected |
list of pointers to child nodes
◆ _inactiveChildren
std::vector<iNodePtr> igor::iNode::_inactiveChildren |
|
protected |
list of pointers to child nodes that are inactive
◆ _name
◆ _nodeKind
◆ _nodeType
◆ _parent
◆ _scene
pointer to parenting scene
◆ _transformationChangeEvent
iTransformationChangeEvent igor::iNode::_transformationChangeEvent |
|
protected |
call this when ever you change something on the node
◆ _transformationDirty
bool igor::iNode::_transformationDirty = true |
|
protected |
dirty flag to detect transformation changes
◆ INVALID_NODE_ID
invalid node id definition
The documentation for this class was generated from the following files:
- /home/maddin/dev/Igor/src/igor/igor/scene/nodes/iNode.h
- /home/maddin/dev/Igor/src/igor/igor/scene/nodes/iNode.cpp