|
AGX Dynamics 2.42.2.1
|
Base class for a strong interaction concept where there interaction is defined in the mass matrix part of the system matrix. More...
#include <StrongInteraction.h>
Inheritance diagram for agx::StrongInteraction:Classes | |
| struct | MatrixData |
Public Member Functions | |
| virtual void | addNlCallbacks (agx::SparseRangeReal &sparseRangeReal) const |
| Interface for non-linear callback from solver. | |
| virtual void | addNotification () override |
| Called when added to a simulation. | |
| AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE (agx::StrongInteraction) | |
| agx::Bool | getEnable () const |
| virtual agx::RigidBody * | getRigidBody1 () const =0 |
| virtual agx::RigidBody * | getRigidBody2 () const =0 |
| agx::Bool | getValid () const |
| virtual void | postSystemCallback (agx::DynamicsSystem *dynamicsSystem) override |
| Called after the solver is done. | |
| virtual void | prepare () |
| Prepares for solve. | |
| virtual void | preSystemCallback (agx::DynamicsSystem *dynamicsSystem) override |
| Called before solver executes. | |
| virtual void | removeNotification () override |
| Called when removed from a simulation. | |
| virtual void | render (agxRender::RenderManager *mgr, float scale) |
| Render the interaction. | |
| void | setEnable (agx::Bool enable) |
| Enable or disable this interaction. | |
| virtual void | writeMatrixData (agx::StrongInteraction::MatrixData rb1DiagonalBlock, agx::StrongInteraction::MatrixData rb2DiagonalBlock, agx::StrongInteraction::MatrixData offDiagonalBlock)=0 |
| Write data for dynamic bodies. | |
| virtual void | writeRhs (agx::Physics::RigidBodyPtr rb1, agx::Real *rb1Rhs, agx::Physics::RigidBodyPtr rb2, agx::Real *rb2Rhs, agx::Bool isRestingSolve)=0 |
| Write data to the right hand side, for dynamic bodies. | |
Public Member Functions inherited from agx::Interaction | |
| Interaction () | |
| Default constructor. | |
| AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agx::Interaction) | |
| const agx::Name & | getName () const |
| agx::PropertyContainer * | getPropertyContainer () |
| const agx::PropertyContainer * | getPropertyContainer () const |
| agxSDK::SimulationProxy * | getSimulationProxy () 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. | |
| 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. | |
Protected Member Functions | |
| StrongInteraction () | |
| Construct given one or two rigid bodies. | |
| virtual | ~StrongInteraction () |
| Reference counted object, protected destructor. | |
| virtual void | restore (agxStream::InputArchive &in) override |
| Restore local content. | |
| void | setValid (agx::Bool valid) |
| Valid if enable and configuration is ok for solver. | |
| virtual void | store (agxStream::OutputArchive &out) const override |
| Store local content. | |
Protected Member Functions inherited from agx::Interaction | |
| 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 Public Member Functions inherited from agx::Interaction | |
| static agxStream::Serializable * | create (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. | |
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 |
Base class for a strong interaction concept where there interaction is defined in the mass matrix part of the system matrix.
Definition at line 42 of file StrongInteraction.h.
|
protected |
Construct given one or two rigid bodies.
|
protectedvirtual |
Reference counted object, protected destructor.
|
virtual |
Interface for non-linear callback from solver.
|
overridevirtual |
Called when added to a simulation.
Reimplemented from agx::Interaction.
| agx::StrongInteraction::AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE | ( | agx::StrongInteraction | ) |
| agx::Bool agx::StrongInteraction::getEnable | ( | ) | const |
|
pure virtual |
Implemented in agx::AddedMassInteraction, agx::StrongInteractionConstraint, and agx::VirtualConstraintInertia.
|
pure virtual |
Implemented in agx::AddedMassInteraction, agx::StrongInteractionConstraint, and agx::VirtualConstraintInertia.
| agx::Bool agx::StrongInteraction::getValid | ( | ) | const |
|
overridevirtual |
Called after the solver is done.
Reimplemented from agx::Interaction.
|
virtual |
Prepares for solve.
Reimplemented in agx::AddedMassInteraction, agx::StrongInteractionConstraint, and agx::VirtualConstraintInertia.
|
overridevirtual |
Called before solver executes.
Reimplemented from agx::Interaction.
|
overridevirtual |
Called when removed from a simulation.
Reimplemented from agx::Interaction.
|
virtual |
Render the interaction.
Reimplemented in agx::StrongInteractionConstraint.
|
overrideprotectedvirtual |
Restore local content.
| void agx::StrongInteraction::setEnable | ( | agx::Bool | enable | ) |
Enable or disable this interaction.
| enable | - true to enable, false to disable |
|
protected |
Valid if enable and configuration is ok for solver.
| valid | - true if valid, otherwise false |
|
overrideprotectedvirtual |
Store local content.
|
pure virtual |
Write data for dynamic bodies.
Implemented in agx::AddedMassInteraction, agx::StrongInteractionConstraint, and agx::VirtualConstraintInertia.
|
pure virtual |
Write data to the right hand side, for dynamic bodies.
| rb1 | - first rigid body |
| rb1Rhs | - right hand side buffer (size 6) |
| rb2 | - second rigid body (invalid if single interaction) |
| isRestingSolve | - true and current velocity buffers should be used, false and temporary velocity storage (acceleration buffer) should be used. |
Implemented in agx::AddedMassInteraction, agx::StrongInteractionConstraint, and agx::VirtualConstraintInertia.