44 bool getEnableLockedBorders()
const;
59 bool getDeleteSoilParticlesOutsideBounds()
const;
70 agx::Real getPenetrationForceVelocityScaling()
const;
75 agx::Real getAvalancheMaxHeightGrowth()
const;
81 agx::Real getAvalancheDecayFraction()
const;
108 agx::Real getMaximumParticleActivationVolume()
const;
126 bool getEnableCreateDynamicMass()
const;
132 bool getEnableDeformation()
const;
375 LOCKED_BORDERS = 1 << 0,
376 CREATE_PATICLES = 1 << 1,
377 DELETE_PARTICLES_OUTSIDE_BOUNDS = 1 << 2,
378 ENABLE_SOIL_COMPACTION = 1 << 3,
379 ENABLE_AVALANCHING = 1 << 4,
380 ENABLE_DYNAMIC_MASS = 1 << 5,
381 ENABLE_DEFORMATION = 1 << 6,
382 ENABLE_GROUND_COLLAPSE = 1 << 7,
383 ENABLE_ALWAYS_SOIL_FAILURE = 1 << 8,
384 ENABLE_UPDATE_DYNAMIC_BODY_MASS = 1 << 9,
386 using Flags = agx::BitState<StateFlags, agx::UInt32>;
392 agx::Real m_penetrationForceVelocityScaling;
397 std::array<agx::Real, 6> m_soilAggregateCompliance;
402 float m_particleSizeScaling;
421 return m_avalancheMaxHeightGrowth;
428 return m_avalancheDecayFraction;
442 return m_penetrationForceVelocityScaling;
449 return m_maximumActivationVolume;
456 return m_soilAggregateCompliance[dof];
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXTERRAIN_STORE_RESTORE_INTERFACE
#define AGXTERRAIN_EXPORT
Class for containing and managing the different agxTerrain::Terrain settings.
bool getEnableLockedBorders() const
void setMaximumParticleActivationVolume(agx::Real volume)
Sets the maximum volume (m3) of active zone wedges that should wake particles.
void setSoilParticleGrowthRate(agx::Real growthRateFactor)
Set the rate factor in the algorithm for growing soil particles from fluid mass and particle resizing...
void setAvalancheDecayFraction(agx::Real decayFraction)
Set the fraction of the height difference that violates the angle of repose condition that will be tr...
agx::Real getSoilParticleLifeTime() const
void setSoilParticleMergeRate(agx::Real mergeRate)
Set the merge rate for soil particles into the terrain.
void setSoilAggregateLockCompliance(agx::Real compliance, agx::Int dof)
Set the compliance of the soil aggregate lock joint the local constraint dimensions to relax or incre...
void setEnableAvalanching(bool enable)
Set whether to enable avalanching in the terrain.
void setAlwaysEnableSoilFailure(bool enable)
Set if soil wedges should always fail.
agx::Real getPenetrationForceVelocityScaling() const
agx::Real getAvalancheMaxHeightGrowth() const
Get the maximum allowed height transfer per time step due to avalanching.
agx::BitState< StateFlags, agx::UInt32 > Flags
agx::Real getSoilAggregateLockCompliance(agx::Int dof) const
Set the compliance of the soil aggregate lock joint the local constraint dimensions to relax or incre...
void setActivationSpeed(agx::Real activationSpeed)
Set the shovel speed threshold in the excavation plane when static mass in the active zone is convert...
float getSoilParticleSizeScaling() const
Get soil particle size scaling factor.
void setEnableSoilCompaction(bool enable)
Set whether or not to use the soil compaction calculations in the terrain.
void setCreateParticles(bool enable)
Set whether the terrain should create particles or not during shovel interactions.
void setSoilMergeSpeedThreshold(agx::Real speedThreshold)
Set the absolute lower speed (m/s) threshold where soil particles are allowed to merge with the terra...
agx::Real getAvalancheDecayFraction() const
void setSoilParticleLifeTime(agx::Real lifeTime)
Set the lifetime (s) of created soil particles in the terrain.
agx::Real getActivationSpeed() const
Get the shovel speed threshold in the excavation plane of shovel deformers when static mass in the ac...
bool getAlwaysEnableSoilFailure() const
bool getEnableGroundCollapse() const
void setAvalancheErrorThreshold(agx::Real errorThreshold)
Set the fractional error threshold for the height difference that will trigger avalanching in a grid ...
agx::Real getAvalancheErrorThreshold() const
void setFlags(agx::UInt32 flags)
Set state flags for the properties object.
void setEnableDeformation(bool enable)
Sets if terrain deformation should be enabled.
agx::Real getSoilMergeSpeedThreshold() const
void setPenetrationForceVelocityScaling(agx::Real penetrationForceVelocityScaling)
Set the penetration force velocity scaling constant.
void setDirty(bool isDirty)
Set dirty flag on the TerrainProperties.
bool getCreateParticles() const
bool getEnableUpdateDynamicBodyMass() const
Get if the terrain should update the mass properties (mass, inertia and center of mass) of the dynami...
agx::Real getSoilParticleMergeRate() const
void setEnableCreateDynamicMass(bool enable)
Sets if dynamic mass should be created during excavation.
bool getEnableDeformation() const
void setSoilParticleMergeThreshold(agx::Real radiusFraction)
Set the fraction of the particle nominal radius that will trigger instant merge of soil particles int...
void setDeleteSoilParticlesOutsideBounds(bool enable)
Set if terrain should delete soil particles outside of terrain bounds.
agx::UInt32 getFlags() const
agx::Real getSoilParticleMergeThreshold() const
bool getDeleteSoilParticlesOutsideBounds() const
bool getEnableCreateDynamicMass() const
@ DELETE_PARTICLES_OUTSIDE_BOUNDS
void setSoilParticleSizeScaling(float scalingFactor)
Set soil particle size scaling factor.
agx::Real getSoilParticleGrowthRate() const
agx::Real getMaximumParticleActivationVolume() const
void setEnableUpdateDynamicBodyMass(bool enable)
Set if the terrain should update the mass properties (mass, inertia and center of mass) of the dynami...
void setAvalancheMaxHeightGrowth(agx::Real maxHeightGrowth)
Set the maximum allowed height (m) transfer per time step due to avalanching.
void setEnableLockedBorders(bool enable)
Set whether to fixate the height of the borders in the terrain.
bool getEnableSoilCompaction() const
bool getEnableAvalanching() const
void setEnableGroundCollapse(bool enable)
Set if ground collapse should be enabled.
Base class providing referencing counted objects.
#define DOXYGEN_END_INTERNAL_BLOCK()
#define DOXYGEN_START_INTERNAL_BLOCK()
The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.
The agx namespace contains the dynamics/math part of the AGX Dynamics API.