|
AGX Dynamics 2.42.3.0
|
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 |
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.
| Enumerator | |
|---|---|
| NONE | |
| CONTACTS | |
| CONSTRAINTS | |
| WIRES | |
| POST_SOLVE | |
| GRANULARS | |
| END_OF_CALLBACKS | |
Definition at line 35 of file MergeSplitAlgorithm.h.
|
protected |
Default constructor.
|
protectedvirtual |
Reference counted object, protected destructor.
| agxSDK::MergeSplitAlgorithm::AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE | ( | agxSDK::MergeSplitAlgorithm | ) |
|
protected |
|
protectedvirtual |
Push merge and/or split actions in simulation postSolve.
| postSolveData | - the post solve data | |
| [out] | actions | - resulting actions |
Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, agxSDK::GeometryContactMergeSplitAlgorithm, and agxSDK::WireMergeSplitAlgorithm.
|
protectedvirtual |
Compute callback in postSolve.
Compute the data used to decide merge and/or split actions to push in onPostStepActions.
| postSolveData | - the post solve data |
Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, agxSDK::GeometryContactMergeSplitAlgorithm, and agxSDK::MergedBodyMergeSplitAlgorithm.
|
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.
| postSolveData | - the post solve data |
| mergedBodyAlgorithm | - the merged body merge split algorithm |
Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, and agxSDK::WireMergeSplitAlgorithm.
|
protectedvirtual |
Push merge and/or split actions in simulation preStep.
| [out] | actions | - resulting actions |
Reimplemented in agxSDK::ConstraintMergeSplitAlgorithm, agxSDK::GeometryContactMergeSplitAlgorithm, and agxSDK::WireMergeSplitAlgorithm.
|
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.
|
overrideprotectedvirtual |
Restores internal data.
This method has to be called explicitly by the derived class.
|
overrideprotectedvirtual |
Stores internal data.
This method has to be called explicitly by the derived class.