AGX Dynamics 2.38.0.0
Loading...
Searching...
No Matches
agxTerrain Namespace Reference

The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes. More...

Namespaces

namespace  Profiler
 
namespace  TerrainContactForceCalculator
 Utility namespace for calculating excavation forces in the terrain.
 

Classes

class  ActiveZone
 
struct  ActiveZoneIntersectionData
 
class  AggregateContactDepthModel
 Class used to calculate the contact depth in the soil aggregate <-> terrain contacts to mimic an elasto-plastic contact model. More...
 
class  AggregateContactGenerator
 
class  BasicGrid
 Pure virtual interface class for the data storage grid classes we have. More...
 
class  ColumnHeightGrid
 Class implementing the BasicGrid interface. More...
 
class  CompactionController
 Controller that handles compaction in the terrain from generated terrain contacts in TerrainContactGenerator The controller features two methods that calculate stress depth propagation in the terrain soil: BOUSSINESQ - Two part method that calculates the stress field by combining the calculated surface stress and subsoil stress based on the surface contact point loads. More...
 
class  DeformController
 
class  DeformerActiveZone
 
class  DeformerCollection
 
class  ExternalTerrainDataSource
 This class provides a concrete, serializable base class which classes written in other languages can inherit from to create data sources. More...
 
class  Grid
 Extended pure virtual interface for Grid storage classes. More...
 
class  HashVoxelGrid
 Class implementing the BasicGrid interface. More...
 
class  PrimaryActiveZone
 
class  ScopeTimer
 
class  Shovel
 
class  ShovelAggregateContactMaterialContainer
 Simple container class for storing and handling explicit contact material for shovel-aggregate contacts, indexed by specified excavation mode. More...
 
class  ShovelAggregateFrictionModel
 
class  SoilParticleAggregate
 
struct  SoilParticleStatistics
 
class  SoilPenetrationResistance
 
class  SoilSimulationInterface
 Interface class for accessing data and functions for the internal soil particle simulation used in agxTerrain. More...
 
class  SoilWedge
 
class  Terrain
 A terrain model based a 3D grid model with overlapping height field that can be deformed by interacting shovels objects performing digging motions, converting solid mass to dynamic mass which can be moved. More...
 
class  TerrainCache
 The TerrainCache is used internally by the TerrainPager to provide requested terrain tiles. More...
 
class  TerrainContact
 Class that contains information about a terrain contact between an external object and the terrain geometry. More...
 
class  TerrainContactGenerator
 This class has two main responsibilities: More...
 
class  TerrainDataSource
 Abstract interface for requesting height data for a Terrain tile. More...
 
class  TerrainGridControl
 Interface class for accessing and manipulating the underlying 3D grid data in the terrain using terrain index (x,y) as well as depth index (z). More...
 
class  TerrainMassOccupancyController
 Class that handles and sanity checks the mass logic in the terrain. More...
 
class  TerrainMaterial
 This class is used to describe the general material properties of the Terrain. More...
 
class  TerrainMaterialLibrary
 Class that is used for interfacing with different TerrainMaterial presets with calibrated bulk and contact properties of different archetypes of soil, such as dirt, gravel and sand. More...
 
class  TerrainMaterialReaderWriter
 Utility class for reading and writing TerrainMaterial objects to JSON format. More...
 
class  TerrainPager
 A pager that will dynamically handle terrain tiles in a agxSDK::Simulation. More...
 
class  TerrainPhysics
 Utility class where most of the physics calculation used in agxTerrain is gathered. More...
 
class  TerrainProperties
 Class for containing and managing the different agxTerrain::Terrain settings. More...
 
class  TerrainRasterizer
 This class performs raycasting against the source geometry to get height data for tiles. More...
 
struct  TerrainTile
 Struct with data to describe a terrain tile. More...
 
class  TerrainToolCollection
 Collection of terrain tool (currently Shovel) related objects which are terrain instance specific. More...
 
class  TileModification
 TileModifications are used to provide a delta for paged terrain changes. More...
 
class  TileSpecification
 A TileSpecification determines where in the world a 2D TileId is located and contains utility methods for coordinate transforms. More...
 
class  TrajectoryCalculator
 
struct  TrajectorySettings
 

Typedefs

typedef agx::observer_ptr< const ActiveZoneActiveZoneConstObserver
 
typedef agx::ref_ptr< const ActiveZoneActiveZoneConstRef
 
typedef agx::observer_ptr< ActiveZoneActiveZoneObserver
 
typedef agx::Vector< ActiveZoneObserverActiveZoneObserverVector
 
typedef agx::VectorPOD< ActiveZone * > ActiveZonePtrVector
 
typedef agx::ref_ptr< ActiveZoneActiveZoneRef
 
typedef agx::Vector< ActiveZoneRefActiveZoneRefVector
 
typedef agx::Vector< MeshIntersectionTestDataActiveZoneShapes
 
typedef agx::observer_ptr< const AggregateContactGeneratorAggregateContactGeneratorConstObserver
 
typedef agx::ref_ptr< const AggregateContactGeneratorAggregateContactGeneratorConstRef
 
typedef agx::observer_ptr< AggregateContactGeneratorAggregateContactGeneratorObserver
 
typedef agx::ref_ptr< AggregateContactGeneratorAggregateContactGeneratorRef
 
typedef agx::observer_ptr< const BasicGridBasicGridConstObserver
 
typedef agx::ref_ptr< const BasicGridBasicGridConstRef
 
typedef agx::observer_ptr< BasicGridBasicGridObserver
 
typedef agx::ref_ptr< BasicGridBasicGridRef
 
typedef agx::observer_ptr< const CompactionControllerCompactionControllerConstObserver
 
typedef agx::ref_ptr< const CompactionControllerCompactionControllerConstRef
 
typedef agx::observer_ptr< CompactionControllerCompactionControllerObserver
 
typedef agx::Vector< CompactionControllerObserverCompactionControllerObserverVector
 
typedef agx::VectorPOD< CompactionController * > CompactionControllerPtrVector
 
typedef agx::ref_ptr< CompactionControllerCompactionControllerRef
 
typedef agx::Vector< CompactionControllerRefCompactionControllerRefVector
 
typedef agx::observer_ptr< const DeformControllerDeformControllerConstObserver
 
typedef agx::ref_ptr< const DeformControllerDeformControllerConstRef
 
typedef agx::observer_ptr< DeformControllerDeformControllerObserver
 
typedef agx::ref_ptr< DeformControllerDeformControllerRef
 
typedef agx::observer_ptr< const DeformerActiveZoneDeformerActiveZoneConstObserver
 
typedef agx::ref_ptr< const DeformerActiveZoneDeformerActiveZoneConstRef
 
typedef agx::observer_ptr< DeformerActiveZoneDeformerActiveZoneObserver
 
typedef agx::ref_ptr< DeformerActiveZoneDeformerActiveZoneRef
 
typedef agx::observer_ptr< const DeformerCollectionDeformerCollectionConstObserver
 
typedef agx::ref_ptr< const DeformerCollectionDeformerCollectionConstRef
 
typedef agx::observer_ptr< DeformerCollectionDeformerCollectionObserver
 
typedef agx::ref_ptr< DeformerCollectionDeformerCollectionRef
 
typedef agx::HashTable< agxCollide::Geometry *, agx::RealGeometryContactTimeTable
 
typedef agx::HashSet< agxCollide::Geometry * > GeometryHashSet
 
typedef agx::HashVector< agxCollide::Geometry *, agxCollide::LocalGeometryContactGeometryLocalContactTable
 
typedef agx::observer_ptr< const GridGridConstObserver
 
typedef agx::ref_ptr< const GridGridConstRef
 
typedef agx::observer_ptr< GridGridObserver
 
typedef agx::ref_ptr< GridGridRef
 
typedef std::queue< agx::Vec2iIndexQueue
 
typedef agx::HashTable< agx::Vec3i, ParticleWeightPairVectorIndexToParticleWeightPairVector
 
typedef std::tuple< const agxCollide::Mesh *, agx::AffineMatrix4x4, agxCollide::BoundingAABBMeshIntersectionTestData
 
typedef std::pair< agxCollide::MeshRef, agx::AffineMatrix4x4MeshTransformPair
 
typedef agx::Vector< MeshTransformPairMeshTransformPairVector
 
typedef agx::VectorPOD< agx::RealVectormodifiedCompactionVector
 
typedef agx::SetVector< agx::Vec2iModifiedVerticesSetVector
 
typedef agx::Vector< agx::Vec2iModifiedVerticesVector
 
typedef agx::Vector< std::pair< SoilParticlePtr, float > > ParticleDeltaVector
 
typedef std::pair< SoilParticlePtr, agx::RealParticleWeightPair
 
typedef agx::Vector< ParticleWeightPairParticleWeightPairVector
 
typedef agx::observer_ptr< const PrimaryActiveZonePrimaryActiveZoneConstObserver
 
typedef agx::ref_ptr< const PrimaryActiveZonePrimaryActiveZoneConstRef
 
typedef agx::observer_ptr< PrimaryActiveZonePrimaryActiveZoneObserver
 
typedef agx::ref_ptr< PrimaryActiveZonePrimaryActiveZoneRef
 
typedef agx::observer_ptr< const ScopeTimerScopeTimerConstObserver
 
typedef agx::ref_ptr< const ScopeTimerScopeTimerConstRef
 
typedef agx::observer_ptr< ScopeTimerScopeTimerObserver
 
typedef agx::ref_ptr< ScopeTimerScopeTimerRef
 
typedef std::tuple< const agxCollide::Shape *, agx::AffineMatrix4x4, agxCollide::BoundingAABBShapeIntersectionTestData
 
typedef agx::observer_ptr< const ShovelAggregateContactMaterialContainerShovelAggregateContactMaterialContainerConstObserver
 
typedef agx::ref_ptr< const ShovelAggregateContactMaterialContainerShovelAggregateContactMaterialContainerConstRef
 
typedef agx::observer_ptr< ShovelAggregateContactMaterialContainerShovelAggregateContactMaterialContainerObserver
 
typedef agx::Vector< ShovelAggregateContactMaterialContainerObserverShovelAggregateContactMaterialContainerObserverVector
 
typedef agx::VectorPOD< ShovelAggregateContactMaterialContainer * > ShovelAggregateContactMaterialContainerPtrVector
 
typedef agx::ref_ptr< ShovelAggregateContactMaterialContainerShovelAggregateContactMaterialContainerRef
 
typedef agx::Vector< ShovelAggregateContactMaterialContainerRefShovelAggregateContactMaterialContainerRefVector
 
typedef agx::observer_ptr< const ShovelAggregateFrictionModelShovelAggregateFrictionModelConstObserver
 
typedef agx::ref_ptr< const ShovelAggregateFrictionModelShovelAggregateFrictionModelConstRef
 
typedef agx::observer_ptr< ShovelAggregateFrictionModelShovelAggregateFrictionModelObserver
 
typedef agx::ref_ptr< ShovelAggregateFrictionModelShovelAggregateFrictionModelRef
 
typedef agx::observer_ptr< const ShovelShovelConstObserver
 
typedef agx::ref_ptr< const ShovelShovelConstRef
 
typedef agx::observer_ptr< ShovelShovelObserver
 
typedef agx::Vector< ShovelObserverShovelObserverVector
 
typedef agx::VectorPOD< Shovel * > ShovelPtrVector
 
typedef agx::ref_ptr< ShovelShovelRef
 
typedef agx::Vector< ShovelRefShovelRefVector
 
typedef agx::observer_ptr< const SoilParticleAggregateSoilParticleAggregateConstObserver
 
typedef agx::ref_ptr< const SoilParticleAggregateSoilParticleAggregateConstRef
 
typedef agx::observer_ptr< SoilParticleAggregateSoilParticleAggregateObserver
 
typedef agx::Vector< SoilParticleAggregateObserverSoilParticleAggregateObserverVector
 
typedef agx::VectorPOD< SoilParticleAggregate * > SoilParticleAggregatePtrVector
 
typedef agx::ref_ptr< SoilParticleAggregateSoilParticleAggregateRef
 
typedef agx::Vector< SoilParticleAggregateRefSoilParticleAggregateRefVector
 
typedef agx::Physics::GranularBodyPtrArray SoilParticleArray
 
typedef agx::Physics::GranularBodyPtr SoilParticlePtr
 
typedef agx::Physics::GranularBodyPtrVector SoilParticlePtrVector
 
typedef agx::Physics::GranularBodyPtrVector SoilParticleVector
 
typedef agx::observer_ptr< const SoilPenetrationResistanceSoilPenetrationResistanceConstObserver
 
typedef agx::ref_ptr< const SoilPenetrationResistanceSoilPenetrationResistanceConstRef
 
typedef agx::observer_ptr< SoilPenetrationResistanceSoilPenetrationResistanceObserver
 
typedef agx::ref_ptr< SoilPenetrationResistanceSoilPenetrationResistanceRef
 
typedef agx::observer_ptr< const SoilSimulationInterfaceSoilSimulationInterfaceConstObserver
 
typedef agx::ref_ptr< const SoilSimulationInterfaceSoilSimulationInterfaceConstRef
 
typedef agx::observer_ptr< SoilSimulationInterfaceSoilSimulationInterfaceObserver
 
typedef agx::ref_ptr< SoilSimulationInterfaceSoilSimulationInterfaceRef
 
typedef agx::Vector< SoilWedgeSoilWedgeVector
 
typedef agx::observer_ptr< const TerrainTerrainConstObserver
 
typedef agx::ref_ptr< const TerrainTerrainConstRef
 
typedef agx::observer_ptr< const TerrainContactTerrainContactConstObserver
 
typedef agx::ref_ptr< const TerrainContactTerrainContactConstRef
 
typedef agx::observer_ptr< const TerrainContactGeneratorTerrainContactGeneratorConstObserver
 
typedef agx::ref_ptr< const TerrainContactGeneratorTerrainContactGeneratorConstRef
 
typedef agx::observer_ptr< TerrainContactGeneratorTerrainContactGeneratorObserver
 
typedef agx::Vector< TerrainContactGeneratorObserverTerrainContactGeneratorObserverVector
 
typedef agx::VectorPOD< TerrainContactGenerator * > TerrainContactGeneratorPtrVector
 
typedef agx::ref_ptr< TerrainContactGeneratorTerrainContactGeneratorRef
 
typedef agx::Vector< TerrainContactGeneratorRefTerrainContactGeneratorRefVector
 
typedef agx::observer_ptr< TerrainContactTerrainContactObserver
 
typedef agx::Vector< TerrainContactObserverTerrainContactObserverVector
 
typedef agx::VectorPOD< TerrainContact * > TerrainContactPtrVector
 
typedef agx::ref_ptr< TerrainContactTerrainContactRef
 
typedef agx::Vector< TerrainContactRefTerrainContactRefVector
 
typedef agx::observer_ptr< const TerrainDataSourceTerrainDataSourceConstObserver
 
typedef agx::ref_ptr< const TerrainDataSourceTerrainDataSourceConstRef
 
typedef agx::observer_ptr< TerrainDataSourceTerrainDataSourceObserver
 
typedef agx::ref_ptr< TerrainDataSourceTerrainDataSourceRef
 
typedef agx::observer_ptr< const TerrainGridControlTerrainGridControlConstObserver
 
typedef agx::ref_ptr< const TerrainGridControlTerrainGridControlConstRef
 
typedef agx::observer_ptr< TerrainGridControlTerrainGridControlObserver
 
typedef agx::Vector< TerrainGridControlObserverTerrainGridControlObserverVector
 
typedef agx::VectorPOD< TerrainGridControl * > TerrainGridControlPtrVector
 
typedef agx::ref_ptr< TerrainGridControlTerrainGridControlRef
 
typedef agx::Vector< TerrainGridControlRefTerrainGridControlRefVector
 
using TerrainIndexSet = agx::HashSet< agx::Vec2i >
 
typedef agx::HashTable< agx::Vec2i, agx::RealTerrainIndexToDepthTable
 
typedef agx::observer_ptr< const TerrainMassOccupancyControllerTerrainMassOccupancyControllerConstObserver
 
typedef agx::ref_ptr< const TerrainMassOccupancyControllerTerrainMassOccupancyControllerConstRef
 
typedef agx::observer_ptr< TerrainMassOccupancyControllerTerrainMassOccupancyControllerObserver
 
typedef agx::Vector< TerrainMassOccupancyControllerObserverTerrainMassOccupancyControllerObserverVector
 
typedef agx::VectorPOD< TerrainMassOccupancyController * > TerrainMassOccupancyControllerPtrVector
 
typedef agx::ref_ptr< TerrainMassOccupancyControllerTerrainMassOccupancyControllerRef
 
typedef agx::Vector< TerrainMassOccupancyControllerRefTerrainMassOccupancyControllerRefVector
 
typedef agx::observer_ptr< const TerrainMaterialTerrainMaterialConstObserver
 
typedef agx::ref_ptr< const TerrainMaterialTerrainMaterialConstRef
 
typedef agx::observer_ptr< TerrainMaterialTerrainMaterialObserver
 
typedef agx::ref_ptr< TerrainMaterialTerrainMaterialRef
 
typedef agx::observer_ptr< TerrainTerrainObserver
 
typedef agx::Vector< TerrainObserverTerrainObserverVector
 
typedef agx::observer_ptr< const TerrainPagerTerrainPagerConstObserver
 
typedef agx::ref_ptr< const TerrainPagerTerrainPagerConstRef
 
typedef agx::observer_ptr< TerrainPagerTerrainPagerObserver
 
typedef agx::Vector< TerrainPagerObserverTerrainPagerObserverVector
 
typedef agx::VectorPOD< TerrainPager * > TerrainPagerPtrVector
 
typedef agx::ref_ptr< TerrainPagerTerrainPagerRef
 
typedef agx::Vector< TerrainPagerRefTerrainPagerRefVector
 
typedef agx::observer_ptr< const TerrainPropertiesTerrainPropertiesConstObserver
 
typedef agx::ref_ptr< const TerrainPropertiesTerrainPropertiesConstRef
 
typedef agx::observer_ptr< TerrainPropertiesTerrainPropertiesObserver
 
typedef agx::ref_ptr< TerrainPropertiesTerrainPropertiesRef
 
typedef agx::VectorPOD< Terrain * > TerrainPtrVector
 
typedef agx::ref_ptr< TerrainTerrainRef
 
typedef agx::Vector< TerrainRefTerrainRefVector
 
typedef agx::observer_ptr< const TerrainToolCollectionTerrainToolCollectionConstObserver
 
typedef agx::ref_ptr< const TerrainToolCollectionTerrainToolCollectionConstRef
 
typedef agx::observer_ptr< TerrainToolCollectionTerrainToolCollectionObserver
 
typedef agx::Vector< TerrainToolCollectionObserverTerrainToolCollectionObserverVector
 
typedef agx::VectorPOD< TerrainToolCollection * > TerrainToolCollectionPtrVector
 
typedef agx::ref_ptr< TerrainToolCollectionTerrainToolCollectionRef
 
typedef agx::Vector< TerrainToolCollectionRefTerrainToolCollectionRefVector
 
typedef agx::Vec2i32 TileId
 A TileId is a 2D-coordinate that specifies where a in grid a tile is located.
 
typedef agx::VectorPOD< TileModificationTileModificationVector
 
typedef agx::Vector< std::array< agx::Vec3, 3 > > TriangleVector
 
typedef agx::HashSet< agx::Vec3iVoxelHashSet
 
typedef agx::HashSet< agx::Vec3iVoxelIndexSet
 
typedef agx::HashTable< agx::Vec3i, agx::RealVoxelStressTable
 
using WedgePlaneVector = agx::Vector< std::array< agx::Plane, 3 > >
 

Functions

agx::Vec3 AGXTERRAIN_EXPORT calculateContactReferencePoint (const agx::Vec3Vector &contactPoints)
 Calculates the reference point that will be used in the contact model from specified contact points.
 
agx::Vec3 AGXTERRAIN_EXPORT calculateGravityVector (agxSDK::Simulation *simulation, const agx::Vec3 &position)
 Utility method for calculating the gravity vector given a point.
 
agx::Real AGXTERRAIN_EXPORT calculateGv (agx::Vec3 normal, agx::Vec3 point, const agx::RigidBody *rb1, const agx::RigidBody *rb2)
 Utility method for calculating the relative velocity of two bodies in a contact normal direction.
 
agx::Real AGXTERRAIN_EXPORT estimateContactDepth (agx::ContactMaterial *contactMaterial, TerrainToolCollection *collection, agx::Real contactVelocity, agx::Real contactGravity, agx::Real contactArea, agx::Real elasticRestLength, size_t numContacts)
 Utility method for estimating the contact depth of a shovel <-> aggregate contact from contact velocity and gravity.
 
agx::Real AGXTERRAIN_EXPORT estimateMaximumAggregateForce (const TerrainToolCollection *collection, agx::Real soilAggregateMass, agx::Real contactArea, agx::Real frictionAngle)
 Estimate the maximum force that can be generated from a soil aggregate in the contact between the aggregate and the terrain.
 
AGXTERRAIN_EXPORT agx::MaterialfindShovelMaterial (agxTerrain::Shovel *shovel)
 Find the agx::Material on the first contact valid contact geometry in the specified shovel.
 
agx::Real getAverageContactForce (agxCollide::GeometryContactPtrVector matches, bool print=false)
 
AGXTERRAIN_EXPORT agxCollide::GeometrygetFirstContactValidGeometry (const agx::RigidBody *shovelBody)
 Get first contact valid geometry in the shovel rigid body for contact.
 
AGXTERRAIN_EXPORT bool isValidContactGeometry (agxCollide::Geometry *geometry)
 Checks if the specified geometry is valid for creating aggregate contacts against.
 
AGXTERRAIN_EXPORT void setShovelAggregateContactMaterialProperties (agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, const agx::RealVector &weights, TerrainToolCollection *collection)
 Set the shovel-aggregate contact material properties from a source contact material that should either be from regular shovel-terrain contact material based on a non-homogeneous configuration in the terrain.
 
AGXTERRAIN_EXPORT void setShovelExplicitShovelContactMaterial (agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, const agx::ContactMaterial *sourceMaterial, const agx::RealVector &weights, TerrainToolCollection *collection)
 Set the shovel-aggregate contact material properties from a source contact material that should be a user-specified contact material for a given excavation mode.
 
AGXTERRAIN_EXPORT bool setupShovelAggregateContactMaterial (agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, Shovel::ExcavationMode mode, TerrainToolCollection *collection, const agx::RealVector &weights)
 Configure the contact material that is to be used in shovel-aggregate contacts.
 

Detailed Description

The agxTerrain namespace contains a 3D model for a dynamic deformable Terrain and related classes.

Typedef Documentation

◆ ActiveZoneConstObserver

Definition at line 49 of file ActiveZone.h.

◆ ActiveZoneConstRef

Definition at line 49 of file ActiveZone.h.

◆ ActiveZoneObserver

◆ ActiveZoneObserverVector

◆ ActiveZonePtrVector

Definition at line 50 of file ActiveZone.h.

◆ ActiveZoneRef

Definition at line 49 of file ActiveZone.h.

◆ ActiveZoneRefVector

◆ ActiveZoneShapes

◆ AggregateContactGeneratorConstObserver

◆ AggregateContactGeneratorConstRef

◆ AggregateContactGeneratorObserver

◆ AggregateContactGeneratorRef

◆ BasicGridConstObserver

Definition at line 57 of file Grid.h.

◆ BasicGridConstRef

Definition at line 57 of file Grid.h.

◆ BasicGridObserver

Definition at line 57 of file Grid.h.

◆ BasicGridRef

Definition at line 57 of file Grid.h.

◆ CompactionControllerConstObserver

◆ CompactionControllerConstRef

◆ CompactionControllerObserver

◆ CompactionControllerObserverVector

◆ CompactionControllerPtrVector

◆ CompactionControllerRef

◆ CompactionControllerRefVector

◆ DeformControllerConstObserver

◆ DeformControllerConstRef

◆ DeformControllerObserver

◆ DeformControllerRef

◆ DeformerActiveZoneConstObserver

◆ DeformerActiveZoneConstRef

◆ DeformerActiveZoneObserver

◆ DeformerActiveZoneRef

◆ DeformerCollectionConstObserver

◆ DeformerCollectionConstRef

◆ DeformerCollectionObserver

◆ DeformerCollectionRef

◆ GeometryContactTimeTable

◆ GeometryHashSet

◆ GeometryLocalContactTable

◆ GridConstObserver

Definition at line 58 of file Grid.h.

◆ GridConstRef

Definition at line 58 of file Grid.h.

◆ GridObserver

Definition at line 58 of file Grid.h.

◆ GridRef

Definition at line 58 of file Grid.h.

◆ IndexQueue

typedef std::queue<agx::Vec2i> agxTerrain::IndexQueue

Definition at line 47 of file TerrainContactGenerator.h.

◆ IndexToParticleWeightPairVector

◆ MeshIntersectionTestData

◆ MeshTransformPair

◆ MeshTransformPairVector

◆ modifiedCompactionVector

◆ ModifiedVerticesSetVector

◆ ModifiedVerticesVector

◆ ParticleDeltaVector

Definition at line 61 of file Terrain.h.

◆ ParticleWeightPair

Definition at line 56 of file Terrain.h.

◆ ParticleWeightPairVector

◆ PrimaryActiveZoneConstObserver

◆ PrimaryActiveZoneConstRef

◆ PrimaryActiveZoneObserver

◆ PrimaryActiveZoneRef

◆ ScopeTimerConstObserver

◆ ScopeTimerConstRef

Definition at line 44 of file ProfilingTools.h.

◆ ScopeTimerObserver

◆ ScopeTimerRef

Definition at line 44 of file ProfilingTools.h.

◆ ShapeIntersectionTestData

◆ ShovelAggregateContactMaterialContainerConstObserver

◆ ShovelAggregateContactMaterialContainerConstRef

◆ ShovelAggregateContactMaterialContainerObserver

◆ ShovelAggregateContactMaterialContainerObserverVector

◆ ShovelAggregateContactMaterialContainerPtrVector

◆ ShovelAggregateContactMaterialContainerRef

◆ ShovelAggregateContactMaterialContainerRefVector

◆ ShovelAggregateFrictionModelConstObserver

◆ ShovelAggregateFrictionModelConstRef

◆ ShovelAggregateFrictionModelObserver

◆ ShovelAggregateFrictionModelRef

◆ ShovelConstObserver

Definition at line 48 of file Shovel.h.

◆ ShovelConstRef

Definition at line 48 of file Shovel.h.

◆ ShovelObserver

Definition at line 48 of file Shovel.h.

◆ ShovelObserverVector

◆ ShovelPtrVector

Definition at line 49 of file Shovel.h.

◆ ShovelRef

Definition at line 48 of file Shovel.h.

◆ ShovelRefVector

Definition at line 49 of file Shovel.h.

◆ SoilParticleAggregateConstObserver

◆ SoilParticleAggregateConstRef

◆ SoilParticleAggregateObserver

◆ SoilParticleAggregateObserverVector

◆ SoilParticleAggregatePtrVector

◆ SoilParticleAggregateRef

◆ SoilParticleAggregateRefVector

◆ SoilParticleArray

typedef agx::Physics::GranularBodyPtrArray agxTerrain::SoilParticleArray

Definition at line 28 of file SoilSimulationInterface.h.

◆ SoilParticlePtr

typedef agx::Physics::GranularBodyPtr agxTerrain::SoilParticlePtr

Definition at line 32 of file SoilParticleAggregate.h.

◆ SoilParticlePtrVector

typedef agx::Physics::GranularBodyPtrVector agxTerrain::SoilParticlePtrVector

Definition at line 33 of file SoilParticleAggregate.h.

◆ SoilParticleVector

typedef agx::Physics::GranularBodyPtrVector agxTerrain::SoilParticleVector

Definition at line 27 of file SoilSimulationInterface.h.

◆ SoilPenetrationResistanceConstObserver

◆ SoilPenetrationResistanceConstRef

◆ SoilPenetrationResistanceObserver

◆ SoilPenetrationResistanceRef

◆ SoilSimulationInterfaceConstObserver

◆ SoilSimulationInterfaceConstRef

◆ SoilSimulationInterfaceObserver

◆ SoilSimulationInterfaceRef

◆ SoilWedgeVector

Definition at line 127 of file SoilWedge.h.

◆ TerrainConstObserver

Definition at line 64 of file Terrain.h.

◆ TerrainConstRef

Definition at line 64 of file Terrain.h.

◆ TerrainContactConstObserver

◆ TerrainContactConstRef

◆ TerrainContactGeneratorConstObserver

◆ TerrainContactGeneratorConstRef

◆ TerrainContactGeneratorObserver

◆ TerrainContactGeneratorObserverVector

◆ TerrainContactGeneratorPtrVector

◆ TerrainContactGeneratorRef

◆ TerrainContactGeneratorRefVector

◆ TerrainContactObserver

◆ TerrainContactObserverVector

◆ TerrainContactPtrVector

◆ TerrainContactRef

◆ TerrainContactRefVector

◆ TerrainDataSourceConstObserver

◆ TerrainDataSourceConstRef

◆ TerrainDataSourceObserver

◆ TerrainDataSourceRef

◆ TerrainGridControlConstObserver

◆ TerrainGridControlConstRef

◆ TerrainGridControlObserver

◆ TerrainGridControlObserverVector

◆ TerrainGridControlPtrVector

◆ TerrainGridControlRef

◆ TerrainGridControlRefVector

◆ TerrainIndexSet

Definition at line 62 of file Terrain.h.

◆ TerrainIndexToDepthTable

◆ TerrainMassOccupancyControllerConstObserver

◆ TerrainMassOccupancyControllerConstRef

◆ TerrainMassOccupancyControllerObserver

◆ TerrainMassOccupancyControllerObserverVector

◆ TerrainMassOccupancyControllerPtrVector

◆ TerrainMassOccupancyControllerRef

◆ TerrainMassOccupancyControllerRefVector

◆ TerrainMaterialConstObserver

◆ TerrainMaterialConstRef

◆ TerrainMaterialObserver

◆ TerrainMaterialRef

◆ TerrainObserver

Definition at line 64 of file Terrain.h.

◆ TerrainObserverVector

◆ TerrainPagerConstObserver

◆ TerrainPagerConstRef

Definition at line 38 of file TerrainPager.h.

◆ TerrainPagerObserver

◆ TerrainPagerObserverVector

◆ TerrainPagerPtrVector

◆ TerrainPagerRef

Definition at line 38 of file TerrainPager.h.

◆ TerrainPagerRefVector

◆ TerrainPropertiesConstObserver

◆ TerrainPropertiesConstRef

◆ TerrainPropertiesObserver

◆ TerrainPropertiesRef

◆ TerrainPtrVector

Definition at line 65 of file Terrain.h.

◆ TerrainRef

Definition at line 64 of file Terrain.h.

◆ TerrainRefVector

Definition at line 65 of file Terrain.h.

◆ TerrainToolCollectionConstObserver

◆ TerrainToolCollectionConstRef

◆ TerrainToolCollectionObserver

◆ TerrainToolCollectionObserverVector

◆ TerrainToolCollectionPtrVector

◆ TerrainToolCollectionRef

◆ TerrainToolCollectionRefVector

◆ TileId

A TileId is a 2D-coordinate that specifies where a in grid a tile is located.

Together with a TileSpecification, a location in world coordinates can be calculated.

Definition at line 48 of file TileSpecification.h.

◆ TileModificationVector

◆ TriangleVector

Definition at line 54 of file Grid.h.

◆ VoxelHashSet

◆ VoxelIndexSet

Definition at line 55 of file Terrain.h.

◆ VoxelStressTable

◆ WedgePlaneVector

using agxTerrain::WedgePlaneVector = typedef agx::Vector<std::array<agx::Plane, 3> >

Definition at line 47 of file ActiveZone.h.

Function Documentation

◆ calculateContactReferencePoint()

agx::Vec3 AGXTERRAIN_EXPORT agxTerrain::calculateContactReferencePoint ( const agx::Vec3Vector contactPoints)

Calculates the reference point that will be used in the contact model from specified contact points.

Parameters
contactPoints- The contact points that is used to calculate the reference point used in the contact model
Returns
the reference point to be used in the aggregate contact model

◆ calculateGravityVector()

agx::Vec3 AGXTERRAIN_EXPORT agxTerrain::calculateGravityVector ( agxSDK::Simulation simulation,
const agx::Vec3 position 
)

Utility method for calculating the gravity vector given a point.

Used in the shovel <-> aggregate contact model and in penetration resistance. This function is used to handle terrain gravity computation for different types gravity fields.

◆ calculateGv()

agx::Real AGXTERRAIN_EXPORT agxTerrain::calculateGv ( agx::Vec3  normal,
agx::Vec3  point,
const agx::RigidBody rb1,
const agx::RigidBody rb2 
)

Utility method for calculating the relative velocity of two bodies in a contact normal direction.

◆ estimateContactDepth()

agx::Real AGXTERRAIN_EXPORT agxTerrain::estimateContactDepth ( agx::ContactMaterial contactMaterial,
TerrainToolCollection collection,
agx::Real  contactVelocity,
agx::Real  contactGravity,
agx::Real  contactArea,
agx::Real  elasticRestLength,
size_t  numContacts 
)

Utility method for estimating the contact depth of a shovel <-> aggregate contact from contact velocity and gravity.

◆ estimateMaximumAggregateForce()

agx::Real AGXTERRAIN_EXPORT agxTerrain::estimateMaximumAggregateForce ( const TerrainToolCollection collection,
agx::Real  soilAggregateMass,
agx::Real  contactArea,
agx::Real  frictionAngle 
)

Estimate the maximum force that can be generated from a soil aggregate in the contact between the aggregate and the terrain.

This is based on the Mohr-Coulomb criteria for soil failure.

Parameters
collection- The specified collection.
soilAggregateMass- the mass of the specified soil aggregate in the contact.
contactArea- the contact area in the aggregate <-> terrain contact.
Returns
the estimated maximum force that can be generated in the terrain <-> aggregate contact based on the Mohr-Coulomb condition for soil failure.

◆ findShovelMaterial()

AGXTERRAIN_EXPORT agx::Material * agxTerrain::findShovelMaterial ( agxTerrain::Shovel shovel)

Find the agx::Material on the first contact valid contact geometry in the specified shovel.

Parameters
shovel- the specified shovel.
Returns
the agx::Material found on the first contact valid geometry in the specified shovel body. Returns nullptr if no contact valid geometry is found.

◆ getAverageContactForce()

agx::Real agxTerrain::getAverageContactForce ( agxCollide::GeometryContactPtrVector  matches,
bool  print = false 
)

◆ getFirstContactValidGeometry()

AGXTERRAIN_EXPORT agxCollide::Geometry * agxTerrain::getFirstContactValidGeometry ( const agx::RigidBody shovelBody)

Get first contact valid geometry in the shovel rigid body for contact.

The geometry must be enabled and also not a sensor.

Parameters
shovelBody- The rigid body of the Shovel that will be checked.
Returns
the first valid geometry for aggregate contacts available in the shovel body. If no one exists, return nullptr.

◆ isValidContactGeometry()

AGXTERRAIN_EXPORT bool agxTerrain::isValidContactGeometry ( agxCollide::Geometry geometry)

Checks if the specified geometry is valid for creating aggregate contacts against.

Returns
true if the specified geometry can be used for aggregate contacts.

◆ setShovelAggregateContactMaterialProperties()

AGXTERRAIN_EXPORT void agxTerrain::setShovelAggregateContactMaterialProperties ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
const agx::RealVector weights,
TerrainToolCollection collection 
)

Set the shovel-aggregate contact material properties from a source contact material that should either be from regular shovel-terrain contact material based on a non-homogeneous configuration in the terrain.

Parameters
shovelAggregateCM- the shovel-aggregate contact material where properties will be set.
contactArea- The area of the shovel-aggregate contact for the specified excavation mode. Used in scaling of Young's modulus.
weights- the weights vector used to average the contact materials in the terrain.
collection- The specified collection that has the shovel object in the contact.

◆ setShovelExplicitShovelContactMaterial()

AGXTERRAIN_EXPORT void agxTerrain::setShovelExplicitShovelContactMaterial ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
const agx::ContactMaterial sourceMaterial,
const agx::RealVector weights,
TerrainToolCollection collection 
)

Set the shovel-aggregate contact material properties from a source contact material that should be a user-specified contact material for a given excavation mode.

Parameters
shovelAggregateCM- the shovel-aggregate contact material where properties will be set.
contactArea- The area of the shovel-aggregate contact for the specified excavation mode. Used in scaling of Young's modulus.
sourceMaterial- the base material whose properties will be used in the setup.
weights- the weights vector used to average the contact materials in the terrain.
collection- The specified collection that has the shovel object in the contact.

◆ setupShovelAggregateContactMaterial()

AGXTERRAIN_EXPORT bool agxTerrain::setupShovelAggregateContactMaterial ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
Shovel::ExcavationMode  mode,
TerrainToolCollection collection,
const agx::RealVector weights 
)

Configure the contact material that is to be used in shovel-aggregate contacts.

The contact material properties are set from the contact material between the shovel geometries and the terrain geometry by default. The user can override it by specifying an explicit contact material that is used in the different kinds of excavation modes. See 'setShovelAggregateContactMaterial' in agxTerrain::Terrain.

Parameters
shovelAggregateCM- the shovel-aggregate contact material that should be configured.
contactArea- The area of the shovel-aggregate contact for the specified excavation mode. Used in scaling of Young's modulus.
mode- the excavation mode that is used to search if an explicit contact material has be set for the contact. If so, it is used instead of the shovel-terrain contact material.
collection- The specified collection that has the shovel object in the contact.
Returns
true if the shovelAggregateCM was configured successfully, false otherwise.