AGX Dynamics 2.42.3.0
Loading...
Searching...
No Matches
agxSensor::ISystemNodeProxy Class Referenceabstract

Interface for system node behavioral implementations intended to have multiple states/instances (SystemNodeProxy/ies) in the system graph. More...

#include <SystemNodeProxy.h>

+ Inheritance diagram for agxSensor::ISystemNodeProxy:

Public Types

using CallbackData = SystemNode::CallbackData
 

Public Member Functions

virtual bool addNotification (SystemNodeProxy &proxy)
 Called when this system node has been added to a sensor environment.
 
virtual void cleanup (SystemNodeProxy &proxy)=0
 The sensor environment is being put down, clean everything.
 
virtual void complete (SystemNodeProxy &proxy)
 Complete the execution of this system, finishing the integration forward in time.
 
virtual SystemNodeProxyRef createProxy ()=0
 
virtual void execute (SystemNodeProxy &proxy, const CallbackData &data)
 Execute this system, integrating it data.dt forward in time.
 
virtual bool onAdd (SystemNodeProxy &proxy, agx::Referenced &instance)
 Called when an object has been added to the sensor environment.
 
virtual void onChildAdded (SystemNodeProxy &proxy, SystemNode &child)
 Called when child has been added to this parent.
 
virtual void onChildRemoved (SystemNodeProxy &proxy, SystemNode &child)
 Called when child has been removed from this parent.
 
virtual bool onRemove (SystemNodeProxy &proxy, agx::Referenced &instance)
 Called when an object has been removed from the sensor environment.
 
virtual void removeNotification (SystemNodeProxy &proxy)
 Called when this system node is being removed from a sensor environment.
 
virtual void result (SystemNodeProxy &proxy, const CallbackData &data)
 If necessary assemble, and fetch results related to this system node after a step by data.dt has been completed.
 
virtual void synchronize (SystemNodeProxy &proxy, const CallbackData &data)
 Synchronization from the main thread.
 
virtual void synchronizeGraphics (SystemNodeProxy &proxy, const agxRender::RenderManager &renderManager)
 At the very end of a step, synchronize any graphics related aspects of the system node.
 
- 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
 

Detailed Description

Interface for system node behavioral implementations intended to have multiple states/instances (SystemNodeProxy/ies) in the system graph.

These implementations only store behavioral implementation parameters, while leaving the runtime state to each instance/proxy in the system graph.

Definition at line 32 of file SystemNodeProxy.h.

Member Typedef Documentation

◆ CallbackData

Member Function Documentation

◆ addNotification()

virtual bool agxSensor::ISystemNodeProxy::addNotification ( SystemNodeProxy &  proxy)
virtual

Called when this system node has been added to a sensor environment.

Parameters
proxy- system graph instance (proxy) carrying this implementation
Returns
true if successful and is ready to receive runtime calls

◆ cleanup()

virtual void agxSensor::ISystemNodeProxy::cleanup ( SystemNodeProxy &  proxy)
pure virtual

The sensor environment is being put down, clean everything.

Parameters
proxy- system graph instance (proxy) carrying this implementation

◆ complete()

virtual void agxSensor::ISystemNodeProxy::complete ( SystemNodeProxy &  proxy)
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.

Parameters
proxy- system graph instance (proxy) carrying this implementation

◆ createProxy()

virtual SystemNodeProxyRef agxSensor::ISystemNodeProxy::createProxy ( )
pure virtual
Returns
new, unique, system node (proxy) of this implementation

◆ execute()

virtual void agxSensor::ISystemNodeProxy::execute ( SystemNodeProxy &  proxy,
const CallbackData &  data 
)
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.

Parameters
proxy- system graph instance (proxy) carrying this implementation
data- runtime step data

◆ onAdd()

virtual bool agxSensor::ISystemNodeProxy::onAdd ( SystemNodeProxy &  proxy,
agx::Referenced &  instance 
)
virtual

Called when an object has been added to the sensor environment.

Parameters
proxy- system graph instance (proxy) carrying this implementation
instance- object that was added to the sensor environment
Returns
true if the object is consumed by the system, false if this system node doesn't handle/support this object.

◆ onChildAdded()

virtual void agxSensor::ISystemNodeProxy::onChildAdded ( SystemNodeProxy &  proxy,
SystemNode &  child 
)
virtual

Called when child has been added to this parent.

Parameters
proxy- system graph instance (proxy) carrying this implementation
child- child that has been added

◆ onChildRemoved()

virtual void agxSensor::ISystemNodeProxy::onChildRemoved ( SystemNodeProxy &  proxy,
SystemNode &  child 
)
virtual

Called when child has been removed from this parent.

Parameters
proxy- system graph instance (proxy) carrying this implementation
child- child that has been removed

◆ onRemove()

virtual bool agxSensor::ISystemNodeProxy::onRemove ( SystemNodeProxy &  proxy,
agx::Referenced &  instance 
)
virtual

Called when an object has been removed from the sensor environment.

Parameters
proxy- system graph instance (proxy) carrying this implementation
instance- object that was removed from the sensor environment
Returns
true if the object is consumed by the system, false if this system node doesn't handle/support this object.

◆ removeNotification()

virtual void agxSensor::ISystemNodeProxy::removeNotification ( SystemNodeProxy &  proxy)
virtual

Called when this system node is being removed from a sensor environment.

Parameters
proxy- system graph instance (proxy) carrying this implementation

◆ result()

virtual void agxSensor::ISystemNodeProxy::result ( SystemNodeProxy &  proxy,
const CallbackData &  data 
)
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.

Parameters
proxy- system graph instance (proxy) carrying this implementation
data- runtime step data

◆ synchronize()

virtual void agxSensor::ISystemNodeProxy::synchronize ( SystemNodeProxy &  proxy,
const CallbackData &  data 
)
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.

Parameters
proxy- system graph instance (proxy) carrying this implementation
data- runtime step data

◆ synchronizeGraphics()

virtual void agxSensor::ISystemNodeProxy::synchronizeGraphics ( SystemNodeProxy &  proxy,
const agxRender::RenderManager &  renderManager 
)
virtual

At the very end of a step, synchronize any graphics related aspects of the system node.

Parameters
proxy- system graph instance (proxy) carrying this implementation
renderManager- simulation render manager

The documentation for this class was generated from the following file: