AGX Dynamics 2.42.2.1
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 ActiveZone > ActiveZoneConstObserver
 
typedef agx::ref_ptr< const ActiveZone > ActiveZoneConstRef
 
typedef agx::observer_ptr< ActiveZone > ActiveZoneObserver
 
typedef agx::Vector< ActiveZoneObserver > ActiveZoneObserverVector
 
typedef agx::VectorPOD< ActiveZone * > ActiveZonePtrVector
 
typedef agx::ref_ptr< ActiveZone > ActiveZoneRef
 
typedef agx::Vector< ActiveZoneRef > ActiveZoneRefVector
 
typedef agx::Vector< MeshIntersectionTestData > ActiveZoneShapes
 
typedef agx::observer_ptr< const AdvancedShovelSettings > AdvancedShovelSettingsConstObserver
 
typedef agx::ref_ptr< const AdvancedShovelSettings > AdvancedShovelSettingsConstRef
 
typedef agx::observer_ptr< AdvancedShovelSettings > AdvancedShovelSettingsObserver
 
typedef agx::ref_ptr< AdvancedShovelSettings > AdvancedShovelSettingsRef
 
typedef agx::observer_ptr< const AggregateContactGenerator > AggregateContactGeneratorConstObserver
 
typedef agx::ref_ptr< const AggregateContactGenerator > AggregateContactGeneratorConstRef
 
typedef agx::observer_ptr< AggregateContactGenerator > AggregateContactGeneratorObserver
 
typedef agx::ref_ptr< AggregateContactGenerator > AggregateContactGeneratorRef
 
typedef agx::observer_ptr< const BasicGrid > BasicGridConstObserver
 
typedef agx::ref_ptr< const BasicGrid > BasicGridConstRef
 
typedef agx::observer_ptr< BasicGrid > BasicGridObserver
 
typedef agx::ref_ptr< BasicGrid > BasicGridRef
 
typedef agx::observer_ptr< const BilinearHeightDataResampler > BilinearHeightDataResamplerConstObserver
 
typedef agx::ref_ptr< const BilinearHeightDataResampler > BilinearHeightDataResamplerConstRef
 
typedef agx::observer_ptr< BilinearHeightDataResampler > BilinearHeightDataResamplerObserver
 
typedef agx::ref_ptr< BilinearHeightDataResampler > BilinearHeightDataResamplerRef
 
typedef agx::observer_ptr< const ClamShellBucket > ClamShellBucketConstObserver
 
typedef agx::ref_ptr< const ClamShellBucket > ClamShellBucketConstRef
 
typedef agx::observer_ptr< ClamShellBucket > ClamShellBucketObserver
 
typedef agx::Vector< ClamShellBucketObserver > ClamShellBucketObserverVector
 
typedef agx::VectorPOD< ClamShellBucket * > ClamShellBucketPtrVector
 
typedef agx::ref_ptr< ClamShellBucket > ClamShellBucketRef
 
typedef agx::Vector< ClamShellBucketRef > ClamShellBucketRefVector
 
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 CompactionController > CompactionControllerConstObserver
 
typedef agx::ref_ptr< const CompactionController > CompactionControllerConstRef
 
typedef agx::observer_ptr< CompactionController > CompactionControllerObserver
 
typedef agx::Vector< CompactionControllerObserver > CompactionControllerObserverVector
 
typedef agx::VectorPOD< CompactionController * > CompactionControllerPtrVector
 
typedef agx::ref_ptr< CompactionController > CompactionControllerRef
 
typedef agx::Vector< CompactionControllerRef > CompactionControllerRefVector
 
typedef agx::observer_ptr< const CompositeShovel > CompositeShovelConstObserver
 
typedef agx::ref_ptr< const CompositeShovel > CompositeShovelConstRef
 
typedef agx::observer_ptr< CompositeShovel > CompositeShovelObserver
 
typedef agx::Vector< CompositeShovelObserver > CompositeShovelObserverVector
 
typedef agx::VectorPOD< CompositeShovel * > CompositeShovelPtrVector
 
typedef agx::ref_ptr< CompositeShovel > CompositeShovelRef
 
typedef agx::Vector< CompositeShovelRef > CompositeShovelRefVector
 
typedef agx::observer_ptr< const DeformController > DeformControllerConstObserver
 
typedef agx::ref_ptr< const DeformController > DeformControllerConstRef
 
typedef agx::observer_ptr< DeformController > DeformControllerObserver
 
typedef agx::ref_ptr< DeformController > DeformControllerRef
 
typedef agx::observer_ptr< const DeformerActiveZone > DeformerActiveZoneConstObserver
 
typedef agx::ref_ptr< const DeformerActiveZone > DeformerActiveZoneConstRef
 
typedef agx::observer_ptr< DeformerActiveZone > DeformerActiveZoneObserver
 
typedef agx::ref_ptr< DeformerActiveZone > DeformerActiveZoneRef
 
typedef agx::observer_ptr< const DeformerCollection > DeformerCollectionConstObserver
 
typedef agx::ref_ptr< const DeformerCollection > DeformerCollectionConstRef
 
typedef agx::observer_ptr< DeformerCollection > DeformerCollectionObserver
 
typedef agx::ref_ptr< DeformerCollection > DeformerCollectionRef
 
typedef agx::observer_ptr< const ExternalDeformer > ExternalDeformerConstObserver
 
typedef agx::ref_ptr< const ExternalDeformer > ExternalDeformerConstRef
 
typedef agx::observer_ptr< ExternalDeformer > ExternalDeformerObserver
 
typedef agx::Vector< ExternalDeformerObserver > ExternalDeformerObserverVector
 
typedef agx::VectorPOD< ExternalDeformer * > ExternalDeformerPtrVector
 
typedef agx::ref_ptr< ExternalDeformer > ExternalDeformerRef
 
typedef agx::Vector< ExternalDeformerRef > ExternalDeformerRefVector
 
typedef agx::observer_ptr< const ForbiddenBound > ForbiddenBoundConstObserver
 
typedef agx::ref_ptr< const ForbiddenBound > ForbiddenBoundConstRef
 
typedef agx::observer_ptr< ForbiddenBound > ForbiddenBoundObserver
 
typedef agx::ref_ptr< ForbiddenBound > ForbiddenBoundRef
 
typedef agx::observer_ptr< const ForbiddenIndex2DBound > ForbiddenIndex2DBoundConstObserver
 
typedef agx::ref_ptr< const ForbiddenIndex2DBound > ForbiddenIndex2DBoundConstRef
 
typedef agx::observer_ptr< ForbiddenIndex2DBound > ForbiddenIndex2DBoundObserver
 
typedef agx::ref_ptr< ForbiddenIndex2DBound > ForbiddenIndex2DBoundRef
 
typedef agx::observer_ptr< const ForbiddenIndexBound > ForbiddenIndexBoundConstObserver
 
typedef agx::ref_ptr< const ForbiddenIndexBound > ForbiddenIndexBoundConstRef
 
typedef agx::observer_ptr< ForbiddenIndexBound > ForbiddenIndexBoundObserver
 
typedef agx::ref_ptr< ForbiddenIndexBound > ForbiddenIndexBoundRef
 
typedef agx::observer_ptr< const GaussianHeightDataResampler > GaussianHeightDataResamplerConstObserver
 
typedef agx::ref_ptr< const GaussianHeightDataResampler > GaussianHeightDataResamplerConstRef
 
typedef agx::observer_ptr< GaussianHeightDataResampler > GaussianHeightDataResamplerObserver
 
typedef agx::ref_ptr< GaussianHeightDataResampler > GaussianHeightDataResamplerRef
 
typedef agx::HashTable< agxCollide::Geometry *, agx::Real > GeometryContactTimeTable
 
typedef agx::HashSet< agxCollide::Geometry * > GeometryHashSet
 
typedef agx::HashVector< agxCollide::Geometry *, agxCollide::LocalGeometryContact > GeometryLocalContactTable
 
typedef agx::observer_ptr< const Grid > GridConstObserver
 
typedef agx::ref_ptr< const Grid > GridConstRef
 
typedef agx::observer_ptr< Grid > GridObserver
 
typedef agx::ref_ptr< Grid > GridRef
 
typedef agx::observer_ptr< const HeightDataResampler > HeightDataResamplerConstObserver
 
typedef agx::ref_ptr< const HeightDataResampler > HeightDataResamplerConstRef
 
typedef agx::observer_ptr< HeightDataResampler > HeightDataResamplerObserver
 
typedef agx::ref_ptr< HeightDataResampler > HeightDataResamplerRef
 
typedef agx::observer_ptr< const IForbiddenBound > IForbiddenBoundConstObserver
 
typedef agx::ref_ptr< const IForbiddenBound > IForbiddenBoundConstRef
 
typedef agx::observer_ptr< IForbiddenBound > IForbiddenBoundObserver
 
typedef agx::Vector< IForbiddenBoundObserver > IForbiddenBoundObserverVector
 
typedef agx::VectorPOD< IForbiddenBound * > IForbiddenBoundPtrVector
 
typedef agx::ref_ptr< IForbiddenBound > IForbiddenBoundRef
 
typedef agx::Vector< IForbiddenBoundRef > IForbiddenBoundRefVector
 
typedef std::queue< agx::Vec2i > IndexQueue
 
typedef agx::HashTable< agx::Vec3i, ParticleWeightPairVector > IndexToParticleWeightPairVector
 
typedef std::tuple< const agxCollide::Mesh *, agx::AffineMatrix4x4, agxCollide::BoundingAABB > MeshIntersectionTestData
 
typedef std::pair< agxCollide::MeshRef, agx::AffineMatrix4x4 > MeshTransformPair
 
typedef agx::Vector< MeshTransformPair > MeshTransformPairVector
 
typedef agx::VectorPOD< agx::RealVector > modifiedCompactionVector
 
typedef agx::SetVector< agx::Vec2i > ModifiedVerticesSetVector
 
typedef agx::Vector< agx::Vec2i > ModifiedVerticesVector
 
typedef agx::Vector< std::pair< SoilParticlePtr, float > > ParticleDeltaVector
 
typedef std::pair< SoilParticlePtr, agx::Real > ParticleWeightPair
 
typedef agx::Vector< ParticleWeightPair > ParticleWeightPairVector
 
using PointDataVector = agx::Vector< PointData >
 Struct that holds surface point data gathered through surface tracing of the shovel surfaces.
 
typedef agx::observer_ptr< const PrimaryActiveZone > PrimaryActiveZoneConstObserver
 
typedef agx::ref_ptr< const PrimaryActiveZone > PrimaryActiveZoneConstRef
 
typedef agx::observer_ptr< PrimaryActiveZone > PrimaryActiveZoneObserver
 
typedef agx::ref_ptr< PrimaryActiveZone > PrimaryActiveZoneRef
 
typedef agx::observer_ptr< const RegressionPlanesParameters > RegressionPlanesParametersConstObserver
 
typedef agx::ref_ptr< const RegressionPlanesParameters > RegressionPlanesParametersConstRef
 
typedef agx::observer_ptr< RegressionPlanesParameters > RegressionPlanesParametersObserver
 
typedef agx::ref_ptr< RegressionPlanesParameters > RegressionPlanesParametersRef
 
typedef agx::observer_ptr< const ResampleInputDescription > ResampleInputDescriptionConstObserver
 
typedef agx::ref_ptr< const ResampleInputDescription > ResampleInputDescriptionConstRef
 
typedef agx::observer_ptr< ResampleInputDescription > ResampleInputDescriptionObserver
 
typedef agx::ref_ptr< ResampleInputDescription > ResampleInputDescriptionRef
 
typedef agx::observer_ptr< const ResampleOutputDescription > ResampleOutputDescriptionConstObserver
 
typedef agx::ref_ptr< const ResampleOutputDescription > ResampleOutputDescriptionConstRef
 
typedef agx::observer_ptr< ResampleOutputDescription > ResampleOutputDescriptionObserver
 
typedef agx::ref_ptr< ResampleOutputDescription > ResampleOutputDescriptionRef
 
typedef agx::observer_ptr< const ScopeReportSystemJob > ScopeReportSystemJobConstObserver
 
typedef agx::ref_ptr< const ScopeReportSystemJob > ScopeReportSystemJobConstRef
 
typedef agx::observer_ptr< ScopeReportSystemJob > ScopeReportSystemJobObserver
 
typedef agx::ref_ptr< ScopeReportSystemJob > ScopeReportSystemJobRef
 
typedef agx::observer_ptr< const ScopeTimer > ScopeTimerConstObserver
 
typedef agx::ref_ptr< const ScopeTimer > ScopeTimerConstRef
 
typedef agx::observer_ptr< ScopeTimer > ScopeTimerObserver
 
typedef agx::ref_ptr< ScopeTimer > ScopeTimerRef
 
typedef std::tuple< const agxCollide::Shape *, agx::AffineMatrix4x4, agxCollide::BoundingAABB > ShapeIntersectionTestData
 
typedef agx::observer_ptr< const ShovelAggregateContactMaterialContainer > ShovelAggregateContactMaterialContainerConstObserver
 
typedef agx::ref_ptr< const ShovelAggregateContactMaterialContainer > ShovelAggregateContactMaterialContainerConstRef
 
typedef agx::observer_ptr< ShovelAggregateContactMaterialContainer > ShovelAggregateContactMaterialContainerObserver
 
typedef agx::Vector< ShovelAggregateContactMaterialContainerObserver > ShovelAggregateContactMaterialContainerObserverVector
 
typedef agx::VectorPOD< ShovelAggregateContactMaterialContainer * > ShovelAggregateContactMaterialContainerPtrVector
 
typedef agx::ref_ptr< ShovelAggregateContactMaterialContainer > ShovelAggregateContactMaterialContainerRef
 
typedef agx::Vector< ShovelAggregateContactMaterialContainerRef > ShovelAggregateContactMaterialContainerRefVector
 
typedef agx::observer_ptr< const ShovelAggregateFrictionModel > ShovelAggregateFrictionModelConstObserver
 
typedef agx::ref_ptr< const ShovelAggregateFrictionModel > ShovelAggregateFrictionModelConstRef
 
typedef agx::observer_ptr< ShovelAggregateFrictionModel > ShovelAggregateFrictionModelObserver
 
typedef agx::ref_ptr< ShovelAggregateFrictionModel > ShovelAggregateFrictionModelRef
 
typedef agx::observer_ptr< const Shovel > ShovelConstObserver
 
typedef agx::ref_ptr< const Shovel > ShovelConstRef
 
typedef agx::observer_ptr< Shovel > ShovelObserver
 
typedef agx::Vector< ShovelObserver > ShovelObserverVector
 
typedef agx::VectorPOD< Shovel * > ShovelPtrVector
 
typedef agx::ref_ptr< Shovel > ShovelRef
 
typedef agx::Vector< ShovelRef > ShovelRefVector
 
typedef agx::observer_ptr< const ShovelSettings > ShovelSettingsConstObserver
 
typedef agx::ref_ptr< const ShovelSettings > ShovelSettingsConstRef
 
typedef agx::observer_ptr< ShovelSettings > ShovelSettingsObserver
 
typedef agx::ref_ptr< ShovelSettings > ShovelSettingsRef
 
typedef agx::observer_ptr< const SoilParticleAggregate > SoilParticleAggregateConstObserver
 
typedef agx::ref_ptr< const SoilParticleAggregate > SoilParticleAggregateConstRef
 
typedef agx::observer_ptr< SoilParticleAggregate > SoilParticleAggregateObserver
 
typedef agx::Vector< SoilParticleAggregateObserver > SoilParticleAggregateObserverVector
 
typedef agx::VectorPOD< SoilParticleAggregate * > SoilParticleAggregatePtrVector
 
typedef agx::ref_ptr< SoilParticleAggregate > SoilParticleAggregateRef
 
typedef agx::Vector< SoilParticleAggregateRef > SoilParticleAggregateRefVector
 
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 SoilPenetrationResistance > SoilPenetrationResistanceConstObserver
 
typedef agx::ref_ptr< const SoilPenetrationResistance > SoilPenetrationResistanceConstRef
 
typedef agx::observer_ptr< SoilPenetrationResistance > SoilPenetrationResistanceObserver
 
typedef agx::ref_ptr< SoilPenetrationResistance > SoilPenetrationResistanceRef
 
typedef agx::observer_ptr< const SoilSimulationInterface > SoilSimulationInterfaceConstObserver
 
typedef agx::ref_ptr< const SoilSimulationInterface > SoilSimulationInterfaceConstRef
 
typedef agx::observer_ptr< SoilSimulationInterface > SoilSimulationInterfaceObserver
 
typedef agx::ref_ptr< SoilSimulationInterface > SoilSimulationInterfaceRef
 
typedef agx::Vector< SoilWedge > SoilWedgeVector
 
using TangentPatchData = agx::Vector< TangentPatch >
 
typedef agx::observer_ptr< const Terrain > TerrainConstObserver
 
typedef agx::ref_ptr< const Terrain > TerrainConstRef
 
typedef agx::observer_ptr< const TerrainContact > TerrainContactConstObserver
 
typedef agx::ref_ptr< const TerrainContact > TerrainContactConstRef
 
typedef agx::observer_ptr< const TerrainContactGenerator > TerrainContactGeneratorConstObserver
 
typedef agx::ref_ptr< const TerrainContactGenerator > TerrainContactGeneratorConstRef
 
typedef agx::observer_ptr< TerrainContactGenerator > TerrainContactGeneratorObserver
 
typedef agx::Vector< TerrainContactGeneratorObserver > TerrainContactGeneratorObserverVector
 
typedef agx::VectorPOD< TerrainContactGenerator * > TerrainContactGeneratorPtrVector
 
typedef agx::ref_ptr< TerrainContactGenerator > TerrainContactGeneratorRef
 
typedef agx::Vector< TerrainContactGeneratorRef > TerrainContactGeneratorRefVector
 
typedef agx::observer_ptr< TerrainContact > TerrainContactObserver
 
typedef agx::Vector< TerrainContactObserver > TerrainContactObserverVector
 
typedef agx::VectorPOD< TerrainContact * > TerrainContactPtrVector
 
typedef agx::ref_ptr< TerrainContact > TerrainContactRef
 
typedef agx::Vector< TerrainContactRef > TerrainContactRefVector
 
typedef agx::observer_ptr< const TerrainDataSource > TerrainDataSourceConstObserver
 
typedef agx::ref_ptr< const TerrainDataSource > TerrainDataSourceConstRef
 
typedef agx::observer_ptr< TerrainDataSource > TerrainDataSourceObserver
 
typedef agx::ref_ptr< TerrainDataSource > TerrainDataSourceRef
 
typedef agx::observer_ptr< const TerrainGridControl > TerrainGridControlConstObserver
 
typedef agx::ref_ptr< const TerrainGridControl > TerrainGridControlConstRef
 
typedef agx::observer_ptr< TerrainGridControl > TerrainGridControlObserver
 
typedef agx::Vector< TerrainGridControlObserver > TerrainGridControlObserverVector
 
typedef agx::VectorPOD< TerrainGridControl * > TerrainGridControlPtrVector
 
typedef agx::ref_ptr< TerrainGridControl > TerrainGridControlRef
 
typedef agx::Vector< TerrainGridControlRef > TerrainGridControlRefVector
 
using TerrainIndexSet = agx::HashSet< agx::Vec2i >
 
typedef agx::HashTable< agx::Vec2i, agx::Real > TerrainIndexToDepthTable
 
typedef agx::observer_ptr< const TerrainJournalRecorder > TerrainJournalRecorderConstObserver
 
typedef agx::ref_ptr< const TerrainJournalRecorder > TerrainJournalRecorderConstRef
 
typedef agx::observer_ptr< TerrainJournalRecorder > TerrainJournalRecorderObserver
 
typedef agx::ref_ptr< TerrainJournalRecorder > TerrainJournalRecorderRef
 
typedef agx::observer_ptr< const TerrainMassOccupancyController > TerrainMassOccupancyControllerConstObserver
 
typedef agx::ref_ptr< const TerrainMassOccupancyController > TerrainMassOccupancyControllerConstRef
 
typedef agx::observer_ptr< TerrainMassOccupancyController > TerrainMassOccupancyControllerObserver
 
typedef agx::Vector< TerrainMassOccupancyControllerObserver > TerrainMassOccupancyControllerObserverVector
 
typedef agx::VectorPOD< TerrainMassOccupancyController * > TerrainMassOccupancyControllerPtrVector
 
typedef agx::ref_ptr< TerrainMassOccupancyController > TerrainMassOccupancyControllerRef
 
typedef agx::Vector< TerrainMassOccupancyControllerRef > TerrainMassOccupancyControllerRefVector
 
typedef agx::observer_ptr< const TerrainMaterial > TerrainMaterialConstObserver
 
typedef agx::ref_ptr< const TerrainMaterial > TerrainMaterialConstRef
 
typedef agx::observer_ptr< TerrainMaterial > TerrainMaterialObserver
 
typedef agx::ref_ptr< TerrainMaterial > TerrainMaterialRef
 
typedef agx::observer_ptr< Terrain > TerrainObserver
 
typedef agx::Vector< TerrainObserver > TerrainObserverVector
 
typedef agx::observer_ptr< const TerrainPager > TerrainPagerConstObserver
 
typedef agx::ref_ptr< const TerrainPager > TerrainPagerConstRef
 
typedef agx::observer_ptr< TerrainPager > TerrainPagerObserver
 
typedef agx::Vector< TerrainPagerObserver > TerrainPagerObserverVector
 
typedef agx::VectorPOD< TerrainPager * > TerrainPagerPtrVector
 
typedef agx::ref_ptr< TerrainPager > TerrainPagerRef
 
typedef agx::Vector< TerrainPagerRef > TerrainPagerRefVector
 
typedef agx::observer_ptr< const TerrainProperties > TerrainPropertiesConstObserver
 
typedef agx::ref_ptr< const TerrainProperties > TerrainPropertiesConstRef
 
typedef agx::observer_ptr< TerrainProperties > TerrainPropertiesObserver
 
typedef agx::ref_ptr< TerrainProperties > TerrainPropertiesRef
 
using TerrainPtrVec = agx::VectorPOD< Terrain * >
 
typedef agx::VectorPOD< Terrain * > TerrainPtrVector
 
typedef agx::observer_ptr< const TerrainRasterizer > TerrainRasterizerConstObserver
 
typedef agx::ref_ptr< const TerrainRasterizer > TerrainRasterizerConstRef
 
typedef agx::observer_ptr< TerrainRasterizer > TerrainRasterizerObserver
 
typedef agx::ref_ptr< TerrainRasterizer > TerrainRasterizerRef
 
typedef agx::ref_ptr< Terrain > TerrainRef
 
typedef agx::Vector< TerrainRef > TerrainRefVector
 
typedef agx::observer_ptr< const TerrainWheel > TerrainWheelConstObserver
 
typedef agx::ref_ptr< const TerrainWheel > TerrainWheelConstRef
 
typedef agx::observer_ptr< const TerrainWheelDeformer > TerrainWheelDeformerConstObserver
 
typedef agx::ref_ptr< const TerrainWheelDeformer > TerrainWheelDeformerConstRef
 
typedef agx::observer_ptr< TerrainWheelDeformer > TerrainWheelDeformerObserver
 
typedef agx::Vector< TerrainWheelDeformerObserver > TerrainWheelDeformerObserverVector
 
typedef agx::VectorPOD< TerrainWheelDeformer * > TerrainWheelDeformerPtrVector
 
typedef agx::ref_ptr< TerrainWheelDeformer > TerrainWheelDeformerRef
 
typedef agx::Vector< TerrainWheelDeformerRef > TerrainWheelDeformerRefVector
 
typedef agx::observer_ptr< TerrainWheel > TerrainWheelObserver
 
typedef agx::Vector< TerrainWheelObserver > TerrainWheelObserverVector
 
typedef agx::observer_ptr< const TerrainWheelPlane > TerrainWheelPlaneConstObserver
 
typedef agx::ref_ptr< const TerrainWheelPlane > TerrainWheelPlaneConstRef
 
typedef agx::observer_ptr< TerrainWheelPlane > TerrainWheelPlaneObserver
 
typedef agx::ref_ptr< TerrainWheelPlane > TerrainWheelPlaneRef
 
typedef agx::VectorPOD< TerrainWheel * > TerrainWheelPtrVector
 
typedef agx::observer_ptr< const TerrainWheelQuantities > TerrainWheelQuantitiesConstObserver
 
typedef agx::ref_ptr< const TerrainWheelQuantities > TerrainWheelQuantitiesConstRef
 
typedef agx::observer_ptr< TerrainWheelQuantities > TerrainWheelQuantitiesObserver
 
typedef agx::ref_ptr< TerrainWheelQuantities > TerrainWheelQuantitiesRef
 
typedef agx::ref_ptr< TerrainWheel > TerrainWheelRef
 
typedef agx::Vector< TerrainWheelRef > TerrainWheelRefVector
 
typedef agx::observer_ptr< const TerrainWheelSettings > TerrainWheelSettingsConstObserver
 
typedef agx::ref_ptr< const TerrainWheelSettings > TerrainWheelSettingsConstRef
 
typedef agx::observer_ptr< TerrainWheelSettings > TerrainWheelSettingsObserver
 
typedef agx::ref_ptr< TerrainWheelSettings > TerrainWheelSettingsRef
 
typedef agx::Vec2i32 TileId
 A TileId is a 2D-coordinate that specifies where a in grid a tile is located.
 
typedef agx::VectorPOD< TileModification > TileModificationVector
 
typedef agx::Vector< std::array< agx::Vec3, 3 > > TriangleVector
 
typedef agx::HashSet< agx::Vec3i > VoxelHashSet
 
typedef agx::HashSet< agx::Vec3i > VoxelIndexSet
 
typedef agx::HashTable< agx::Vec3i, agx::Real > VoxelStressTable
 
using WedgePlaneVector = agx::Vector< std::array< agx::Plane, 3 > >
 
typedef agx::observer_ptr< const WheelDeformationProperties > WheelDeformationPropertiesConstObserver
 
typedef agx::ref_ptr< const WheelDeformationProperties > WheelDeformationPropertiesConstRef
 
typedef agx::observer_ptr< WheelDeformationProperties > WheelDeformationPropertiesObserver
 
typedef agx::ref_ptr< WheelDeformationProperties > WheelDeformationPropertiesRef
 

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 Terrain * 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.
 
AGXTERRAIN_EXPORT Terrain * 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.
 
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::Vec3 > findLineMeshesIntersection (const agx::Vec3 &point1, const agx::Vec3 &point2, const MeshTransformPairVector &meshes)
 
AGXTERRAIN_EXPORT std::tuple< bool, agx::Vec3 > findLineShovelIntersection (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::Material * findShovelMaterial (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)
 
AGXTERRAIN_EXPORT Terrain * getClosestOverlappingTerrain (const Shovel *shovel, const TerrainPtrVector &terrains, bool onlyValidDeformableTerrain=true)
 Find the overlapping terrain that best matches the shovel overlap.
 
static const std::vector< agxRender::Color > & getDebugColorTriplets (std::size_t k)
 
AGXTERRAIN_EXPORT agxCollide::Geometry * getFirstContactValidGeometry (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< PointData > 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.
 
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::Color > DEBUG_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 76 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 44 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 110 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 
)

◆ getClosestOverlappingTerrain()

AGXTERRAIN_EXPORT Terrain * agxTerrain::getClosestOverlappingTerrain ( const Shovel *  shovel,
const TerrainPtrVector &  terrains,
bool  onlyValidDeformableTerrain = true 
)

Find the overlapping terrain that best matches the shovel overlap.

Parameters
shovel- shovel used to score the terrain overlap.
terrains- terrain candidates to check for overlap.
onlyValidDeformableTerrain- true to only include terrains the shovel can deform, false to include all overlapping terrains. (Default: true)
Returns
the overlapping terrain that best matches the shovel overlap.

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