AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
agxSDK::ISensorEnvironment Class Referenceabstract

Interface to a cooperative sensor simulation assumed to be executed in a separate thread spawned in addNotification and joined in removeNotification. More...

#include <ISensorEnvironment.h>

+ Inheritance diagram for agxSDK::ISensorEnvironment:

Public Member Functions

 ISensorEnvironment ()=default
 Default constructor.
 
virtual ~ISensorEnvironment ()=default
 Destructor.
 
virtual void addNotification ()=0
 Called when added to a simulation or explicitly called when the sensor simulation should start.
 
virtual void fetchStepResults ()=0
 Block main thread until the sensor simulation is done and the data/results/outputs are accessible.
 
const SimulationgetSimulation () const
 
virtual void removeNotification ()=0
 Called when removed from a simulation or explicitly called when the sensor simulation should stop/join the main thread.
 
virtual void step (agx::Real dt)=0
 Start the sensor simulation and step for delta time dt.
 
virtual void updateGraphics (const agxRender::RenderManager &renderManager)=0
 Update the graphical components of the sensor environment.
 
- 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.
 
Referencedoperator= (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 DeleteHandlergetDeleteHandler ()
 
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 to a cooperative sensor simulation assumed to be executed in a separate thread spawned in addNotification and joined in removeNotification.

The sensor simulation step is called after the user step callback preCollide and spans until user step post (over collision detection, pre callbacks and solve dynamics) when fetchStepResults is called.

I.e., block read data from main resources (e.g., agxSDK::Simulation) in 'step' and activate the simulation thread. Synchronize with main in 'fetchStepResults' so the users can start collecting data in post, last events or outside the simulation loop.

Definition at line 46 of file ISensorEnvironment.h.

Constructor & Destructor Documentation

◆ ISensorEnvironment()

agxSDK::ISensorEnvironment::ISensorEnvironment ( )
default

Default constructor.

◆ ~ISensorEnvironment()

virtual agxSDK::ISensorEnvironment::~ISensorEnvironment ( )
virtualdefault

Destructor.

Member Function Documentation

◆ addNotification()

virtual void agxSDK::ISensorEnvironment::addNotification ( )
pure virtual

Called when added to a simulation or explicitly called when the sensor simulation should start.

This call should create the simulation thread and sleep until 'step' is called.

◆ fetchStepResults()

virtual void agxSDK::ISensorEnvironment::fetchStepResults ( )
pure virtual

Block main thread until the sensor simulation is done and the data/results/outputs are accessible.

◆ getSimulation()

const Simulation * agxSDK::ISensorEnvironment::getSimulation ( ) const
Returns
the simulation this sensor environment belongs to, is nullptr in standalone mode

◆ removeNotification()

virtual void agxSDK::ISensorEnvironment::removeNotification ( )
pure virtual

Called when removed from a simulation or explicitly called when the sensor simulation should stop/join the main thread.

◆ step()

virtual void agxSDK::ISensorEnvironment::step ( agx::Real  dt)
pure virtual

Start the sensor simulation and step for delta time dt.

It's safe to read data from the simulation or other reasources synchronized with the main thread.

Parameters
dt- delta time to step the sensor simulation

◆ updateGraphics()

virtual void agxSDK::ISensorEnvironment::updateGraphics ( const agxRender::RenderManager renderManager)
pure virtual

Update the graphical components of the sensor environment.

Parameters
renderManager- simulation render manager

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