AGX Dynamics 2.42.3.0
Loading...
Searching...
No Matches
agxSDK::MergeSplitAlgorithm Class Reference

Stateless base class for merge and split of interactions. More...

#include <MergeSplitAlgorithm.h>

+ Inheritance diagram for agxSDK::MergeSplitAlgorithm:

Public Types

enum  Callback {
  NONE = 0 , CONTACTS = 1 << 0 , CONSTRAINTS = 1 << 1 , WIRES = 1 << 2 ,
  POST_SOLVE = 1 << 3 , GRANULARS = 1 << 4 , END_OF_CALLBACKS = 1 << 5
}
 

Public Member Functions

 AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE (agxSDK::MergeSplitAlgorithm)
 
- 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

 MergeSplitAlgorithm ()
 Default constructor.
 
virtual ~MergeSplitAlgorithm ()
 Reference counted object, protected destructor.
 
agxSDK::MergeSplitHandler * getMergeSplitHandler () const
 
virtual void onPostSolveActions (const agxSDK::MergeSplitPostSolveData &postSolveData, agxSDK::MergeSplitActionContainer &actions)
 Push merge and/or split actions in simulation postSolve.
 
virtual void onPostSolveCompute (const agxSDK::MergeSplitPostSolveData &postSolveData)
 Compute callback in postSolve.
 
virtual void onPostSolveComputeEx (const agxSDK::MergeSplitPostSolveData &postSolveData, const agxSDK::MergedBodyMergeSplitAlgorithm &mergedBodyAlgorithm)
 Extended compute callback in postSolve.
 
virtual void onPreStepActions (agxSDK::MergeSplitActionContainer &actions)
 Push merge and/or split actions in simulation preStep.
 
virtual void onPreStepCompute ()
 Compute callback in preStep.
 
virtual void restore (agxStream::InputArchive &in) override
 Restores internal data.
 
virtual void store (agxStream::OutputArchive &out) const override
 Stores internal data.
 
- 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::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
 

Detailed Description

Stateless base class for merge and split of interactions.

Stateless in the sense that it's not defined to store any kind of state in an implementation of this interface.

Definition at line 32 of file MergeSplitAlgorithm.h.

Member Enumeration Documentation

◆ Callback

Enumerator
NONE 
CONTACTS 
CONSTRAINTS 
WIRES 
POST_SOLVE 
GRANULARS 
END_OF_CALLBACKS 

Definition at line 35 of file MergeSplitAlgorithm.h.

Constructor & Destructor Documentation

◆ MergeSplitAlgorithm()

agxSDK::MergeSplitAlgorithm::MergeSplitAlgorithm ( )
protected

Default constructor.

◆ ~MergeSplitAlgorithm()

virtual agxSDK::MergeSplitAlgorithm::~MergeSplitAlgorithm ( )
protectedvirtual

Reference counted object, protected destructor.

Member Function Documentation

◆ AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE()

agxSDK::MergeSplitAlgorithm::AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE ( agxSDK::MergeSplitAlgorithm  )

◆ getMergeSplitHandler()

agxSDK::MergeSplitHandler * agxSDK::MergeSplitAlgorithm::getMergeSplitHandler ( ) const
protected
Returns
the merge split handler this algorithm belongs to

◆ onPostSolveActions()

virtual void agxSDK::MergeSplitAlgorithm::onPostSolveActions ( const agxSDK::MergeSplitPostSolveData &  postSolveData,
agxSDK::MergeSplitActionContainer &  actions 
)
protectedvirtual

Push merge and/or split actions in simulation postSolve.

Parameters
postSolveData- the post solve data
[out]actions- resulting actions

Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, agxSDK::GeometryContactMergeSplitAlgorithm, and agxSDK::WireMergeSplitAlgorithm.

◆ onPostSolveCompute()

virtual void agxSDK::MergeSplitAlgorithm::onPostSolveCompute ( const agxSDK::MergeSplitPostSolveData &  postSolveData)
protectedvirtual

Compute callback in postSolve.

Compute the data used to decide merge and/or split actions to push in onPostStepActions.

Parameters
postSolveData- the post solve data

Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, agxSDK::GeometryContactMergeSplitAlgorithm, and agxSDK::MergedBodyMergeSplitAlgorithm.

◆ onPostSolveComputeEx()

virtual void agxSDK::MergeSplitAlgorithm::onPostSolveComputeEx ( const agxSDK::MergeSplitPostSolveData &  postSolveData,
const agxSDK::MergedBodyMergeSplitAlgorithm &  mergedBodyAlgorithm 
)
protectedvirtual

Extended compute callback in postSolve.

In this stage it's possible to fetch data from the merged body merge split algorithm containing external interactions with each merged body.

Parameters
postSolveData- the post solve data
mergedBodyAlgorithm- the merged body merge split algorithm

Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, and agxSDK::WireMergeSplitAlgorithm.

◆ onPreStepActions()

virtual void agxSDK::MergeSplitAlgorithm::onPreStepActions ( agxSDK::MergeSplitActionContainer &  actions)
protectedvirtual

Push merge and/or split actions in simulation preStep.

Parameters
[out]actions- resulting actions

Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, agxSDK::GeometryContactMergeSplitAlgorithm, and agxSDK::WireMergeSplitAlgorithm.

◆ onPreStepCompute()

virtual void agxSDK::MergeSplitAlgorithm::onPreStepCompute ( )
protectedvirtual

Compute callback in preStep.

Compute the data used to decide merge and/or split actions to push in onPreStepActions.

Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, and agxSDK::GeometryContactMergeSplitAlgorithm.

◆ restore()

virtual void agxSDK::MergeSplitAlgorithm::restore ( agxStream::InputArchive &  in)
overrideprotectedvirtual

Restores internal data.

This method has to be called explicitly by the derived class.

◆ store()

virtual void agxSDK::MergeSplitAlgorithm::store ( agxStream::OutputArchive &  out) const
overrideprotectedvirtual

Stores internal data.

This method has to be called explicitly by the derived class.


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