AGX Dynamics 2.42.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  deprecated
 
namespace  GroundCollapse
 
namespace  Profiler
 
namespace  TerrainContactForceCalculator
 Utility namespace for calculating excavation forces in the terrain.
 
namespace  VoxelGridUtils
 

Classes

class  ActiveZone
 
struct  ActiveZoneIntersectionData
 
class  AdvancedShovelSettings
 
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  BilinearHeightDataResampler
 Height data resampler using bilinear interpolation. More...
 
class  ClamShellBucket
 ClamShellBucket is a CompositeShovel class that models a clamshell bucket that consists of two opposing shovels. 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  CompositeShovel
 CompositeShovel is a base abstract class representation of Shovels types that consists of multiple child Shovel instances. More...
 
class  DeformController
 
class  DeformerActiveZone
 
class  DeformerCollection
 
class  ExternalDeformer
 ExternaDeformer is a TerrainToolInstance class that models deformer surfaces that are not attached to a shovel object. More...
 
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  ForbiddenBound
 Class for specifying a 3D bound where terrain operations like merging and avalanching is forbbiden. More...
 
class  ForbiddenIndex2DBound
 Class for specifying a 2D terrain index bound where terrain operations like merging and avalanching is forbbiden. More...
 
class  ForbiddenIndexBound
 Class for specifying a 3D terrain index bound where terrain operations like merging and avalanching is forbbiden. More...
 
struct  ForceComputationParams
 Parameters required by the terramechanics force/torque integration. More...
 
struct  ForceIntegrals
 Force and torque contributions returned from the wheel-soil integrations. More...
 
class  GaussianHeightDataResampler
 Height data resampler that smooths the input grid with a Gaussian filter before performing the final bilinear resampling step. More...
 
class  Grid
 Extended pure virtual interface for Grid storage classes. More...
 
struct  GridElement
 
class  HashVoxelGrid
 Class implementing the BasicGrid interface. More...
 
class  HeightDataResampler
 Base class for algorithms that resample height data before it is used to create a terrain or terrain tile. More...
 
class  IForbiddenBound
 Base abstract class for specifying different types of bounds bound where terrain operations like merging and avalanching is forbbiden. More...
 
struct  IntegrationPrecalc
 Cached quantities used during one angular integration sweep. More...
 
struct  PointData
 
class  PrimaryActiveZone
 
class  RegressionPlanesParameters
 Container for all user configurable parameters for the regression planes. More...
 
class  ResampleInputDescription
 Description of an input height grid passed to a resampler. More...
 
class  ResampleOutputDescription
 Description of an output height grid requested from a resampler. More...
 
class  ScopeReportSystemJob
 
class  ScopeTimer
 
class  Shovel
 Shovel object used to interact with a terrain via an active zone that converts solid terrain to dynamic terrain which can be moved by the shovel rigid body. More...
 
class  ShovelAggregateContactMaterialContainer
 Simple container class for storing and handling explicit contact material for shovel-aggregate contacts, indexed by specified excavation mode. More...
 
class  ShovelAggregateFrictionModel
 
struct  ShovelPlane
 
class  ShovelSettings
 
struct  ShovelSurfaceVectors
 
class  ShovelUtils
 
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
 
struct  SurfacePointData
 
struct  TangentPatch
 
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  TerrainJournalRecorder
 
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  TerrainWheel
 TerrainWheel is a rigid tire model that can deform soft terrain, modeled by agxTerrain::Terrain objects. More...
 
class  TerrainWheelDeformer
 Class responsible for terrain deformation by the TerrainWheel. More...
 
class  TerrainWheelPhysics
 Collection of stateless helper functions implementing the wheel–soil interaction model. More...
 
class  TerrainWheelPlane
 The TerrainWheelPlane consists of the parts and logic that is necessary to create. More...
 
class  TerrainWheelQuantities
 Class that contains TerrainWheel "quantities". More...
 
class  TerrainWheelSettings
 Container for model-level configuration parameters. 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...
 
struct  ToolShapeData
 
class  TrajectoryCalculator
 
struct  TrajectorySettings
 
class  WheelDeformationProperties
 Class containing settings for the terrain deformation algorithm by the TerrainWheel. More...
 

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 AdvancedShovelSettingsAdvancedShovelSettingsConstObserver
 
typedef agx::ref_ptr< const AdvancedShovelSettingsAdvancedShovelSettingsConstRef
 
typedef agx::observer_ptr< AdvancedShovelSettingsAdvancedShovelSettingsObserver
 
typedef agx::ref_ptr< AdvancedShovelSettingsAdvancedShovelSettingsRef
 
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 BilinearHeightDataResamplerBilinearHeightDataResamplerConstObserver
 
typedef agx::ref_ptr< const BilinearHeightDataResamplerBilinearHeightDataResamplerConstRef
 
typedef agx::observer_ptr< BilinearHeightDataResamplerBilinearHeightDataResamplerObserver
 
typedef agx::ref_ptr< BilinearHeightDataResamplerBilinearHeightDataResamplerRef
 
typedef agx::observer_ptr< const ClamShellBucketClamShellBucketConstObserver
 
typedef agx::ref_ptr< const ClamShellBucketClamShellBucketConstRef
 
typedef agx::observer_ptr< ClamShellBucketClamShellBucketObserver
 
typedef agx::Vector< ClamShellBucketObserverClamShellBucketObserverVector
 
typedef agx::VectorPOD< ClamShellBucket * > ClamShellBucketPtrVector
 
typedef agx::ref_ptr< ClamShellBucketClamShellBucketRef
 
typedef agx::Vector< ClamShellBucketRefClamShellBucketRefVector
 
typedef agx::observer_ptr< const ClamShellDebugRenderSettings > ClamShellDebugRenderSettingsConstObserver
 
typedef agx::ref_ptr< const ClamShellDebugRenderSettings > ClamShellDebugRenderSettingsConstRef
 
typedef agx::observer_ptr< ClamShellDebugRenderSettings > ClamShellDebugRenderSettingsObserver
 
typedef agx::ref_ptr< ClamShellDebugRenderSettings > ClamShellDebugRenderSettingsRef
 
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 CompositeShovelCompositeShovelConstObserver
 
typedef agx::ref_ptr< const CompositeShovelCompositeShovelConstRef
 
typedef agx::observer_ptr< CompositeShovelCompositeShovelObserver
 
typedef agx::Vector< CompositeShovelObserverCompositeShovelObserverVector
 
typedef agx::VectorPOD< CompositeShovel * > CompositeShovelPtrVector
 
typedef agx::ref_ptr< CompositeShovelCompositeShovelRef
 
typedef agx::Vector< CompositeShovelRefCompositeShovelRefVector
 
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::observer_ptr< const ExternalDeformerExternalDeformerConstObserver
 
typedef agx::ref_ptr< const ExternalDeformerExternalDeformerConstRef
 
typedef agx::observer_ptr< ExternalDeformerExternalDeformerObserver
 
typedef agx::Vector< ExternalDeformerObserverExternalDeformerObserverVector
 
typedef agx::VectorPOD< ExternalDeformer * > ExternalDeformerPtrVector
 
typedef agx::ref_ptr< ExternalDeformerExternalDeformerRef
 
typedef agx::Vector< ExternalDeformerRefExternalDeformerRefVector
 
typedef agx::observer_ptr< const ForbiddenBoundForbiddenBoundConstObserver
 
typedef agx::ref_ptr< const ForbiddenBoundForbiddenBoundConstRef
 
typedef agx::observer_ptr< ForbiddenBoundForbiddenBoundObserver
 
typedef agx::ref_ptr< ForbiddenBoundForbiddenBoundRef
 
typedef agx::observer_ptr< const ForbiddenIndex2DBoundForbiddenIndex2DBoundConstObserver
 
typedef agx::ref_ptr< const ForbiddenIndex2DBoundForbiddenIndex2DBoundConstRef
 
typedef agx::observer_ptr< ForbiddenIndex2DBoundForbiddenIndex2DBoundObserver
 
typedef agx::ref_ptr< ForbiddenIndex2DBoundForbiddenIndex2DBoundRef
 
typedef agx::observer_ptr< const ForbiddenIndexBoundForbiddenIndexBoundConstObserver
 
typedef agx::ref_ptr< const ForbiddenIndexBoundForbiddenIndexBoundConstRef
 
typedef agx::observer_ptr< ForbiddenIndexBoundForbiddenIndexBoundObserver
 
typedef agx::ref_ptr< ForbiddenIndexBoundForbiddenIndexBoundRef
 
typedef agx::observer_ptr< const GaussianHeightDataResamplerGaussianHeightDataResamplerConstObserver
 
typedef agx::ref_ptr< const GaussianHeightDataResamplerGaussianHeightDataResamplerConstRef
 
typedef agx::observer_ptr< GaussianHeightDataResamplerGaussianHeightDataResamplerObserver
 
typedef agx::ref_ptr< GaussianHeightDataResamplerGaussianHeightDataResamplerRef
 
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 agx::observer_ptr< const HeightDataResamplerHeightDataResamplerConstObserver
 
typedef agx::ref_ptr< const HeightDataResamplerHeightDataResamplerConstRef
 
typedef agx::observer_ptr< HeightDataResamplerHeightDataResamplerObserver
 
typedef agx::ref_ptr< HeightDataResamplerHeightDataResamplerRef
 
typedef agx::observer_ptr< const IForbiddenBoundIForbiddenBoundConstObserver
 
typedef agx::ref_ptr< const IForbiddenBoundIForbiddenBoundConstRef
 
typedef agx::observer_ptr< IForbiddenBoundIForbiddenBoundObserver
 
typedef agx::Vector< IForbiddenBoundObserverIForbiddenBoundObserverVector
 
typedef agx::VectorPOD< IForbiddenBound * > IForbiddenBoundPtrVector
 
typedef agx::ref_ptr< IForbiddenBoundIForbiddenBoundRef
 
typedef agx::Vector< IForbiddenBoundRefIForbiddenBoundRefVector
 
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
 
using PointDataVector = agx::Vector< PointData >
 Struct that holds surface point data gathered through surface tracing of the shovel surfaces.
 
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 RegressionPlanesParametersRegressionPlanesParametersConstObserver
 
typedef agx::ref_ptr< const RegressionPlanesParametersRegressionPlanesParametersConstRef
 
typedef agx::observer_ptr< RegressionPlanesParametersRegressionPlanesParametersObserver
 
typedef agx::ref_ptr< RegressionPlanesParametersRegressionPlanesParametersRef
 
typedef agx::observer_ptr< const ResampleInputDescriptionResampleInputDescriptionConstObserver
 
typedef agx::ref_ptr< const ResampleInputDescriptionResampleInputDescriptionConstRef
 
typedef agx::observer_ptr< ResampleInputDescriptionResampleInputDescriptionObserver
 
typedef agx::ref_ptr< ResampleInputDescriptionResampleInputDescriptionRef
 
typedef agx::observer_ptr< const ResampleOutputDescriptionResampleOutputDescriptionConstObserver
 
typedef agx::ref_ptr< const ResampleOutputDescriptionResampleOutputDescriptionConstRef
 
typedef agx::observer_ptr< ResampleOutputDescriptionResampleOutputDescriptionObserver
 
typedef agx::ref_ptr< ResampleOutputDescriptionResampleOutputDescriptionRef
 
typedef agx::observer_ptr< const ScopeReportSystemJobScopeReportSystemJobConstObserver
 
typedef agx::ref_ptr< const ScopeReportSystemJobScopeReportSystemJobConstRef
 
typedef agx::observer_ptr< ScopeReportSystemJobScopeReportSystemJobObserver
 
typedef agx::ref_ptr< ScopeReportSystemJobScopeReportSystemJobRef
 
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 ShovelSettingsShovelSettingsConstObserver
 
typedef agx::ref_ptr< const ShovelSettingsShovelSettingsConstRef
 
typedef agx::observer_ptr< ShovelSettingsShovelSettingsObserver
 
typedef agx::ref_ptr< ShovelSettingsShovelSettingsRef
 
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
 
using TangentPatchData = agx::Vector< TangentPatch >
 
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 TerrainJournalRecorderTerrainJournalRecorderConstObserver
 
typedef agx::ref_ptr< const TerrainJournalRecorderTerrainJournalRecorderConstRef
 
typedef agx::observer_ptr< TerrainJournalRecorderTerrainJournalRecorderObserver
 
typedef agx::ref_ptr< TerrainJournalRecorderTerrainJournalRecorderRef
 
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
 
using TerrainPtrVec = agx::VectorPOD< Terrain * >
 
typedef agx::VectorPOD< Terrain * > TerrainPtrVector
 
typedef agx::observer_ptr< const TerrainRasterizerTerrainRasterizerConstObserver
 
typedef agx::ref_ptr< const TerrainRasterizerTerrainRasterizerConstRef
 
typedef agx::observer_ptr< TerrainRasterizerTerrainRasterizerObserver
 
typedef agx::ref_ptr< TerrainRasterizerTerrainRasterizerRef
 
typedef agx::ref_ptr< TerrainTerrainRef
 
typedef agx::Vector< TerrainRefTerrainRefVector
 
typedef agx::observer_ptr< const TerrainWheelTerrainWheelConstObserver
 
typedef agx::ref_ptr< const TerrainWheelTerrainWheelConstRef
 
typedef agx::observer_ptr< const TerrainWheelDeformerTerrainWheelDeformerConstObserver
 
typedef agx::ref_ptr< const TerrainWheelDeformerTerrainWheelDeformerConstRef
 
typedef agx::observer_ptr< TerrainWheelDeformerTerrainWheelDeformerObserver
 
typedef agx::Vector< TerrainWheelDeformerObserverTerrainWheelDeformerObserverVector
 
typedef agx::VectorPOD< TerrainWheelDeformer * > TerrainWheelDeformerPtrVector
 
typedef agx::ref_ptr< TerrainWheelDeformerTerrainWheelDeformerRef
 
typedef agx::Vector< TerrainWheelDeformerRefTerrainWheelDeformerRefVector
 
typedef agx::observer_ptr< TerrainWheelTerrainWheelObserver
 
typedef agx::Vector< TerrainWheelObserverTerrainWheelObserverVector
 
typedef agx::observer_ptr< const TerrainWheelPlaneTerrainWheelPlaneConstObserver
 
typedef agx::ref_ptr< const TerrainWheelPlaneTerrainWheelPlaneConstRef
 
typedef agx::observer_ptr< TerrainWheelPlaneTerrainWheelPlaneObserver
 
typedef agx::ref_ptr< TerrainWheelPlaneTerrainWheelPlaneRef
 
typedef agx::VectorPOD< TerrainWheel * > TerrainWheelPtrVector
 
typedef agx::observer_ptr< const TerrainWheelQuantitiesTerrainWheelQuantitiesConstObserver
 
typedef agx::ref_ptr< const TerrainWheelQuantitiesTerrainWheelQuantitiesConstRef
 
typedef agx::observer_ptr< TerrainWheelQuantitiesTerrainWheelQuantitiesObserver
 
typedef agx::ref_ptr< TerrainWheelQuantitiesTerrainWheelQuantitiesRef
 
typedef agx::ref_ptr< TerrainWheelTerrainWheelRef
 
typedef agx::Vector< TerrainWheelRefTerrainWheelRefVector
 
typedef agx::observer_ptr< const TerrainWheelSettingsTerrainWheelSettingsConstObserver
 
typedef agx::ref_ptr< const TerrainWheelSettingsTerrainWheelSettingsConstRef
 
typedef agx::observer_ptr< TerrainWheelSettingsTerrainWheelSettingsObserver
 
typedef agx::ref_ptr< TerrainWheelSettingsTerrainWheelSettingsRef
 
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 > >
 
typedef agx::observer_ptr< const WheelDeformationPropertiesWheelDeformationPropertiesConstObserver
 
typedef agx::ref_ptr< const WheelDeformationPropertiesWheelDeformationPropertiesConstRef
 
typedef agx::observer_ptr< WheelDeformationPropertiesWheelDeformationPropertiesObserver
 
typedef agx::ref_ptr< WheelDeformationPropertiesWheelDeformationPropertiesRef
 

Enumerations

enum class  SURFACE_TRACE_MODE { INSIDE =0 , OUTSIDE =1 }
 

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 (const agx::Vec3 &normal, const 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.
 
agxCollide::LocalGeometryContactVector AGXTERRAIN_EXPORT computeAggregatePairContacts (agxTerrain::Shovel *shovel1, agxTerrain::Shovel *shovel2, agx::ContactMaterial *contactMaterial=nullptr, bool debugRenderContacts=false, agx::Real size=0.1)
 Computes the contact set between two aggregate in the cut top plane of shovel one.
 
AGXTERRAIN_EXPORT TangentPatchData computeInsideTangentPatches (agxTerrain::Shovel *shovel, size_t numPoints=200, size_t numPatches=20, bool debugRender=false)
 Compute the surface tangent patches over the whole surface in the angle interval from the cutting edge center to the top edge center.
 
AGXTERRAIN_EXPORT ShovelPlane computeShovelBottomPlane (agxTerrain::Shovel *shovel, bool debugRender=false)
 Compute the dominant cutting bottom plane using the backside surface structure.
 
AGXTERRAIN_EXPORT ShovelPlane computeShovelInsidePlane (agxTerrain::Shovel *shovel, bool debugRender=false)
 Compute the dominant inside plane using the inside surface structure.
 
AGXTERRAIN_EXPORT ShovelSurfaceVectors computeShovelSurfaceVectors (agxTerrain::Shovel *shovel, SURFACE_TRACE_MODE mode=SURFACE_TRACE_MODE::OUTSIDE, size_t numCrossSectionSamples=8, size_t numPointsPerSample=200, agx::Real angleInterval=agx::PI, bool debugRender=false)
 Compute the dominant shovel surface vectors such as normal and tangents for a shovel surface over a specific angle interval, starting with the vector from the mesh center to the cutting edge center point, traveling along the shovel surface towards the top edge until end angle internval.
 
AGXTERRAIN_EXPORT ToolShapeData createCustomBucketData (const std::vector< std::pair< agx::Vec3, agx::Real > > &sizes, bool createWalls=true)
 Utility function that creates a custom bucket from a list of box half-vectors and angles and associated edges and vectors.
 
AGXTERRAIN_EXPORT std::pair< Terrain *, agx::RigidBody * > createDynamicTerrainBedFromGeometries (size_t resolution, agxCollide::GeometryPtrVector bedGeometries, agx::Real edgeMargin=0.0, agx::Real bedOffset=0.0, bool resolutionAxisIsX=true)
 Create a dynamic terrain body from the given geometries.
 
AGXTERRAIN_EXPORT TerraincreateTerrainBedFromGeometries (size_t resolution, agxCollide::GeometryPtrVector bedGeometries, agx::Real edgeMargin=0.0, agx::Real bedOffset=0.0, bool resolutionAxisIsX=true)
 Create a terrain from the given geometries.
 
AGXTERRAIN_EXPORT TerraincreateTerrainBedFromGeometry (size_t resolution, agxCollide::Geometry *bedGeometry, agx::Real edgeMargin=0.0, agx::Real bedOffset=0.0, bool resolutionAxisIsX=true)
 Create a terrain from the given geometry.
 
AGXTERRAIN_EXPORT agxCollide::GeometryRefVector createVoxelCollisionGeometries (agx::RigidBodyRef parentBody, agx::FrameRef parentFrame, agx::Real tessellationLevel=0.5)
 Utility function that creates voxel collision geometries from a parent rigid body and frame.
 
agx::Real AGXTERRAIN_EXPORT estimateContactDepth (agx::ContactMaterial *contactMaterial, Terrain *terrain, agx::Real bodyMass, 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 Terrain *terrain, const Shovel *shovel, 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 std::tuple< bool, agx::Vec3findLineMeshesIntersection (const agx::Vec3 &point1, const agx::Vec3 &point2, const MeshTransformPairVector &meshes)
 
AGXTERRAIN_EXPORT std::tuple< bool, agx::Vec3findLineShovelIntersection (agxTerrain::Shovel *shovel, const agx::Vec3 &point1, const agx::Vec3 &point2, bool debugRender=false)
 
AGXTERRAIN_EXPORT bool findPlaneMeshCenterPoint (const agx::Vec3 &planePoint, const agx::Vec3 &planeNormal, agx::Real rayLength, const MeshTransformPairVector &meshes, agx::Vec3 &result)
 
AGXTERRAIN_EXPORT agx::MaterialfindShovelMaterial (agxTerrain::Shovel *shovel)
 Find the agx::Material on the first contact valid contact geometry in the specified shovel.
 
template<typename ContainerT >
void freeContainerMemory (ContainerT &container)
 Free the memory held by the given container by swapping it with a default-constructed instance.
 
agx::Real getAverageContactForce (agxCollide::GeometryContactPtrVector matches, bool print=false)
 
static const std::vector< agxRender::Color > & getDebugColorTriplets (std::size_t k)
 
AGXTERRAIN_EXPORT agxCollide::GeometrygetFirstContactValidGeometry (const agx::RigidBody *shovelBody)
 Get first contact valid geometry in the shovel rigid body for contact.
 
AGXTERRAIN_EXPORT bool isTriangleFirstInRay (const agx::Vec3 &bottom, const agx::Vec3 &top, const agxCollide::Mesh::Triangle &triangle, const MeshTransformPairVector &meshes)
 
AGXTERRAIN_EXPORT bool isValidContactGeometry (agxCollide::Geometry *geometry)
 Checks if the specified geometry is valid for creating aggregate contacts against.
 
AGXTERRAIN_EXPORT void setShovelAggregateContactMaterialFromParticles (agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, Shovel *shovel)
 
AGXTERRAIN_EXPORT void setShovelAggregateContactMaterialProperties (agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, const agx::RealVector &weights, Terrain *terrain, Shovel *shovel)
 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 multiple soil type configuration in the terrain.
 
AGXTERRAIN_EXPORT void setShovelExplicitShovelContactMaterial (agx::ContactMaterial *shovelAggregateCM, agx::Real contactArea, const agx::ContactMaterial *sourceMaterial, agx::Real excavationStiffnessMultiplier)
 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, Terrain *terrain, Shovel *shovel, agx::Vec3Vector &points)
 Configure the contact material that is to be used in shovel-aggregate contacts.
 
AGXTERRAIN_EXPORT std::vector< PointDatatraceShovelActiveShapeOutline (agxTerrain::Shovel *shovel, size_t numSamplingPoints=200, bool debugRender=false)
 This function traces the inner outline of the specified Shovel's inner body ActiveZone to find the internal cross section geometry outline.
 
AGXTERRAIN_EXPORT SurfacePointData traceShovelSurfaceOutline (agxTerrain::Shovel *shovel, SURFACE_TRACE_MODE mode=SURFACE_TRACE_MODE::OUTSIDE, size_t numCrossSectionSamples=4, size_t numPointsPerSample=200, agx::Real angleInterval=agx::PI, bool useCutTopAsMidPoint=false, bool debugRender=false)
 Trace the surface outline of a shovel with various cross sectional ray tracing samples over a specific angle interval, starting with the vector from the mesh center to the cutting edge center point, traveling along the shovel surface towards the top edge until end angle internval.
 

Variables

const agxRender::Color DEBUG_COLOR_FFP_HF_ALIGNMENT_CHECK = agxRender::Color::LightSkyBlue()
 
const agxRender::Color DEBUG_COLOR_MOVE_FORCE_FEEDBACK_HEIGHTFIELD = agxRender::Color::AliceBlue()
 
const agxRender::Color DEBUG_COLOR_REAR_AND_FRONT_ANGLES = agxRender::Color::LightGoldenrod()
 
const std::vector< agxRender::ColorDEBUG_COLOR_TRIPLET_FORCE_FEEDBACK_HEIGHTFIELD
 
const std::vector< std::vector< agxRender::Color > > DEBUG_COLOR_TRIPLETS
 
const agx::Real DEBUG_LINE_LENGTH = 3.0
 
const agx::Real DEBUG_LINE_LENGTH_LONG = 3.25
 
const agx::Real DEBUG_LINE_LENGTH_SHORT = 2.0
 
const agx::Real DEBUG_LINE_LENGTH_VERY_SHORT = 1.0
 
const agx::Real DEBUG_LINE_RADIUS = 0.01
 
const agx::Real DEBUG_LINE_RADIUS_THICK = 0.03
 
const agx::Real DEBUG_LINE_RADIUS_THIN = 0.0075
 
const agx::Real DEBUG_LINE_RADIUS_VERY_THICK = 0.05
 
const agx::Real DEBUG_LINE_RADIUS_VERY_THIN = 0.005
 
const agx::Real DEBUG_SPHERE_RADIUS = 0.03
 

Detailed Description

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

Typedef Documentation

◆ ActiveZoneConstObserver

Definition at line 46 of file ActiveZone.h.

◆ ActiveZoneConstRef

Definition at line 46 of file ActiveZone.h.

◆ ActiveZoneObserver

◆ ActiveZoneObserverVector

◆ ActiveZonePtrVector

Definition at line 47 of file ActiveZone.h.

◆ ActiveZoneRef

Definition at line 46 of file ActiveZone.h.

◆ ActiveZoneRefVector

◆ ActiveZoneShapes

◆ AdvancedShovelSettingsConstObserver

◆ AdvancedShovelSettingsConstRef

◆ AdvancedShovelSettingsObserver

◆ AdvancedShovelSettingsRef

◆ AggregateContactGeneratorConstObserver

◆ AggregateContactGeneratorConstRef

◆ AggregateContactGeneratorObserver

◆ AggregateContactGeneratorRef

◆ BasicGridConstObserver

Definition at line 66 of file Grid.h.

◆ BasicGridConstRef

Definition at line 66 of file Grid.h.

◆ BasicGridObserver

Definition at line 66 of file Grid.h.

◆ BasicGridRef

Definition at line 66 of file Grid.h.

◆ BilinearHeightDataResamplerConstObserver

◆ BilinearHeightDataResamplerConstRef

◆ BilinearHeightDataResamplerObserver

◆ BilinearHeightDataResamplerRef

◆ ClamShellBucketConstObserver

◆ ClamShellBucketConstRef

◆ ClamShellBucketObserver

◆ ClamShellBucketObserverVector

◆ ClamShellBucketPtrVector

◆ ClamShellBucketRef

◆ ClamShellBucketRefVector

◆ ClamShellDebugRenderSettingsConstObserver

typedef agx::observer_ptr< const ClamShellDebugRenderSettings > agxTerrain::ClamShellDebugRenderSettingsConstObserver

Definition at line 36 of file ClamShellBucket.h.

◆ ClamShellDebugRenderSettingsConstRef

typedef agx::ref_ptr< const ClamShellDebugRenderSettings > agxTerrain::ClamShellDebugRenderSettingsConstRef

Definition at line 36 of file ClamShellBucket.h.

◆ ClamShellDebugRenderSettingsObserver

Definition at line 36 of file ClamShellBucket.h.

◆ ClamShellDebugRenderSettingsRef

typedef agx::ref_ptr< ClamShellDebugRenderSettings > agxTerrain::ClamShellDebugRenderSettingsRef

Definition at line 36 of file ClamShellBucket.h.

◆ CompactionControllerConstObserver

◆ CompactionControllerConstRef

◆ CompactionControllerObserver

◆ CompactionControllerObserverVector

◆ CompactionControllerPtrVector

◆ CompactionControllerRef

◆ CompactionControllerRefVector

◆ CompositeShovelConstObserver

◆ CompositeShovelConstRef

◆ CompositeShovelObserver

◆ CompositeShovelObserverVector

◆ CompositeShovelPtrVector

◆ CompositeShovelRef

◆ CompositeShovelRefVector

◆ DeformControllerConstObserver

◆ DeformControllerConstRef

◆ DeformControllerObserver

◆ DeformControllerRef

◆ DeformerActiveZoneConstObserver

◆ DeformerActiveZoneConstRef

◆ DeformerActiveZoneObserver

◆ DeformerActiveZoneRef

◆ DeformerCollectionConstObserver

◆ DeformerCollectionConstRef

◆ DeformerCollectionObserver

◆ DeformerCollectionRef

◆ ExternalDeformerConstObserver

◆ ExternalDeformerConstRef

◆ ExternalDeformerObserver

◆ ExternalDeformerObserverVector

◆ ExternalDeformerPtrVector

◆ ExternalDeformerRef

◆ ExternalDeformerRefVector

◆ ForbiddenBoundConstObserver

◆ ForbiddenBoundConstRef

◆ ForbiddenBoundObserver

◆ ForbiddenBoundRef

◆ ForbiddenIndex2DBoundConstObserver

◆ ForbiddenIndex2DBoundConstRef

◆ ForbiddenIndex2DBoundObserver

◆ ForbiddenIndex2DBoundRef

◆ ForbiddenIndexBoundConstObserver

◆ ForbiddenIndexBoundConstRef

◆ ForbiddenIndexBoundObserver

◆ ForbiddenIndexBoundRef

◆ GaussianHeightDataResamplerConstObserver

◆ GaussianHeightDataResamplerConstRef

◆ GaussianHeightDataResamplerObserver

◆ GaussianHeightDataResamplerRef

◆ GeometryContactTimeTable

◆ GeometryHashSet

◆ GeometryLocalContactTable

◆ GridConstObserver

Definition at line 67 of file Grid.h.

◆ GridConstRef

Definition at line 67 of file Grid.h.

◆ GridObserver

Definition at line 67 of file Grid.h.

◆ GridRef

Definition at line 67 of file Grid.h.

◆ HeightDataResamplerConstObserver

◆ HeightDataResamplerConstRef

◆ HeightDataResamplerObserver

◆ HeightDataResamplerRef

◆ IForbiddenBoundConstObserver

◆ IForbiddenBoundConstRef

◆ IForbiddenBoundObserver

◆ IForbiddenBoundObserverVector

◆ IForbiddenBoundPtrVector

◆ IForbiddenBoundRef

◆ IForbiddenBoundRefVector

◆ 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 68 of file Terrain.h.

◆ ParticleWeightPair

Definition at line 63 of file Terrain.h.

◆ ParticleWeightPairVector

◆ PointDataVector

Struct that holds surface point data gathered through surface tracing of the shovel surfaces.

Each PointDataVector held corresponds to a specific cross-sectional surface trace along the shovel surface.

Definition at line 73 of file TerrainToolUtils.h.

◆ PrimaryActiveZoneConstObserver

◆ PrimaryActiveZoneConstRef

◆ PrimaryActiveZoneObserver

◆ PrimaryActiveZoneRef

◆ RegressionPlanesParametersConstObserver

◆ RegressionPlanesParametersConstRef

◆ RegressionPlanesParametersObserver

◆ RegressionPlanesParametersRef

◆ ResampleInputDescriptionConstObserver

◆ ResampleInputDescriptionConstRef

◆ ResampleInputDescriptionObserver

◆ ResampleInputDescriptionRef

◆ ResampleOutputDescriptionConstObserver

◆ ResampleOutputDescriptionConstRef

◆ ResampleOutputDescriptionObserver

◆ ResampleOutputDescriptionRef

◆ ScopeReportSystemJobConstObserver

◆ ScopeReportSystemJobConstRef

◆ ScopeReportSystemJobObserver

◆ ScopeReportSystemJobRef

◆ 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 46 of file Shovel.h.

◆ ShovelConstRef

Definition at line 46 of file Shovel.h.

◆ ShovelObserver

Definition at line 46 of file Shovel.h.

◆ ShovelObserverVector

◆ ShovelPtrVector

Definition at line 47 of file Shovel.h.

◆ ShovelRef

Definition at line 46 of file Shovel.h.

◆ ShovelRefVector

Definition at line 47 of file Shovel.h.

◆ ShovelSettingsConstObserver

◆ ShovelSettingsConstRef

◆ ShovelSettingsObserver

◆ ShovelSettingsRef

◆ SoilParticleAggregateConstObserver

◆ SoilParticleAggregateConstRef

◆ SoilParticleAggregateObserver

◆ SoilParticleAggregateObserverVector

◆ SoilParticleAggregatePtrVector

◆ SoilParticleAggregateRef

◆ SoilParticleAggregateRefVector

◆ SoilParticleArray

◆ SoilParticlePtr

◆ SoilParticlePtrVector

◆ SoilParticleVector

◆ SoilPenetrationResistanceConstObserver

◆ SoilPenetrationResistanceConstRef

◆ SoilPenetrationResistanceObserver

◆ SoilPenetrationResistanceRef

◆ SoilSimulationInterfaceConstObserver

◆ SoilSimulationInterfaceConstRef

◆ SoilSimulationInterfaceObserver

◆ SoilSimulationInterfaceRef

◆ SoilWedgeVector

Definition at line 127 of file SoilWedge.h.

◆ TangentPatchData

Definition at line 41 of file TerrainToolUtils.h.

◆ TerrainConstObserver

Definition at line 71 of file Terrain.h.

◆ TerrainConstRef

Definition at line 71 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 69 of file Terrain.h.

◆ TerrainIndexToDepthTable

◆ TerrainJournalRecorderConstObserver

◆ TerrainJournalRecorderConstRef

◆ TerrainJournalRecorderObserver

◆ TerrainJournalRecorderRef

◆ TerrainMassOccupancyControllerConstObserver

◆ TerrainMassOccupancyControllerConstRef

◆ TerrainMassOccupancyControllerObserver

◆ TerrainMassOccupancyControllerObserverVector

◆ TerrainMassOccupancyControllerPtrVector

◆ TerrainMassOccupancyControllerRef

◆ TerrainMassOccupancyControllerRefVector

◆ TerrainMaterialConstObserver

◆ TerrainMaterialConstRef

◆ TerrainMaterialObserver

◆ TerrainMaterialRef

◆ TerrainObserver

Definition at line 71 of file Terrain.h.

◆ TerrainObserverVector

◆ TerrainPagerConstObserver

◆ TerrainPagerConstRef

Definition at line 39 of file TerrainPager.h.

◆ TerrainPagerObserver

◆ TerrainPagerObserverVector

◆ TerrainPagerPtrVector

◆ TerrainPagerRef

Definition at line 39 of file TerrainPager.h.

◆ TerrainPagerRefVector

◆ TerrainPropertiesConstObserver

◆ TerrainPropertiesConstRef

◆ TerrainPropertiesObserver

◆ TerrainPropertiesRef

◆ TerrainPtrVec

Definition at line 40 of file ExternalDeformer.h.

◆ TerrainPtrVector

Definition at line 72 of file Terrain.h.

◆ TerrainRasterizerConstObserver

◆ TerrainRasterizerConstRef

◆ TerrainRasterizerObserver

◆ TerrainRasterizerRef

◆ TerrainRef

Definition at line 71 of file Terrain.h.

◆ TerrainRefVector

Definition at line 72 of file Terrain.h.

◆ TerrainWheelConstObserver

◆ TerrainWheelConstRef

Definition at line 60 of file TerrainWheel.h.

◆ TerrainWheelDeformerConstObserver

◆ TerrainWheelDeformerConstRef

◆ TerrainWheelDeformerObserver

◆ TerrainWheelDeformerObserverVector

◆ TerrainWheelDeformerPtrVector

◆ TerrainWheelDeformerRef

◆ TerrainWheelDeformerRefVector

◆ TerrainWheelObserver

◆ TerrainWheelObserverVector

◆ TerrainWheelPlaneConstObserver

◆ TerrainWheelPlaneConstRef

◆ TerrainWheelPlaneObserver

◆ TerrainWheelPlaneRef

◆ TerrainWheelPtrVector

◆ TerrainWheelQuantitiesConstObserver

◆ TerrainWheelQuantitiesConstRef

◆ TerrainWheelQuantitiesObserver

◆ TerrainWheelQuantitiesRef

◆ TerrainWheelRef

Definition at line 60 of file TerrainWheel.h.

◆ TerrainWheelRefVector

◆ TerrainWheelSettingsConstObserver

◆ TerrainWheelSettingsConstRef

◆ TerrainWheelSettingsObserver

◆ TerrainWheelSettingsRef

◆ 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 63 of file Grid.h.

◆ VoxelHashSet

◆ VoxelIndexSet

Definition at line 62 of file Terrain.h.

◆ VoxelStressTable

◆ WedgePlaneVector

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

Definition at line 44 of file ActiveZone.h.

◆ WheelDeformationPropertiesConstObserver

◆ WheelDeformationPropertiesConstRef

◆ WheelDeformationPropertiesObserver

◆ WheelDeformationPropertiesRef

Enumeration Type Documentation

◆ SURFACE_TRACE_MODE

enum class agxTerrain::SURFACE_TRACE_MODE
strong
Enumerator
INSIDE 
OUTSIDE 

Definition at line 107 of file TerrainToolUtils.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 ( const agx::Vec3 normal,
const 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.

◆ computeAggregatePairContacts()

agxCollide::LocalGeometryContactVector AGXTERRAIN_EXPORT agxTerrain::computeAggregatePairContacts ( agxTerrain::Shovel shovel1,
agxTerrain::Shovel shovel2,
agx::ContactMaterial contactMaterial = nullptr,
bool  debugRenderContacts = false,
agx::Real  size = 0.1 
)

Computes the contact set between two aggregate in the cut top plane of shovel one.

◆ computeInsideTangentPatches()

AGXTERRAIN_EXPORT TangentPatchData agxTerrain::computeInsideTangentPatches ( agxTerrain::Shovel shovel,
size_t  numPoints = 200,
size_t  numPatches = 20,
bool  debugRender = false 
)

Compute the surface tangent patches over the whole surface in the angle interval from the cutting edge center to the top edge center.

Parameters
shovel- the specific shovel used for computation
numPoints- the number of points used in total for the surface tracing
numPatches- the number of surface patches that should be used
debugRender- true if debugrendring should be enabled, false otherwise

◆ computeShovelBottomPlane()

AGXTERRAIN_EXPORT ShovelPlane agxTerrain::computeShovelBottomPlane ( agxTerrain::Shovel shovel,
bool  debugRender = false 
)

Compute the dominant cutting bottom plane using the backside surface structure.

Used for determining shovel deformer direction.

Parameters
shovel- the specific shovel used for computation
debugRender- true if debugrendring should be enabled, false otherwise

◆ computeShovelInsidePlane()

AGXTERRAIN_EXPORT ShovelPlane agxTerrain::computeShovelInsidePlane ( agxTerrain::Shovel shovel,
bool  debugRender = false 
)

Compute the dominant inside plane using the inside surface structure.

Used for determining shovel deformer direction.

Parameters
shovel- the specific shovel used for computation
debugRender- true if debugrendring should be enabled, false otherwise

◆ computeShovelSurfaceVectors()

AGXTERRAIN_EXPORT ShovelSurfaceVectors agxTerrain::computeShovelSurfaceVectors ( agxTerrain::Shovel shovel,
SURFACE_TRACE_MODE  mode = SURFACE_TRACE_MODE::OUTSIDE,
size_t  numCrossSectionSamples = 8,
size_t  numPointsPerSample = 200,
agx::Real  angleInterval = agx::PI,
bool  debugRender = false 
)

Compute the dominant shovel surface vectors such as normal and tangents for a shovel surface over a specific angle interval, starting with the vector from the mesh center to the cutting edge center point, traveling along the shovel surface towards the top edge until end angle internval.

Parameters
mode- specify if the traced surface should be inside or outside the shovel (default: OUTSIDE)
numCrossSectionSamples- specify the number of cross sectional slices
numPointsPerSample- specify the number of points per each cross sectional slice
angleInterval- the specific angle interval to use for the tracing for each cross sectional sample
debugRender- true if debug rendering should be enabled, false otherwise
Returns
the SurfacePointData containing all the cross sectional samples

◆ createCustomBucketData()

AGXTERRAIN_EXPORT ToolShapeData agxTerrain::createCustomBucketData ( const std::vector< std::pair< agx::Vec3, agx::Real > > &  sizes,
bool  createWalls = true 
)

Utility function that creates a custom bucket from a list of box half-vectors and angles and associated edges and vectors.

The list vectors need to be in the following format:

[ (Vec3(thicknes, width, length), angle), (Vec3(thicknes, width, length), angle), ... ].

The boxes will be placed at the end of each box segement in the [x, z] plane with a rotation in the Y-axis specified by the angle element.

Parameters
sizes- vector of pairs of agx::Vec3 half extents of a box and a rotational angle.
createWalls- true if walls should be created on the side of the bucket geometry, false otherwise.
Returns
a ToolShapeData structure with the body, lines and vectors needed to create a shovel.

◆ createDynamicTerrainBedFromGeometries()

AGXTERRAIN_EXPORT std::pair< Terrain *, agx::RigidBody * > agxTerrain::createDynamicTerrainBedFromGeometries ( size_t  resolution,
agxCollide::GeometryPtrVector  bedGeometries,
agx::Real  edgeMargin = 0.0,
agx::Real  bedOffset = 0.0,
bool  resolutionAxisIsX = true 
)

Create a dynamic terrain body from the given geometries.

The created terrain will be of the given resolution along the designated local resolution axis (see the resolutionAxisIsX parameter). The method calculates a common bound from the given geometries and then shrinks it in the x-y plane by the given edgeMargin. This common bound along with the given resolution then results in the created terrains elementSize. The surface height field and minimum heights are then fitted to the given geometries within the local x-y region designated by the calculated bound. The terrain is inserted into a dynamic rigid body where the mass and inertia is syncronized with the terrain mass data.

Parameters
resolution- the number of sample points along the resolution axis.
bedGeometries- a GeometryPtrVector of the bed geometries to fit heights and minimum heights against.
edgeMargin- The calculated bound of the terrain will be adjusted by this in the local x-y plane. Can be adjusted by the user to fit the terrain to geometries better. Default: 0.0
bedOffset- The created terrain local z-position will be offset by this. Can be used to prevent graphical glitches such as z-fighting. Default: 0.0.
resolutionAxisIsX- default: true, implying the given resolution is along the local x-axis. If false, the local y-axis is used instead to determine the number of sample points.
Returns
tuple with the generated bed and the dynamic body where the terrain is inserted into.

◆ createTerrainBedFromGeometries()

AGXTERRAIN_EXPORT Terrain * agxTerrain::createTerrainBedFromGeometries ( size_t  resolution,
agxCollide::GeometryPtrVector  bedGeometries,
agx::Real  edgeMargin = 0.0,
agx::Real  bedOffset = 0.0,
bool  resolutionAxisIsX = true 
)

Create a terrain from the given geometries.

The created terrain will be of the given resolution along the designated local resolution axis (see the resolutionAxisIsX parameter). The method calculates a common bound from the given geometries and then shrinks it in the x-y plane by the given edgeMargin. This common bound along with the given resolution then results in the created terrains elementSize. The surface height field and minimum heights are then fitted to the given geometries within the local x-y region designated by the calculated bound. The terrain can then be attached by adding its geometry (terrain->getGeometry()) to the same RigidBody or Assembly that the geometries were part of.

Parameters
resolution- the number of sample points along the resolution axis.
bedGeometries- a GeometryPtrVector of the bed geometries to fit heights and minimum heights against.
edgeMargin- The calculated bound of the terrain will be adjusted by this in the local x-y plane. Can be adjusted by the user to fit the terrain to geometries better. Default: 0.0
bedOffset- The created terrain local z-position will be offset by this. Can be used to prevent graphical glitches such as z-fighting. Default: 0.0.
resolutionAxisIsX- default: true, implying the given resolution is along the local x-axis. If false, the local y-axis is used instead to determine the number of sample points.

◆ createTerrainBedFromGeometry()

AGXTERRAIN_EXPORT Terrain * agxTerrain::createTerrainBedFromGeometry ( size_t  resolution,
agxCollide::Geometry bedGeometry,
agx::Real  edgeMargin = 0.0,
agx::Real  bedOffset = 0.0,
bool  resolutionAxisIsX = true 
)

Create a terrain from the given geometry.

The created terrain will be of the given resolution along the designated local resolution axis (see the resolutionAxisIsX parameter). The method calculates a common bound from the given geometries and then shrinks it in the x-y plane by the given edgeMargin. This common bound along with the given resolution then results in the created terrains elementSize. The surface height field and minimum heights are then fitted to the given geometries within the local x-y region designated by the calculated bound. The terrain can then be attached by adding its geometry (terrain->getGeometry()) to the same RigidBody or Assembly that the geometries were part of.

Parameters
resolution- the number of sample points along the resolution axis.
bedGeometry- a geometry to fit heights and minimum heights against.
edgeMargin- The calculated bound of the terrain will be adjusted by this in the local x-y plane. Can be adjusted by the user to fit the terrain to a geometry better. Default: 0.0
bedOffset- The created terrains local z-position will be offset by this. Can be used to prevent graphical glitches such as z-fighting. Default: 0.0.
resolutionAxisIsX- default: true, implying the given resolution is along the local x-axis. If false, the local y-axis is used instead to determine the number of sample points.

◆ createVoxelCollisionGeometries()

AGXTERRAIN_EXPORT agxCollide::GeometryRefVector agxTerrain::createVoxelCollisionGeometries ( agx::RigidBodyRef  parentBody,
agx::FrameRef  parentFrame,
agx::Real  tessellationLevel = 0.5 
)

Utility function that creates voxel collision geometries from a parent rigid body and frame.

Initializes terrainTool <-> terrain voxel collision geometries.

Parameters
parentBody- Rigid body owning the geometries.
parentFrame- Frame to which new geometries will be attached.
tessellationLevel- Mesh detail level (0.5 = default).
Returns
vector of voxel geometry references.

◆ estimateContactDepth()

agx::Real AGXTERRAIN_EXPORT agxTerrain::estimateContactDepth ( agx::ContactMaterial contactMaterial,
Terrain terrain,
agx::Real  bodyMass,
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 Terrain terrain,
const Shovel shovel,
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
terrain- The terrain the shovel is digging in.
shovel- the shovel the aggregate is in.
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.

◆ findLineMeshesIntersection()

AGXTERRAIN_EXPORT std::tuple< bool, agx::Vec3 > agxTerrain::findLineMeshesIntersection ( const agx::Vec3 point1,
const agx::Vec3 point2,
const MeshTransformPairVector meshes 
)

◆ findLineShovelIntersection()

AGXTERRAIN_EXPORT std::tuple< bool, agx::Vec3 > agxTerrain::findLineShovelIntersection ( agxTerrain::Shovel shovel,
const agx::Vec3 point1,
const agx::Vec3 point2,
bool  debugRender = false 
)

◆ findPlaneMeshCenterPoint()

AGXTERRAIN_EXPORT bool agxTerrain::findPlaneMeshCenterPoint ( const agx::Vec3 planePoint,
const agx::Vec3 planeNormal,
agx::Real  rayLength,
const MeshTransformPairVector meshes,
agx::Vec3 result 
)

◆ 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.

◆ freeContainerMemory()

template<typename ContainerT >
void agxTerrain::freeContainerMemory ( ContainerT &  container)

Free the memory held by the given container by swapping it with a default-constructed instance.

This is required when an application is using a different system allocator than the AGX Dynamics shared library and a container is passed by-value from AGX Dynamics to the application. When the container goes out of scope the application's system allocator will try to deallocate the container's buffer, a buffer that was allocated with AGX Dynamics' system allocator. This will either cause memory errors or a crash. By first calling freeContainerMemory the buffer will be freed inside AGX Dynamics, with AGX Dynamics' system allocator, and the application's system allocator will not need to do anything.

◆ getAverageContactForce()

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

◆ getDebugColorTriplets()

static const std::vector< agxRender::Color > & agxTerrain::getDebugColorTriplets ( std::size_t  k)
inlinestatic

Definition at line 63 of file TerrainWheelDebug.h.

References DEBUG_COLOR_TRIPLETS, LOGGER_ENDL, and LOGGER_WARNING.

◆ 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.

◆ isTriangleFirstInRay()

AGXTERRAIN_EXPORT bool agxTerrain::isTriangleFirstInRay ( const agx::Vec3 bottom,
const agx::Vec3 top,
const agxCollide::Mesh::Triangle triangle,
const MeshTransformPairVector meshes 
)

◆ 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.

◆ setShovelAggregateContactMaterialFromParticles()

AGXTERRAIN_EXPORT void agxTerrain::setShovelAggregateContactMaterialFromParticles ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
Shovel shovel 
)

◆ setShovelAggregateContactMaterialProperties()

AGXTERRAIN_EXPORT void agxTerrain::setShovelAggregateContactMaterialProperties ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
const agx::RealVector weights,
Terrain terrain,
Shovel shovel 
)

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 multiple soil type 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.
terrain- the terrain from which to fetch terrain material properties for the constructed shovel-aggregate contact material.
shovel- the shovel which is interacting with the aggregate.

◆ setShovelExplicitShovelContactMaterial()

AGXTERRAIN_EXPORT void agxTerrain::setShovelExplicitShovelContactMaterial ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
const agx::ContactMaterial sourceMaterial,
agx::Real  excavationStiffnessMultiplier 
)

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.
excavationStiffnessMultiplier- The excavation stiffness multiplier to be used in the explicit contacts.

◆ setupShovelAggregateContactMaterial()

AGXTERRAIN_EXPORT bool agxTerrain::setupShovelAggregateContactMaterial ( agx::ContactMaterial shovelAggregateCM,
agx::Real  contactArea,
Shovel::ExcavationMode  mode,
Terrain terrain,
Shovel shovel,
agx::Vec3Vector points 
)

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.
terrain- The terrain which the aggregate comes from.
shovel- The shovel that interacts with the aggregate.
Returns
true if the shovelAggregateCM was configured successfully, false otherwise.

◆ traceShovelActiveShapeOutline()

AGXTERRAIN_EXPORT std::vector< PointData > agxTerrain::traceShovelActiveShapeOutline ( agxTerrain::Shovel shovel,
size_t  numSamplingPoints = 200,
bool  debugRender = false 
)

This function traces the inner outline of the specified Shovel's inner body ActiveZone to find the internal cross section geometry outline.

The returned data is in the local shape coordinate system.

Parameters
shovel- the specified shovel to trace.
numSamplingPoints- the number of points to use in the sampling.
debugRender- true if the outline points should be debug rendered or not.

◆ traceShovelSurfaceOutline()

AGXTERRAIN_EXPORT SurfacePointData agxTerrain::traceShovelSurfaceOutline ( agxTerrain::Shovel shovel,
SURFACE_TRACE_MODE  mode = SURFACE_TRACE_MODE::OUTSIDE,
size_t  numCrossSectionSamples = 4,
size_t  numPointsPerSample = 200,
agx::Real  angleInterval = agx::PI,
bool  useCutTopAsMidPoint = false,
bool  debugRender = false 
)

Trace the surface outline of a shovel with various cross sectional ray tracing samples over a specific angle interval, starting with the vector from the mesh center to the cutting edge center point, traveling along the shovel surface towards the top edge until end angle internval.

Parameters
shovel- the specific shovel to trace
mode- specify if the traced surface should be inside or outside the shovel (default: OUTSIDE)
numCrossSectionSamples- specify the number of cross sectional slices
numPointsPerSample- specify the number of points per each cross sectional slice
angleInterval- the specific angle interval to use for the tracing for each cross sectional sample
useCutTopAsMidPoint- true if the middle point of the cutting edge <-> top plane should be used as the ray start/end point instead of the mesh center, false otherwise
debugRender- true if debug rendering should be enabled, false otherwise
Returns
the SurfacePointData containing all the cross sectional samples

Variable Documentation

◆ DEBUG_COLOR_FFP_HF_ALIGNMENT_CHECK

const agxRender::Color agxTerrain::DEBUG_COLOR_FFP_HF_ALIGNMENT_CHECK = agxRender::Color::LightSkyBlue()
inline

Definition at line 146 of file TerrainWheelDebug.h.

◆ DEBUG_COLOR_MOVE_FORCE_FEEDBACK_HEIGHTFIELD

const agxRender::Color agxTerrain::DEBUG_COLOR_MOVE_FORCE_FEEDBACK_HEIGHTFIELD = agxRender::Color::AliceBlue()
inline

Definition at line 138 of file TerrainWheelDebug.h.

◆ DEBUG_COLOR_REAR_AND_FRONT_ANGLES

const agxRender::Color agxTerrain::DEBUG_COLOR_REAR_AND_FRONT_ANGLES = agxRender::Color::LightGoldenrod()
inline

Definition at line 141 of file TerrainWheelDebug.h.

◆ DEBUG_COLOR_TRIPLET_FORCE_FEEDBACK_HEIGHTFIELD

const std::vector<agxRender::Color> agxTerrain::DEBUG_COLOR_TRIPLET_FORCE_FEEDBACK_HEIGHTFIELD
inline
Initial value:
= {
static agxRender::Color LimeGreen()
Definition: Color.h:209
static agxRender::Color Lime()
Definition: Color.h:247

Definition at line 134 of file TerrainWheelDebug.h.

◆ DEBUG_COLOR_TRIPLETS

const std::vector<std::vector<agxRender::Color> > agxTerrain::DEBUG_COLOR_TRIPLETS
inline
Initial value:
= {
}
static agxRender::Color LightGray()
Definition: Color.h:302
static agxRender::Color MediumSeaGreen()
Definition: Color.h:292
static agxRender::Color Goldenrod()
Definition: Color.h:272
static agxRender::Color OrangeRed()
Definition: Color.h:178
static agxRender::Color PaleTurquoise()
Definition: Color.h:285
static agxRender::Color PowderBlue()
Definition: Color.h:245
static agxRender::Color SeaGreen()
Definition: Color.h:269
static agxRender::Color AliceBlue()
Definition: Color.h:177
static agxRender::Color Chocolate()
Definition: Color.h:309
static agxRender::Color Blue()
Definition: Color.h:266
static agxRender::Color LightGoldenrodYellow()
Definition: Color.h:308
static agxRender::Color Cyan()
Definition: Color.h:237
static agxRender::Color LightSalmon()
Definition: Color.h:179
static agxRender::Color Gainsboro()
Definition: Color.h:275
static agxRender::Color BlueViolet()
Definition: Color.h:307
static agxRender::Color Teal()
Definition: Color.h:218
static agxRender::Color DarkCyan()
Definition: Color.h:198
static agxRender::Color Wheat()
Definition: Color.h:171
static agxRender::Color PaleGreen()
Definition: Color.h:175
static agxRender::Color LightPink()
Definition: Color.h:239
static agxRender::Color Peru()
Definition: Color.h:276
static agxRender::Color MediumVioletRed()
Definition: Color.h:248
static agxRender::Color LightSeaGreen()
Definition: Color.h:230
static agxRender::Color Tomato()
Definition: Color.h:267
static agxRender::Color Gray()
Definition: Color.h:288
static agxRender::Color LightBlue()
Definition: Color.h:279
static agxRender::Color Magenta()
Definition: Color.h:265
static agxRender::Color SlateBlue()
Definition: Color.h:180
static agxRender::Color PeachPuff()
Definition: Color.h:211
static agxRender::Color SlateGray()
Definition: Color.h:277
static agxRender::Color Coral()
Definition: Color.h:311
static agxRender::Color Green()
Definition: Color.h:233
static agxRender::Color MediumOrchid()
Definition: Color.h:235
static agxRender::Color LightGreen()
Definition: Color.h:287
static agxRender::Color SteelBlue()
Definition: Color.h:281
static agxRender::Color RoyalBlue()
Definition: Color.h:284
static agxRender::Color LightSkyBlue()
Definition: Color.h:241
static agxRender::Color Thistle()
Definition: Color.h:238
static agxRender::Color Purple()
Definition: Color.h:213
static agxRender::Color Lavender()
Definition: Color.h:252

Definition at line 33 of file TerrainWheelDebug.h.

Referenced by getDebugColorTriplets().

◆ DEBUG_LINE_LENGTH

const agx::Real agxTerrain::DEBUG_LINE_LENGTH = 3.0
inline

Definition at line 102 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_LENGTH_LONG

const agx::Real agxTerrain::DEBUG_LINE_LENGTH_LONG = 3.25
inline

Definition at line 103 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_LENGTH_SHORT

const agx::Real agxTerrain::DEBUG_LINE_LENGTH_SHORT = 2.0
inline

Definition at line 101 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_LENGTH_VERY_SHORT

const agx::Real agxTerrain::DEBUG_LINE_LENGTH_VERY_SHORT = 1.0
inline

Definition at line 100 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_RADIUS

const agx::Real agxTerrain::DEBUG_LINE_RADIUS = 0.01
inline

Definition at line 97 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_RADIUS_THICK

const agx::Real agxTerrain::DEBUG_LINE_RADIUS_THICK = 0.03
inline

Definition at line 98 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_RADIUS_THIN

const agx::Real agxTerrain::DEBUG_LINE_RADIUS_THIN = 0.0075
inline

Definition at line 96 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_RADIUS_VERY_THICK

const agx::Real agxTerrain::DEBUG_LINE_RADIUS_VERY_THICK = 0.05
inline

Definition at line 99 of file TerrainWheelDebug.h.

◆ DEBUG_LINE_RADIUS_VERY_THIN

const agx::Real agxTerrain::DEBUG_LINE_RADIUS_VERY_THIN = 0.005
inline

Definition at line 95 of file TerrainWheelDebug.h.

◆ DEBUG_SPHERE_RADIUS

const agx::Real agxTerrain::DEBUG_SPHERE_RADIUS = 0.03
inline

Definition at line 94 of file TerrainWheelDebug.h.