AGX Dynamics 2.41.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.
 

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  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...
 
class  Grid
 Extended pure virtual interface for Grid storage classes. More...
 
struct  GridElement
 
class  HashVoxelGrid
 Class implementing the BasicGrid interface. More...
 
class  IForbiddenBound
 Base abstract class for specifying different types of bounds bound where terrain operations like merging and avalanching is forbbiden. More...
 
struct  PointData
 
class  PrimaryActiveZone
 
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  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  VoxelGridUtils
 

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 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::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 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 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::ref_ptr< TerrainTerrainRef
 
typedef agx::Vector< TerrainRefTerrainRefVector
 
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 > >
 

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 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)
 
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 non-homogeneous 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.
 

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

◆ BasicGridConstRef

Definition at line 57 of file Grid.h.

◆ BasicGridObserver

Definition at line 57 of file Grid.h.

◆ BasicGridRef

Definition at line 57 of file Grid.h.

◆ 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

◆ GeometryContactTimeTable

◆ GeometryHashSet

◆ GeometryLocalContactTable

◆ GridConstObserver

Definition at line 58 of file Grid.h.

◆ GridConstRef

Definition at line 58 of file Grid.h.

◆ GridObserver

Definition at line 58 of file Grid.h.

◆ GridRef

Definition at line 58 of file Grid.h.

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

◆ ParticleWeightPair

Definition at line 61 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

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

◆ TerrainConstRef

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

◆ TerrainIndexToDepthTable

◆ TerrainJournalRecorderConstObserver

◆ TerrainJournalRecorderConstRef

◆ TerrainJournalRecorderObserver

◆ TerrainJournalRecorderRef

◆ TerrainMassOccupancyControllerConstObserver

◆ TerrainMassOccupancyControllerConstRef

◆ TerrainMassOccupancyControllerObserver

◆ TerrainMassOccupancyControllerObserverVector

◆ TerrainMassOccupancyControllerPtrVector

◆ TerrainMassOccupancyControllerRef

◆ TerrainMassOccupancyControllerRefVector

◆ TerrainMaterialConstObserver

◆ TerrainMaterialConstRef

◆ TerrainMaterialObserver

◆ TerrainMaterialRef

◆ TerrainObserver

Definition at line 69 of file Terrain.h.

◆ TerrainObserverVector

◆ TerrainPagerConstObserver

◆ TerrainPagerConstRef

Definition at line 38 of file TerrainPager.h.

◆ TerrainPagerObserver

◆ TerrainPagerObserverVector

◆ TerrainPagerPtrVector

◆ TerrainPagerRef

Definition at line 38 of file TerrainPager.h.

◆ TerrainPagerRefVector

◆ TerrainPropertiesConstObserver

◆ TerrainPropertiesConstRef

◆ TerrainPropertiesObserver

◆ TerrainPropertiesRef

◆ TerrainPtrVec

Definition at line 40 of file ExternalDeformer.h.

◆ TerrainPtrVector

Definition at line 70 of file Terrain.h.

◆ TerrainRef

Definition at line 69 of file Terrain.h.

◆ TerrainRefVector

Definition at line 70 of file Terrain.h.

◆ TileId

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

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

Definition at line 48 of file TileSpecification.h.

◆ TileModificationVector

◆ TriangleVector

Definition at line 54 of file Grid.h.

◆ VoxelHashSet

◆ VoxelIndexSet

Definition at line 60 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.

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.

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

◆ 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 non-homogeneous configuration in the terrain.

Parameters
shovelAggregateCM- the shovel-aggregate contact material where properties will be set.
contactArea- The area of the shovel-aggregate contact for the specified excavation mode. Used in scaling of Young's modulus.
weights- the weights vector used to average the contact materials in the terrain.
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