AGX Dynamics 2.41.2.0
Loading...
Searching...
No Matches
agx::Interaction Class Reference

The base class for interactions. More...

#include <Interaction.h>

+ Inheritance diagram for agx::Interaction:

Public Member Functions

 Interaction ()
 Default constructor.
 
 AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agx::Interaction)
 
const agx::NamegetName () const
 
agx::PropertyContainergetPropertyContainer ()
 
const agx::PropertyContainergetPropertyContainer () const
 
agxSDK::SimulationProxygetSimulationProxy () const
 
agx::Bool hasPropertyContainer () const
 
virtual void postSystemCallback (agx::DynamicsSystem *)
 Called after all post step events, after solve.
 
virtual void preSystemCallback (agx::DynamicsSystem *)
 Called after all pre step events, before solve.
 
void setName (const agx::Name &name)
 Name this interaction.
 
void setPropertyContainer (agx::PropertyContainer *propertyContainer)
 Assign a new property container.
 
virtual void updateForce (agx::DynamicsSystem *dynamicsSystem)
 This virtual method is implemented so that it computes the interaction forces on all the physical bodies implicated.
 
- 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

virtual ~Interaction ()
 Reference counted object, protected destructor.
 
virtual void addNotification ()
 Called when added to a simulation.
 
virtual void removeNotification ()
 Called when removed from a simulation.
 
virtual void setSimulation (agxSDK::Simulation *simulation)
 Assign 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

The base class for interactions.

Definition at line 32 of file Interaction.h.

Constructor & Destructor Documentation

◆ Interaction()

agx::Interaction::Interaction ( )

Default constructor.

◆ ~Interaction()

virtual agx::Interaction::~Interaction ( )
inlineprotectedvirtual

Reference counted object, protected destructor.

Definition at line 106 of file Interaction.h.

Member Function Documentation

◆ addNotification()

virtual void agx::Interaction::addNotification ( )
protectedvirtual

Called when added to a simulation.

Reimplemented in agx::IGenericConstraint, agx::Constraint, agx::StrongInteraction, and agxDriveTrain::VelocityConstraint.

◆ AGXSTREAM_DECLARE_SERIALIZABLE_BASE()

agx::Interaction::AGXSTREAM_DECLARE_SERIALIZABLE_BASE ( agx::Interaction  )

◆ create()

static agxStream::Serializable * agx::Interaction::create ( agxStream::InputArchive )
inlinestatic

Definition at line 100 of file Interaction.h.

◆ getName()

const agx::Name & agx::Interaction::getName ( ) const
Returns
the name of this interaction

◆ getPropertyContainer() [1/2]

agx::PropertyContainer * agx::Interaction::getPropertyContainer ( )
Returns
a property container (if it doesn't exist, a new will be created)

◆ getPropertyContainer() [2/2]

const agx::PropertyContainer * agx::Interaction::getPropertyContainer ( ) const
Returns
a property container (if it doesn't exist, a new will be created)

◆ getSimulationProxy()

agxSDK::SimulationProxy * agx::Interaction::getSimulationProxy ( ) const
Returns
the simulation proxy for this strong interaction

◆ hasPropertyContainer()

agx::Bool agx::Interaction::hasPropertyContainer ( ) const
Returns
true if a property container has been created, otherwise false

◆ postSystemCallback()

virtual void agx::Interaction::postSystemCallback ( agx::DynamicsSystem )
inlinevirtual

Called after all post step events, after solve.

Reimplemented in agx::AddedMassInteractionHandler, agx::Constraint, and agx::StrongInteraction.

Definition at line 97 of file Interaction.h.

◆ preSystemCallback()

virtual void agx::Interaction::preSystemCallback ( agx::DynamicsSystem )
inlinevirtual

Called after all pre step events, before solve.

Reimplemented in agx::AddedMassInteractionHandler, agx::Constraint, and agx::StrongInteraction.

Definition at line 93 of file Interaction.h.

◆ removeNotification()

virtual void agx::Interaction::removeNotification ( )
protectedvirtual

Called when removed from a simulation.

Reimplemented in agx::IGenericConstraint, agx::Constraint, and agx::StrongInteraction.

◆ setName()

void agx::Interaction::setName ( const agx::Name name)

Name this interaction.

Parameters
name- new name of this interaction

◆ setPropertyContainer()

void agx::Interaction::setPropertyContainer ( agx::PropertyContainer propertyContainer)

Assign a new property container.

Parameters
propertyContainer- new property container

◆ setSimulation()

virtual void agx::Interaction::setSimulation ( agxSDK::Simulation simulation)
protectedvirtual

Assign simulation.

Be careful.

Reimplemented in agx::Constraint.

◆ updateForce()

void agx::Interaction::updateForce ( agx::DynamicsSystem dynamicsSystem)
inlinevirtual

This virtual method is implemented so that it computes the interaction forces on all the physical bodies implicated.

This method defaults to doing nothing. Constraints and other strong interactions might not implement anything for this because the forces they generate are computed by a solver. A weak interaction must implement this method to have any effect.

Parameters
dynamicsSystem- the system to which the forces should be added

Definition at line 130 of file Interaction.h.


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