|
AGX Dynamics 2.42.1.1
|
System node is a separate step/operation in an execution tree representing a sensor (or such) in a sensor simulation environment. More...
#include <SystemNode.h>
Inheritance diagram for agxSensor::SystemNode:Classes | |
| struct | CallbackData |
Public Member Functions | |
| SystemNode (const SystemNode &)=delete | |
| Disallow direct copying of nodes. | |
| virtual | ~SystemNode ()=default |
| bool | addChild (SystemNode *child) |
| Add unique child to this node. | |
| virtual bool | addNotification () |
| Called when this system node has been added to a sensor environment. | |
| bool | appendChild (SystemNode *child) |
| Append child to vector of children, silently. | |
| virtual void | cleanup ()=0 |
| The sensor environment is being put down, clean everything. | |
| virtual void | complete () |
| Complete the execution of this system, finishing the integration forward in time. | |
| bool | detachChild (SystemNode *child) |
| Detach/erase child from vector of children, silently. | |
| virtual bool | eraseAndConnect () |
| Erase this node from the tree and connect its children to the current parent of this node. | |
| virtual void | execute (const CallbackData &data) |
Execute this system, integrating it data.dt forward in time. | |
| template<typename T > | |
| T * | findChild (bool recurse=true) const |
| Find child of given type. | |
| template<typename PredicateT > | |
| SystemNode * | findChild (PredicateT pred, bool recurse=true) const |
Find child given predicate pred. | |
| template<typename T > | |
| T * | findParent () const |
| template<typename PredicateT > | |
| SystemNode * | findParent (PredicateT pred) const |
| Find parent given predicate. | |
| template<typename T > | |
| T * | getChild () const |
| Searches children for a node of given type. | |
| SystemNode * | getChild (size_t index) const |
| bool | getEnable () const |
| Environment * | getEnvironment () const |
| const agx::Name & | getName () const |
| size_t | getNumChildren () const |
| SystemNode * | getParent () const |
| SystemNode * | getRoot () const |
| bool | hasChild (const SystemNode *child, bool recurse=true) const |
| virtual bool | insertParent (SystemNode &parent) |
| Inserts new parent to this node. | |
| virtual bool | onAdd (agx::Referenced &instance) |
| Called when an object has been added to the sensor environment. | |
| virtual void | onChildAdded (SystemNode &child) |
Called when child has been added to this parent. | |
| virtual void | onChildRemoved (SystemNode &child) |
Called when child has been removed from this parent. | |
| virtual bool | onRemove (agx::Referenced &instance) |
| Called when an object has been removed from the sensor environment. | |
| bool | removeChild (SystemNode *child) |
| Remove child from this node. | |
| virtual void | removeNotification () |
| Called when this system node is being removed from a sensor environment. | |
| virtual void | result (const CallbackData &data) |
If necessary assemble, and fetch results related to this system node after a step by data.dt has been completed. | |
| void | setEnable (bool enable) |
| Enable/disable this node. | |
| void | setName (const agx::Name &name) |
| Assign name to this node. | |
| virtual void | synchronize (const CallbackData &data) |
| Synchronization from the main thread. | |
| virtual void | synchronizeGraphics (const agxRender::RenderManager &renderManager) |
| At the very end of a step, synchronize any graphics related aspects of the system node. | |
| template<typename VisitorT > | |
| SystemNode * | visitBf (VisitorT visitor) const |
Visit the tree from, including, this node until callback returns true - using breadth first traversal. | |
| template<typename VisitorT > | |
| void | visitChildren (VisitorT visitor, bool recurse=true) const |
Visit all children with func as void( const SystemNode& child ). | |
| template<typename VisitorT > | |
| SystemNode * | visitChildrenBf (VisitorT visitor) const |
Visit the tree from the children of this node until callback returns true - using breadth first traversal. | |
| template<typename VisitorT > | |
| SystemNode * | visitChildrenDf (VisitorT visitor) const |
Visit the tree from the children of this node until callback returns true - using depth first traversal. | |
| template<typename T , typename VisitorT > | |
| void | visitChildrenOfType (VisitorT visitor, bool recurse=true) const |
Visit all children with func as void( const T& child ). | |
| template<typename VisitorT > | |
| SystemNode * | visitDf (VisitorT visitor) const |
Visit the tree from, including, this node until callback returns true - using depth first traversal. | |
Public Member Functions inherited from agx::Referenced | |
| Referenced () | |
| Default constructor. | |
| Referenced (const Referenced &) | |
| template<typename T > | |
| T * | as () |
| Subclass casting. | |
| template<typename T > | |
| const T * | as () const |
| template<typename T > | |
| T * | asSafe () |
| Safe subclass casting, return nullptr if template type does not match. | |
| template<typename T > | |
| const T * | asSafe () const |
| int | getReferenceCount () const |
| template<typename T > | |
| bool | is () const |
| Subclass test. | |
| Referenced & | operator= (const Referenced &) |
| Assignment operator. Will increment the number of references to the referenced object. | |
| void | reference (void *ptr=nullptr) const |
| Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
| void | unreference (void *ptr=nullptr) const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| void | unreference_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
Public Member Functions inherited from agxStream::Serializable | |
| virtual | ~Serializable () |
| Destructor for normal C++ use but hidden from SWIG bindings. | |
| virtual const char * | getClassName () const |
| bool | getEnableSerialization () const |
| bool | getEnableUuidGeneration () |
| agx::UInt32 | getIndex () const |
| This index is given at creation of this object. | |
| virtual StorageAgent * | getStorageAgent () const =0 |
| agx::Uuid | getUuid () const |
| bool | isFinished () const |
| void | setEnableSerialization (bool flag) |
| Set to false to disable serialization of this object. | |
| void | setFinished () |
| Tells this class that it is restored correctly and should not be deleted during destruction of an Archive. | |
| void | setUuid (const agx::Uuid &uuid) |
| Explicitly set a Uuid on a serializable object. | |
Additional Inherited Members | |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
Static Public Member Functions inherited from agxStream::Serializable | |
| static void | setEnableUuidGeneration (bool flag) |
| Specify if there should be UUID:s generated for each new Serializable object. By default it is enabled. | |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Protected Member Functions inherited from agxStream::Serializable | |
| Serializable () | |
| Default constructor. | |
| Serializable (const Serializable &other) | |
| Copy constructor. | |
| void | generateUuid () |
Static Protected Member Functions inherited from agx::Referenced | |
| static DeleteHandler * | getDeleteHandler () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
Protected Attributes inherited from agx::Referenced | |
| Mutex | m_mutex |
| ObserverContainer | m_observers |
| AtomicValue | m_refCount |
System node is a separate step/operation in an execution tree representing a sensor (or such) in a sensor simulation environment.
Definition at line 43 of file SystemNode.h.
|
delete |
Disallow direct copying of nodes.
|
virtualdefault |
| bool agxSensor::SystemNode::addChild | ( | SystemNode * | child | ) |
Add unique child to this node.
| child | - child to add |
|
virtual |
Called when this system node has been added to a sensor environment.
Reimplemented in agxSensor::RtSystemNode.
| bool agxSensor::SystemNode::appendChild | ( | SystemNode * | child | ) |
Append child to vector of children, silently.
This method will just check so that child hasn't already been added and set its parent (and push_back in vector) if not.
| child | - child to add |
|
pure virtual |
The sensor environment is being put down, clean everything.
Implemented in agxSensor::RtSystemNode, and agxSensor::SensorGroupStepStride.
|
virtual |
Complete the execution of this system, finishing the integration forward in time.
This call is made from a thread separate from the main/simulation thread so it's not valid to read data from the objects being simulated.
| bool agxSensor::SystemNode::detachChild | ( | SystemNode * | child | ) |
Detach/erase child from vector of children, silently.
This method will just check so that child is a child and has this node as parent.
| child | - child to erase |
|
virtual |
Erase this node from the tree and connect its children to the current parent of this node.
Fails if this node doesn't have any children.
|
virtual |
Execute this system, integrating it data.dt forward in time.
This call is made from a thread separate from the main/simulation thread so it's not valid to read data from the objects being simulated.
| data | - runtime step data |
| T * agxSensor::SystemNode::findChild | ( | bool | recurse = true | ) | const |
Find child of given type.
If recurse is true, the search continues to the leafs.
| recurse | - true to continue search to the leafs, false to only search this parents children |
Definition at line 524 of file SystemNode.h.
| SystemNode * agxSensor::SystemNode::findChild | ( | PredicateT | pred, |
| bool | recurse = true |
||
| ) | const |
Find child given predicate pred.
If recurse is true, the search continues to the leafs.
| pred | - predicate bool( const SystemNode& child ) returning true if a child is a match, otherwise false |
| recurse | - true to continue search to the leafs, false to only search this parents children |
pred, otherwise nullptr for no match Definition at line 502 of file SystemNode.h.
| T * agxSensor::SystemNode::findParent |
Definition at line 561 of file SystemNode.h.
| SystemNode * agxSensor::SystemNode::findParent | ( | PredicateT | pred | ) | const |
Find parent given predicate.
| pred | - predicate bool( const SystemNode& parent ) returning true if parent is a match, otherwise false |
pred, otherwise nullptr for no match Definition at line 551 of file SystemNode.h.
| T * agxSensor::SystemNode::getChild |
Searches children for a node of given type.
Note that it's only the children of which this node is parent that is searched.
Definition at line 496 of file SystemNode.h.
| SystemNode * agxSensor::SystemNode::getChild | ( | size_t | index | ) | const |
| index | - index of child |
index | bool agxSensor::SystemNode::getEnable | ( | ) | const |
| Environment * agxSensor::SystemNode::getEnvironment | ( | ) | const |
| const agx::Name & agxSensor::SystemNode::getName | ( | ) | const |
| size_t agxSensor::SystemNode::getNumChildren | ( | ) | const |
| SystemNode * agxSensor::SystemNode::getParent | ( | ) | const |
| SystemNode * agxSensor::SystemNode::getRoot | ( | ) | const |
| bool agxSensor::SystemNode::hasChild | ( | const SystemNode * | child, |
| bool | recurse = true |
||
| ) | const |
| child | - possible child node |
| recurse | - true to continue search to the leafs, false to only search this parents children |
child is child to this node, otherwise false
|
virtual |
Inserts new parent to this node.
The previous parent to this node will get parent as child.
| parent | - new parent to this node |
parent failed
|
virtual |
Called when an object has been added to the sensor environment.
| instance | - object that was added to the sensor environment |
|
virtual |
Called when child has been added to this parent.
| child | - child that has been added |
Reimplemented in agxSensor::RtSystemNode.
|
virtual |
Called when child has been removed from this parent.
| child | - child that has been removed |
Reimplemented in agxSensor::RtSystemNode.
|
virtual |
Called when an object has been removed from the sensor environment.
| instance | - object that was removed from the sensor environment |
| bool agxSensor::SystemNode::removeChild | ( | SystemNode * | child | ) |
Remove child from this node.
| child | - child to remove |
|
virtual |
Called when this system node is being removed from a sensor environment.
|
virtual |
If necessary assemble, and fetch results related to this system node after a step by data.dt has been completed.
This call is made from the main thread, post-step, and thus allows the latest possible data from objects/simulation to be read and processed.
| data | - runtime step data |
| void agxSensor::SystemNode::setEnable | ( | bool | enable | ) |
Enable/disable this node.
Default enabled.
| enable | - true (default) to enable, false to disable this node |
| void agxSensor::SystemNode::setName | ( | const agx::Name & | name | ) |
Assign name to this node.
| name | - new name of this node |
|
virtual |
Synchronization from the main thread.
Read data from objects/simulation should be done here before execute/stepping is made separate from the main thread.
| data | - runtime step data |
|
virtual |
At the very end of a step, synchronize any graphics related aspects of the system node.
| renderManager | - simulation render manager |
| SystemNode * agxSensor::SystemNode::visitBf | ( | VisitorT | visitor | ) | const |
Visit the tree from, including, this node until callback returns true - using breadth first traversal.
| VisitorT | - implicit visitor type bool(SystemNode&) or similar |
| visitor | - node visitor returning true if match, return false to continue to the next node |
visitor returns true, nullptr if no match Definition at line 427 of file SystemNode.h.
| void agxSensor::SystemNode::visitChildren | ( | VisitorT | visitor, |
| bool | recurse = true |
||
| ) | const |
Visit all children with func as void( const SystemNode& child ).
| visitor | - function to call for each child, void( SystemNode& child ) |
| recurse | - true to continue the traverse to the leafs, false to only traverse this parents children |
Definition at line 535 of file SystemNode.h.
| SystemNode * agxSensor::SystemNode::visitChildrenBf | ( | VisitorT | visitor | ) | const |
Visit the tree from the children of this node until callback returns true - using breadth first traversal.
| VisitorT | - implicit visitor type bool(SystemNode&) or similar |
| visitor | - node visitor returning true if match, return false to continue to the next node |
visitor returns true, nullptr if no match Definition at line 437 of file SystemNode.h.
| SystemNode * agxSensor::SystemNode::visitChildrenDf | ( | VisitorT | visitor | ) | const |
Visit the tree from the children of this node until callback returns true - using depth first traversal.
| VisitorT | - implicit visitor type bool(SystemNode&) or similar |
| visitor | - node visitor returning true if match, return false to continue to the next node |
visitor returns true, nullptr if no match Definition at line 471 of file SystemNode.h.
| void agxSensor::SystemNode::visitChildrenOfType | ( | VisitorT | visitor, |
| bool | recurse = true |
||
| ) | const |
Visit all children with func as void( const T& child ).
| visitor | - function to call for each child, void( T& child ) |
| recurse | - true to continue the traverse to the leafs, false to only traverse this parents children |
Definition at line 571 of file SystemNode.h.
| SystemNode * agxSensor::SystemNode::visitDf | ( | VisitorT | visitor | ) | const |
Visit the tree from, including, this node until callback returns true - using depth first traversal.
| VisitorT | - implicit visitor type bool(SystemNode&) or similar |
| visitor | - node visitor returning true if match, return false to continue to the next node |
visitor returns true, nullptr if no match Definition at line 461 of file SystemNode.h.