|
AGX Dynamics 2.42.3.1
|
#include <ShovelSettings.h>
Inheritance diagram for agxTerrain::AdvancedShovelSettings:Public Member Functions | |
| AdvancedShovelSettings () | |
| Constructor for serialization. | |
| AdvancedShovelSettings (const agx::Line &cuttingEdge) | |
| Constructor of advanced shovel settings from the necessary initial info from a shovel. | |
| agx::Bool | getAggregateVelocityToShovel () const |
| bool | getAlwaysRemoveShovelContacts () const |
| agx::Bool | getClampAggregateVelocityToParticles () const |
| agx::Real | getContactRegionThreshold () const |
| Get the starting distance threshold from the shovel planes where regular geometry contacts between the shovel underside and the terrain can be created. | |
| agx::Real | getContactRegionVerticalLimit () const |
| agx::Real | getContactSamplingAngleCutoff () const |
| agx::Vec3 | getCustomBottomVector () const |
| agx::RealVector | getCustomContactPatchAngleThresholds () const |
| Specify cutsom contact patches by givin custom angle thresholds. | |
| agx::Real | getCustomExcavationStiffnessMultiplier () const |
| agx::Vec3 | getCustomForwardVector () const |
| agx::Bool | getDisablePrimaryWedgeAggregates () const |
| bool | getDisableShovelSideContacts () const |
| bool | getEnableCustomBottomVector () const |
| Checks whether a custom bottom vector is enabled. | |
| bool | getEnableCustomForwardVector () const |
| Checks whether a custom forward vector is enabled. | |
| agx::Bool | getEnableCustomPartitioning () const |
| bool | getEnableInnerShapeCreateDynamicMass () const |
| Get if inner shape alone should always create dynamic mass. | |
| agx::Bool | getEnableInnerShapeMidpointInclusion () const |
| bool | getEnableParticleForceFeedback () |
| bool | getEnableTeethVolume () const |
| Checks whether the teeth volume feature is enabled. | |
| agx::Real | getMinimumSubmergedContactLengthFraction () const |
| Get the minimum submerged cutting edge length fraction [0-1] that generates submerged cutting. | |
| agx::Real | getNoMergeExtensionDistance () const |
| Get the margin outside the shovel bonding box where soil particle merging is forbidden. | |
| agx::Bool | getNonHolonomicContacts () const |
| agx::UInt | getNumContactPatches () const |
| Get the number of contact patches that will be created inside the shovel to generate shovel <-> aggregate contact points. | |
| agx::UInt | getNumContactPatchSamplingPoints () const |
| agx::Real | getParticleInclusionMultiplier () const |
| agx::Real | getSecondarySeparationDeadloadLimit () const |
| bool | getShouldUpdateContactPatches () const |
| bool | getUseCustomFrictionModel () const |
| bool | getUseZeroAggregateVelocity () const |
| bool | isDirty () const |
| void | setAggregateVelocityToShovel (bool enable) |
| Set if the inner shape aggregate velocity should explicitly be set to the shovel velocity. | |
| void | setAlwaysRemoveShovelContacts (bool enable) |
| Set to true/false if shovel <-> terrain contacts should always be removed. | |
| void | setClampAggregateVelocityToParticles (bool enable) |
| Set if the inner shape aggregate velocity should clamped to the total soil particle velocity. | |
| void | setContactRegionThreshold (agx::Real contactRegionThreshold) |
| Set the starting distance threshold from the shovel planes where regular geometry contacts between the shovel underside and the terrain can be created. | |
| void | setContactRegionVerticalLimit (agx::Real verticalLimit) |
| Set the maximum vertical distance from the shovel bottom plane where regular geometry contacts between the shovel and the terrain are allowed to be created. | |
| void | setContactSamplingAngleCutoff (agx::Real angleCutoff) |
| Set the angle cutoff from the cutting edge when the contact sampling inside the shovel will stop. | |
| void | setCustomBottomVector (const agx::Vec3 &bottomVector) |
| Sets the custom bottom plate direction vector. | |
| void | setCustomContactPatchAngleTresholds (const agx::RealVector &angleThresholds) |
| Specify cutsom contact patches by givin custom angle thresholds. | |
| void | setCustomExcavationStiffnessMultiplier (agx::Real excavationStiffnessMultiplier) |
| Set the custom excavation stiffness multiplier, which is used to multiply the Young's modulus of the user defined contact materials in the different excavation modes. | |
| void | setCustomForwardVector (const agx::Vec3 &forwardVector) |
| Sets the custom forward vector. | |
| void | setDirty (bool enable) |
| void | setDisablePrimaryWedgeAggregates (bool enable) |
| Set if we should disabled wedge aggregates for primary excavation. | |
| void | setDisableShovelSideContacts (bool enable) |
| Set if shovel <-> aggregate side contacts should be disabled. | |
| void | setEnableCustomBottomVector (bool enable) |
| Enables or disables the use of a custom bottom vector. | |
| void | setEnableCustomForwardVector (bool enable) |
| Enables or disables the use of a custom forward vector. | |
| void | setEnableCustomPartitioning (bool enable) |
| Set whenever custom contact partitions should be used or not. | |
| void | setEnableInnerShapeCreateDynamicMass (bool enable) |
| Set if inner shape alone should always create dynamic mass. | |
| void | setEnableInnerShapeMidpointInclusion (bool enable) |
| Set if we limit the particle inner shape inclusion to the particle midpoint. | |
| void | setEnableParticleForceFeedback (bool enable) |
| Set whenever the excavation force feedback during PRIMARY excavation should be generated from particle contacts instead of aggregate contacts. | |
| void | setEnableTeethVolume (bool enable) |
| Enables or disables the teeth volume feature. | |
| void | setMinimumSubmergedContactLengthFraction (agx::Real minimumSubmergedContactLengthFraction) |
| Set the minimum submerged cutting edge length fraction [0-1] that generates submerged cutting. | |
| void | setNoMergeExtensionDistance (agx::Real extensionDistance) |
| Set the extension outside the shovel bounding box where soil particle merging is forbidden. | |
| void | setNonHolonomicContacts (bool enable) |
| Set if shovel <-> aggregate contacts should be set to use non-holonomic constraints, i.e velocity constraints. | |
| void | setNumContactPatches (agx::UInt numContactPatches) |
| Set number of contact patches that will be created inside the shovel to generate shovel <-> aggregate contact points. | |
| void | setNumContactPatchSamplingPoints (agx::UInt numSamples) |
| Set the number of sampling points used when tracing the shovel outline during creation of contact patches. | |
| void | setParticleInclusionMultiplier (agx::Real radiusMultiplier) |
| Set the radius multiplier for extending the inclusion bound with particle radius during post-excavation with particles in bucket. | |
| void | setSecondarySeparationDeadloadLimit (agx::Real secondarySeparationLimit) |
| Sets the dead-load limit where secondary separation will start to activate where the forward direction starts to change according to the virtual separation plate created by the material inside the shovel. | |
| void | setShouldUpdateContactPatches (bool shouldUpdate) |
| Set if we should update contact patches of the shovel, this is set when the shovel contact patch settings are changed. | |
| void | setUseCustomFrictionModel (bool enable) |
| void | setUseZeroAggregateVelocity (bool enable) |
| Set whenever the innerbody aggregate should have zero velocity before solve step as opposed to using particle or cached post-solve velocities from the previous time step. | |
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. | |
Protected Member Functions | |
| void | restore (agxStream::InputArchive &in) |
| void | store (agxStream::OutputArchive &out) const |
Protected Member Functions inherited from agx::Referenced | |
| virtual | ~Referenced () |
| Destructor. | |
| void | allocateObserverVector () const |
| void | deleteUsingDeleteHandler () const |
Additional Inherited Members | |
Static Public Member Functions inherited from agx::Referenced | |
| template<typename T > | |
| static bool | ValidateCast (const Referenced *object) |
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 |
Definition at line 301 of file ShovelSettings.h.
| agxTerrain::AdvancedShovelSettings::AdvancedShovelSettings | ( | const agx::Line & | cuttingEdge | ) |
Constructor of advanced shovel settings from the necessary initial info from a shovel.
| agxTerrain::AdvancedShovelSettings::AdvancedShovelSettings | ( | ) |
Constructor for serialization.
| agx::Bool agxTerrain::AdvancedShovelSettings::getAggregateVelocityToShovel | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getAlwaysRemoveShovelContacts | ( | ) | const |
| agx::Bool agxTerrain::AdvancedShovelSettings::getClampAggregateVelocityToParticles | ( | ) | const |
| agx::Real agxTerrain::AdvancedShovelSettings::getContactRegionThreshold | ( | ) | const |
Get the starting distance threshold from the shovel planes where regular geometry contacts between the shovel underside and the terrain can be created.
Contacts that do not reach the distance threshold will be filtered away.
| agx::Real agxTerrain::AdvancedShovelSettings::getContactRegionVerticalLimit | ( | ) | const |
| agx::Real agxTerrain::AdvancedShovelSettings::getContactSamplingAngleCutoff | ( | ) | const |
| agx::Vec3 agxTerrain::AdvancedShovelSettings::getCustomBottomVector | ( | ) | const |
| agx::RealVector agxTerrain::AdvancedShovelSettings::getCustomContactPatchAngleThresholds | ( | ) | const |
Specify cutsom contact patches by givin custom angle thresholds.
Will be used if custom partitioning is enabled.
| agx::Real agxTerrain::AdvancedShovelSettings::getCustomExcavationStiffnessMultiplier | ( | ) | const |
| agx::Vec3 agxTerrain::AdvancedShovelSettings::getCustomForwardVector | ( | ) | const |
| agx::Bool agxTerrain::AdvancedShovelSettings::getDisablePrimaryWedgeAggregates | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getDisableShovelSideContacts | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getEnableCustomBottomVector | ( | ) | const |
Checks whether a custom bottom vector is enabled.
| bool agxTerrain::AdvancedShovelSettings::getEnableCustomForwardVector | ( | ) | const |
Checks whether a custom forward vector is enabled.
| agx::Bool agxTerrain::AdvancedShovelSettings::getEnableCustomPartitioning | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getEnableInnerShapeCreateDynamicMass | ( | ) | const |
Get if inner shape alone should always create dynamic mass.
The alternative is to only create dynamic mass in the inner shape when primary excavation soil wedges create mass. Default: true.
| agx::Bool agxTerrain::AdvancedShovelSettings::getEnableInnerShapeMidpointInclusion | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getEnableParticleForceFeedback | ( | ) |
| bool agxTerrain::AdvancedShovelSettings::getEnableTeethVolume | ( | ) | const |
Checks whether the teeth volume feature is enabled.
| agx::Real agxTerrain::AdvancedShovelSettings::getMinimumSubmergedContactLengthFraction | ( | ) | const |
Get the minimum submerged cutting edge length fraction [0-1] that generates submerged cutting.
Default: 0.5
| agx::Real agxTerrain::AdvancedShovelSettings::getNoMergeExtensionDistance | ( | ) | const |
Get the margin outside the shovel bonding box where soil particle merging is forbidden.
Default: 0.5 m.
| agx::Bool agxTerrain::AdvancedShovelSettings::getNonHolonomicContacts | ( | ) | const |
| agx::UInt agxTerrain::AdvancedShovelSettings::getNumContactPatches | ( | ) | const |
Get the number of contact patches that will be created inside the shovel to generate shovel <-> aggregate contact points.
| agx::UInt agxTerrain::AdvancedShovelSettings::getNumContactPatchSamplingPoints | ( | ) | const |
| agx::Real agxTerrain::AdvancedShovelSettings::getParticleInclusionMultiplier | ( | ) | const |
| agx::Real agxTerrain::AdvancedShovelSettings::getSecondarySeparationDeadloadLimit | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getShouldUpdateContactPatches | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getUseCustomFrictionModel | ( | ) | const |
| bool agxTerrain::AdvancedShovelSettings::getUseZeroAggregateVelocity | ( | ) | const |
|
inline |
Definition at line 717 of file ShovelSettings.h.
|
protected |
| void agxTerrain::AdvancedShovelSettings::setAggregateVelocityToShovel | ( | bool | enable | ) |
Set if the inner shape aggregate velocity should explicitly be set to the shovel velocity.
| void agxTerrain::AdvancedShovelSettings::setAlwaysRemoveShovelContacts | ( | bool | enable | ) |
Set to true/false if shovel <-> terrain contacts should always be removed.
Default: false.
| enable | - set to true/false if shovel <-> terrain contacts should always be removed |
| void agxTerrain::AdvancedShovelSettings::setClampAggregateVelocityToParticles | ( | bool | enable | ) |
Set if the inner shape aggregate velocity should clamped to the total soil particle velocity.
| void agxTerrain::AdvancedShovelSettings::setContactRegionThreshold | ( | agx::Real | contactRegionThreshold | ) |
Set the starting distance threshold from the shovel planes where regular geometry contacts between the shovel underside and the terrain can be created.
Contacts that are not past the distance threshold will be filtered away.
| contactRegionThreshold | - The contact distance threshold from the shovel planes where regular geometry contacts between the shovel underside and the terrain are allowed to be created. ( Default: cuttingEdgeLength / 10.0 ) |
| void agxTerrain::AdvancedShovelSettings::setContactRegionVerticalLimit | ( | agx::Real | verticalLimit | ) |
Set the maximum vertical distance from the shovel bottom plane where regular geometry contacts between the shovel and the terrain are allowed to be created.
Contacts past the distance will be filtered away.
| verticalLimit | - The vertical contact distance threshold from the shovel planes where regular geometry contacts between the shovel underside and the terrain are allowed to be created. ( Default: cuttingEdgeLength / 10.0 ) |
| void agxTerrain::AdvancedShovelSettings::setContactSamplingAngleCutoff | ( | agx::Real | angleCutoff | ) |
Set the angle cutoff from the cutting edge when the contact sampling inside the shovel will stop.
| void agxTerrain::AdvancedShovelSettings::setCustomBottomVector | ( | const agx::Vec3 & | bottomVector | ) |
Sets the custom bottom plate direction vector.
When enabled the custom bottom plate direction vector will replace the one that is generated from the shovel geometry. This can be useful if the geometric algorithms fails on a particular shovel shape.
| bottomVector | The vector to use as the custom bottom direction. |
| void agxTerrain::AdvancedShovelSettings::setCustomContactPatchAngleTresholds | ( | const agx::RealVector & | angleThresholds | ) |
Specify cutsom contact patches by givin custom angle thresholds.
Will be used if custom partitioning is enabled.
| void agxTerrain::AdvancedShovelSettings::setCustomExcavationStiffnessMultiplier | ( | agx::Real | excavationStiffnessMultiplier | ) |
Set the custom excavation stiffness multiplier, which is used to multiply the Young's modulus of the user defined contact materials in the different excavation modes.
See Shovel::getShovelTerrainContactMaterialContainer().
| excavationStiffnessMultiplier | - the excavation stiffness multiplier for the explicit contact materials. Default: 1.0. |
| void agxTerrain::AdvancedShovelSettings::setCustomForwardVector | ( | const agx::Vec3 & | forwardVector | ) |
Sets the custom forward vector.
When enabled the custom forward vector will replace the one that is generated from the shovel geometry. This can be useful if the geometric algorithms fails on a particular shovel shape.
| forwardVector | - The vector to use as the custom forward direction. |
|
inline |
Definition at line 719 of file ShovelSettings.h.
| void agxTerrain::AdvancedShovelSettings::setDisablePrimaryWedgeAggregates | ( | bool | enable | ) |
Set if we should disabled wedge aggregates for primary excavation.
| void agxTerrain::AdvancedShovelSettings::setDisableShovelSideContacts | ( | bool | enable | ) |
Set if shovel <-> aggregate side contacts should be disabled.
| void agxTerrain::AdvancedShovelSettings::setEnableCustomBottomVector | ( | bool | enable | ) |
Enables or disables the use of a custom bottom vector.
When enabled, the simulation will use the custom bottom vector set with setCustomBottomVector() instead of the default one generated from the shovel geometry.
| enable | - true to enable the custom bottom vector, false to disable it. |
| void agxTerrain::AdvancedShovelSettings::setEnableCustomForwardVector | ( | bool | enable | ) |
Enables or disables the use of a custom forward vector.
When enabled, the simulation will use the custom forward vector set with setCustomForwardVector() instead of the default one generated from the shovel geometry. This can be useful if the geometric algorithms fails on a particular shovel shape.
| enable | - true to enable the custom forward vector, false to disable it. |
| void agxTerrain::AdvancedShovelSettings::setEnableCustomPartitioning | ( | bool | enable | ) |
Set whenever custom contact partitions should be used or not.
| void agxTerrain::AdvancedShovelSettings::setEnableInnerShapeCreateDynamicMass | ( | bool | enable | ) |
Set if inner shape alone should always create dynamic mass.
The alternative is to only create dynamic mass in the inner shape when primary excavation soil wedges create mass. Default: true.
| enable | - true if inner shape should always create dynamic mass (default), false otherwise. |
| void agxTerrain::AdvancedShovelSettings::setEnableInnerShapeMidpointInclusion | ( | bool | enable | ) |
Set if we limit the particle inner shape inclusion to the particle midpoint.
| void agxTerrain::AdvancedShovelSettings::setEnableParticleForceFeedback | ( | bool | enable | ) |
Set whenever the excavation force feedback during PRIMARY excavation should be generated from particle contacts instead of aggregate contacts.
| enable | - true if particles should generate contact forces on the shovel, false otherwise. (Default: false) |
| void agxTerrain::AdvancedShovelSettings::setEnableTeethVolume | ( | bool | enable | ) |
Enables or disables the teeth volume feature.
When enabled, a volumetric representation of the space between the top edge, cutting edge and the teeth edge is generated and used for including particles in the shovel inner shape.
| enable | True to enable teeth volume, false to disable it. |
| void agxTerrain::AdvancedShovelSettings::setMinimumSubmergedContactLengthFraction | ( | agx::Real | minimumSubmergedContactLengthFraction | ) |
Set the minimum submerged cutting edge length fraction [0-1] that generates submerged cutting.
Default: 0.5
| void agxTerrain::AdvancedShovelSettings::setNoMergeExtensionDistance | ( | agx::Real | extensionDistance | ) |
Set the extension outside the shovel bounding box where soil particle merging is forbidden.
Default: 0.5 m.
| void agxTerrain::AdvancedShovelSettings::setNonHolonomicContacts | ( | bool | enable | ) |
Set if shovel <-> aggregate contacts should be set to use non-holonomic constraints, i.e velocity constraints.
| void agxTerrain::AdvancedShovelSettings::setNumContactPatches | ( | agx::UInt | numContactPatches | ) |
Set number of contact patches that will be created inside the shovel to generate shovel <-> aggregate contact points.
| numContactPatches | - the number of contact patches that will be generated. |
| void agxTerrain::AdvancedShovelSettings::setNumContactPatchSamplingPoints | ( | agx::UInt | numSamples | ) |
Set the number of sampling points used when tracing the shovel outline during creation of contact patches.
| void agxTerrain::AdvancedShovelSettings::setParticleInclusionMultiplier | ( | agx::Real | radiusMultiplier | ) |
Set the radius multiplier for extending the inclusion bound with particle radius during post-excavation with particles in bucket.
| radiusMultiplier | - The multiplier for the particle radius extension of the shovel inclusion bound. (Default: 1.0) |
| void agxTerrain::AdvancedShovelSettings::setSecondarySeparationDeadloadLimit | ( | agx::Real | secondarySeparationLimit | ) |
Sets the dead-load limit where secondary separation will start to activate where the forward direction starts to change according to the virtual separation plate created by the material inside the shovel.
| secondarySeparationLimit | - The dead load limit where secondary separation will start to activate (Default: 0.8) |
| void agxTerrain::AdvancedShovelSettings::setShouldUpdateContactPatches | ( | bool | shouldUpdate | ) |
Set if we should update contact patches of the shovel, this is set when the shovel contact patch settings are changed.
| void agxTerrain::AdvancedShovelSettings::setUseCustomFrictionModel | ( | bool | enable | ) |
| void agxTerrain::AdvancedShovelSettings::setUseZeroAggregateVelocity | ( | bool | enable | ) |
Set whenever the innerbody aggregate should have zero velocity before solve step as opposed to using particle or cached post-solve velocities from the previous time step.
| enable | - true if the innerbody aggregate should have zero velocity, false otherwise. Default: false. |
|
protected |