AGX Dynamics 2.37.3.4
Loading...
Searching...
No Matches
agxSDK::LinkedStructureComponent Class Reference

Base implementation of a component (e.g., specific functionality) in linked structures. More...

#include <LinkedStructureComponent.h>

+ Inheritance diagram for agxSDK::LinkedStructureComponent:

Public Member Functions

 AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agxSDK::LinkedStructureComponent)
 
agxSDK::LinkedStructuregetLinkedStructure () const
 
const agx::NamegetName () const
 
agxSDK::SimulationgetSimulation () const
 
void setName (const agx::Name &name)
 Assign new name to this component.
 
- 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.
 

Static Public Member Functions

static agxStream::Serializablecreate (agxStream::InputArchive &)
 
- 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

 LinkedStructureComponent (const agx::Name &name="")
 Default, protected constructor.
 
virtual ~LinkedStructureComponent ()
 Reference counted object - protected destructor.
 
virtual void onAddNotification (agxSDK::LinkedStructure *linkedStructure)
 Called when this component is added to a linked structure.
 
virtual void onAddNotification (agxSDK::Simulation *simulation)
 Called when addNotification is executed when this linked structure is added to the simulation.
 
virtual void onLastStep ()
 Called on simulation last step event - after user lastStep.
 
virtual void onPostStep ()
 Called on simulation post step event - after user postStep.
 
virtual void onPreCollideStep ()
 Called on simulation pre-collide step event - after user preCollide.
 
virtual void onPreStep ()
 Called on simulation pre step event - after user preStep.
 
virtual void onRemoveNotification (agxSDK::LinkedStructure *linkedStructure)
 Called when this component is removed from a linked structure.
 
virtual void onRemoveNotification (agxSDK::Simulation *simulation)
 Called when removeNotification is executed when this linked structure is removed from the simulation.
 
- 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 ()
 

Additional Inherited Members

- 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

Base implementation of a component (e.g., specific functionality) in linked structures.

Implementations will receive certain callbacks from the parent LinkedStructure object and simulation events, such as preCollide, pre, post and last step events.

Definition at line 36 of file LinkedStructureComponent.h.

Constructor & Destructor Documentation

◆ LinkedStructureComponent()

agxSDK::LinkedStructureComponent::LinkedStructureComponent ( const agx::Name name = "")
protected

Default, protected constructor.

This object completely rely on a implementation so no point in just creating and adding an empty component to a linked structure.

◆ ~LinkedStructureComponent()

virtual agxSDK::LinkedStructureComponent::~LinkedStructureComponent ( )
protectedvirtual

Reference counted object - protected destructor.

Member Function Documentation

◆ AGXSTREAM_DECLARE_SERIALIZABLE_BASE()

agxSDK::LinkedStructureComponent::AGXSTREAM_DECLARE_SERIALIZABLE_BASE ( agxSDK::LinkedStructureComponent  )

◆ create()

static agxStream::Serializable * agxSDK::LinkedStructureComponent::create ( agxStream::InputArchive )
inlinestatic

Definition at line 63 of file LinkedStructureComponent.h.

◆ getLinkedStructure()

agxSDK::LinkedStructure * agxSDK::LinkedStructureComponent::getLinkedStructure ( ) const
Returns
the linked structure this component has been added to - otherwise null

◆ getName()

const agx::Name & agxSDK::LinkedStructureComponent::getName ( ) const
Returns
the given name of this component used to find this component from the linked structure this component is part of

◆ getSimulation()

agxSDK::Simulation * agxSDK::LinkedStructureComponent::getSimulation ( ) const
Returns
the simulation the linked structure has been added to - otherwise null

◆ onAddNotification() [1/2]

virtual void agxSDK::LinkedStructureComponent::onAddNotification ( agxSDK::LinkedStructure linkedStructure)
protectedvirtual

Called when this component is added to a linked structure.

Reimplemented in agxCable::CableDamage.

◆ onAddNotification() [2/2]

virtual void agxSDK::LinkedStructureComponent::onAddNotification ( agxSDK::Simulation simulation)
protectedvirtual

Called when addNotification is executed when this linked structure is added to the simulation.

Reimplemented in agxCable::CableDamage.

◆ onLastStep()

virtual void agxSDK::LinkedStructureComponent::onLastStep ( )
protectedvirtual

Called on simulation last step event - after user lastStep.

◆ onPostStep()

virtual void agxSDK::LinkedStructureComponent::onPostStep ( )
protectedvirtual

Called on simulation post step event - after user postStep.

Reimplemented in agxCable::CableDamage.

◆ onPreCollideStep()

virtual void agxSDK::LinkedStructureComponent::onPreCollideStep ( )
protectedvirtual

Called on simulation pre-collide step event - after user preCollide.

◆ onPreStep()

virtual void agxSDK::LinkedStructureComponent::onPreStep ( )
protectedvirtual

Called on simulation pre step event - after user preStep.

Reimplemented in agxCable::CableDamage.

◆ onRemoveNotification() [1/2]

virtual void agxSDK::LinkedStructureComponent::onRemoveNotification ( agxSDK::LinkedStructure linkedStructure)
protectedvirtual

Called when this component is removed from a linked structure.

◆ onRemoveNotification() [2/2]

virtual void agxSDK::LinkedStructureComponent::onRemoveNotification ( agxSDK::Simulation simulation)
protectedvirtual

Called when removeNotification is executed when this linked structure is removed from the simulation.

◆ setName()

void agxSDK::LinkedStructureComponent::setName ( const agx::Name name)

Assign new name to this component.

The name can be used to find this component from the linked structure this component is part of.

Parameters
name- new name of this component

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