|
AGX Dynamics 2.42.3.0
|
Specific thresholds used to split and merge objects given wires. More...
#include <WireMergeSplitThresholds.h>
Inheritance diagram for agxSDK::WireMergeSplitThresholds:Public Types | |
| enum | MergeThresholds : agx::UInt { NUM_MERGE_THRESHOLDS } |
| enum | SplitThresholds : agx::UInt { MERGE_TENSION_SCALE = NUM_MERGE_THRESHOLDS , FORCE_PROPAGATION_DECAY_SCALE , NUM_THRESHOLDS } |
Public Types inherited from agxSDK::MergeSplitThresholds | |
| using | MixFunction = std::function< agx::Real(agx::Real, agx::Real)> |
| Mixing two values function signature given two values and the return value is the mix. | |
Public Member Functions | |
| WireMergeSplitThresholds () | |
| Default constructor, all thresholds will be set to default. | |
| AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agxSDK::WireMergeSplitThresholds) | |
| virtual agx::ICloneableRef | clone (agx::ICloneable *child=nullptr) override |
| Creates and returns a clone of this object. | |
| agx::Real | getForcePropagationDecayScale () const |
| agx::Real | getMergeTensionScale () const |
| virtual void | resetToDefault () override |
| Resets all values to default. | |
| virtual void | restoreLightData (agxStream::StorageStream &str) override |
| Restoring data from stream. | |
| void | setForcePropagationDecayScale (agx::Real forcePropagationDecayScale) |
| When external forces are acting on a partially merged wire, the force will propagate and split several nodes at once. | |
| void | setMergeTensionScale (agx::Real mergeTensionScale) |
| When a node is merged the tension is stored and monitored to perform split. | |
| virtual void | storeLightData (agxStream::StorageStream &str) const override |
| Storing data to stream. | |
Public Member Functions inherited from agxSDK::MergeSplitThresholds | |
| agx::Real | get (const agx::UInt index) const |
| agx::Real | get (const agx::UInt index, const MergeSplitThresholds *other, MergeSplitThresholds::MixFunction mixFunc) const |
| Find and mix values of two instances. | |
| agx::UInt | getNumValues () const |
| agx::Bool | isGlobal () const |
| virtual void | resetToDefault ()=0 |
| Restore all thresholds to default. | |
| void | set (const agx::UInt index, agx::Real value) |
| Assign value given index and value. | |
| virtual agx::ICloneableRef | clone (agx::ICloneable *child=nullptr)=0 |
| Creates a clone of this object. | |
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. | |
Static Public Member Functions | |
| 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. | |
Protected Member Functions | |
| virtual | ~WireMergeSplitThresholds () |
| Reference counted object - protected destructor. | |
Protected Member Functions inherited from agxSDK::MergeSplitThresholds | |
| MergeSplitThresholds (const agx::UInt numValues) | |
| Construct given number of thresholds. | |
| virtual | ~MergeSplitThresholds () |
| Reference counted object, protected destructor. | |
| void | cloneValuesTo (MergeSplitThresholds &target) const |
Resizes and copies values to target. | |
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 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 |
Specific thresholds used to split and merge objects given wires.
Definition at line 28 of file WireMergeSplitThresholds.h.
| Enumerator | |
|---|---|
| NUM_MERGE_THRESHOLDS | |
Definition at line 31 of file WireMergeSplitThresholds.h.
Definition at line 36 of file WireMergeSplitThresholds.h.
| agxSDK::WireMergeSplitThresholds::WireMergeSplitThresholds | ( | ) |
Default constructor, all thresholds will be set to default.
|
protectedvirtual |
Reference counted object - protected destructor.
| agxSDK::WireMergeSplitThresholds::AGXSTREAM_DECLARE_SERIALIZABLE_BASE | ( | agxSDK::WireMergeSplitThresholds | ) |
|
overridevirtual |
Creates and returns a clone of this object.
Implements agx::ICloneable.
|
inlinestatic |
Definition at line 91 of file WireMergeSplitThresholds.h.
|
inline |
Definition at line 125 of file WireMergeSplitThresholds.h.
References FORCE_PROPAGATION_DECAY_SCALE, and agxSDK::MergeSplitThresholds::get().
|
inline |
Definition at line 120 of file WireMergeSplitThresholds.h.
References agxSDK::MergeSplitThresholds::get(), and MERGE_TENSION_SCALE.
|
overridevirtual |
Resets all values to default.
Implements agxSDK::MergeSplitThresholds.
|
overridevirtual |
Restoring data from stream.
| void agxSDK::WireMergeSplitThresholds::setForcePropagationDecayScale | ( | agx::Real | forcePropagationDecayScale | ) |
When external forces are acting on a partially merged wire, the force will propagate and split several nodes at once.
This threshold controls the amout of force (of the total external force) that is used to split each node. If this value is high (> 1), the force will not propagate 'too' long, keeping the wire merged. Default: 1.0.
| forcePropagationDecayScale | - the force propagation decay scale |
| void agxSDK::WireMergeSplitThresholds::setMergeTensionScale | ( | agx::Real | mergeTensionScale | ) |
When a node is merged the tension is stored and monitored to perform split.
This threshold scales the merge tension making split more likely when < 1 and less likely > 1. When this scale is 0 the only force keeping the node merged is from the contact - which in most cases isn't enough. Default: 1.0
| mergeTensionScale | - the merge tension scale |
|
overridevirtual |
Storing data to stream.