162 template <
typename T>
163 bool implements()
const;
180 virtual
bool addNotification() override;
181 virtual
void removeNotification() override;
182 virtual
void onChildAdded(
SystemNode& child) override;
183 virtual
void onChildRemoved(
SystemNode& child) override;
184 virtual
bool onAdd(
agx::Referenced& instance) override;
185 virtual
bool onRemove(
agx::Referenced& instance) override;
186 virtual
void synchronize(const
CallbackData& data) override;
187 virtual
void execute(const
CallbackData& data) override;
188 virtual
void complete() override;
190 virtual
void synchronizeGraphics(const
agxRender::RenderManager& renderManager) override;
191 virtual
void cleanup() override;
201 template <typename T>
204 return m_implementation->
is<T>();
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE(T)
Use this in a pure abstract Serializable class to add the required methods Important: Use full namesp...
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
#define AGX_DECLARE_VECTOR_TYPES(type)
Class for managing the rendering of geometries, shapes, rigid bodies, constraints etc.
Interface for system node behavioral implementations intended to have multiple states/instances (Syst...
virtual void onChildAdded(SystemNodeProxy &proxy, SystemNode &child)
Called when child has been added to 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 execute(SystemNodeProxy &proxy, const CallbackData &data)
Execute this system, integrating it data.dt forward in time.
virtual void synchronize(SystemNodeProxy &proxy, const CallbackData &data)
Synchronization from the main thread.
virtual void complete(SystemNodeProxy &proxy)
Complete the execution of this system, finishing the integration forward in time.
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.
virtual void result(SystemNodeProxy &proxy, const CallbackData &data)
If necessary assemble, and fetch results related to this system node after a step by data....
virtual void cleanup(SystemNodeProxy &proxy)=0
The sensor environment is being put down, clean everything.
virtual bool onAdd(SystemNodeProxy &proxy, agx::Referenced &instance)
Called when an object has been added to the sensor environment.
virtual void onChildRemoved(SystemNodeProxy &proxy, SystemNode &child)
Called when child has been removed from this parent.
virtual bool addNotification(SystemNodeProxy &proxy)
Called when this system node has been added to a sensor environment.
virtual SystemNodeProxyRef createProxy()=0
Proxy system node, representing an instance of an ISystemNodeProxy in the system graph.
ISystemNodeProxy * getImplementation()
SystemNodeProxy(ISystemNodeProxy *implementation)
Construct a system node proxy instance with the given implementation.
const ISystemNodeProxy * getImplementation() const
System node is a separate step/operation in an execution tree representing a sensor (or such) in a se...
This class is an abstract base class for all classes that can be stored and retrieved from an Archive...
Base class providing referencing counted objects.
bool is() const
Subclass test.
Smart pointer for handling referenced counted objects.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
Namespace containing classes for handling debug rendering of collision geometries,...
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.