AGX Dynamics 2.42.3.1
Loading...
Searching...
No Matches
agxTerrain::SoilParticleAggregate Class Reference

#include <SoilParticleAggregate.h>

+ Inheritance diagram for agxTerrain::SoilParticleAggregate:

Public Member Functions

 SoilParticleAggregate (agx::RigidBody *connectedBody=nullptr, bool isDeformerAggregate=false, const agx::Name &tag="")
 Construct a soil particle aggregate.
 
const agx::RigidBody * getContactingWedgeBody () const
 
const agxCollide::Geometry * getContactingWedgeGeometry () const
 
agx::RigidBody * getInnerBody () const
 
const SoilParticlePtrVector & getInnerBodyParticles () const
 
agx::Vec3 getInnerCachedAngularMomentum () const
 
agx::Vec3 getInnerCachedMomentum () const
 
const agxCollide::Geometry * getInnerGeometry () const
 
agx::Vec3 getInnerParticleAngularMomentum () const
 
agx::Vec3 getInnerParticleMomentum () const
 
agx::Real getInnerParticleVolume () const
 
const agx::LockJoint * getInnerWedgeLockJoint () const
 
agx::Real getMass () const
 
agx::Material * getMaterial () const
 
agx::Real getTotalAggregateMass () const
 
agx::Real getTotalParticleVolume () const
 
agx::Real getTotalSoilBulkVolume (agx::Real packingFraction=0.67) const
 Return the estimated total soil bulk volume of all particles and voxels of fluid and solid mass (both inner and wedge bodies) present in the aggregate.
 
agx::Real getTotalWedgeBodyMass () const
 
agx::RigidBodyPtrVector getWedgeBodies (bool onlyEnabled=true) const
 Return the wedge partition bodies of the wedge part of the soil aggregate.
 
const SoilParticlePtrVector & getWedgeBodyParticles () const
 
agx::Vec3iVector getWedgeBodyVoxels () const
 
agx::ConstraintPtrVector getWedgeLockJoints (bool onlyEnabled=true) const
 Return the wedge lock joints of the wedge part of the soil aggregate.
 
agx::Real getWedgeParticleVolume () const
 
void setMaterial (agx::Material *material)
 Assign material used for the contact between the shovel and this soil particle aggregate (the soil particles implicitly).
 
- Public Member Functions inherited from agx::Referenced
 Referenced ()
 Default constructor.
 
 Referenced (const Referenced &)
 
template<typename T >
T * as ()
 Subclass casting.
 
template<typename T >
const T * as () const
 
template<typename T >
T * asSafe ()
 Safe subclass casting, return nullptr if template type does not match.
 
template<typename T >
const T * asSafe () const
 
int getReferenceCount () const
 
template<typename T >
bool is () const
 Subclass test.
 
Referenced & operator= (const Referenced &)
 Assignment operator. Will increment the number of references to the referenced object.
 
void reference (void *ptr=nullptr) const
 Explicitly increment the reference count by one, indicating that this object has another pointer which is referencing it.
 
void unreference (void *ptr=nullptr) const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 
void unreference_nodelete () const
 Decrement the reference count by one, indicating that a pointer to this object is referencing it.
 

Protected Member Functions

virtual ~SoilParticleAggregate ()
 Reference counted object - protected destructor.
 
agxCollide::Geometry * _getInnerGeometry () const
 Internal mutable geometry accessor.
 
agxCollide::Geometry * _getWedgeGeometry () const
 Internal mutable geometry accessor.
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Additional Inherited Members

- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandler * getDeleteHandler ()
 
static void setDeleteHandler (DeleteHandler *handler)
 Internal: Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

Definition at line 40 of file SoilParticleAggregate.h.

Constructor & Destructor Documentation

◆ SoilParticleAggregate()

agxTerrain::SoilParticleAggregate::SoilParticleAggregate ( agx::RigidBody *  connectedBody = nullptr,
bool  isDeformerAggregate = false,
const agx::Name &  tag = "" 
)

Construct a soil particle aggregate.

◆ ~SoilParticleAggregate()

virtual agxTerrain::SoilParticleAggregate::~SoilParticleAggregate ( )
protectedvirtual

Reference counted object - protected destructor.

Member Function Documentation

◆ _getInnerGeometry()

agxCollide::Geometry * agxTerrain::SoilParticleAggregate::_getInnerGeometry ( ) const
protected

Internal mutable geometry accessor.

◆ _getWedgeGeometry()

agxCollide::Geometry * agxTerrain::SoilParticleAggregate::_getWedgeGeometry ( ) const
protected

Internal mutable geometry accessor.

◆ getContactingWedgeBody()

const agx::RigidBody * agxTerrain::SoilParticleAggregate::getContactingWedgeBody ( ) const
Note
It's undefined to make changes to this body since all its properties are calculated given the soil particles it represent.
Returns
the utmost enabled wedge partition body in the soil particle aggregate that is in contact with the terrain.

◆ getContactingWedgeGeometry()

const agxCollide::Geometry * agxTerrain::SoilParticleAggregate::getContactingWedgeGeometry ( ) const
Note
It's undefined to make changes to this geometry since all its properties are calculated given the soil particles it represent.
Returns
geometry used as soil particle aggregate

◆ getInnerBody()

agx::RigidBody * agxTerrain::SoilParticleAggregate::getInnerBody ( ) const
Note
It's undefined to make changes to this body since all its properties are calculated given the soil particles it represent.
Returns
inner rigid body used as soil particle aggregate

◆ getInnerBodyParticles()

const SoilParticlePtrVector & agxTerrain::SoilParticleAggregate::getInnerBodyParticles ( ) const
Returns
the soil particles that the inner body of the soil particle aggregate represents

◆ getInnerCachedAngularMomentum()

agx::Vec3 agxTerrain::SoilParticleAggregate::getInnerCachedAngularMomentum ( ) const

◆ getInnerCachedMomentum()

agx::Vec3 agxTerrain::SoilParticleAggregate::getInnerCachedMomentum ( ) const

◆ getInnerGeometry()

const agxCollide::Geometry * agxTerrain::SoilParticleAggregate::getInnerGeometry ( ) const
Note
It's undefined to make changes to this geometry since all its properties are calculated given the soil particles it represent.
Returns
geometry used as soil particle aggregate

◆ getInnerParticleAngularMomentum()

agx::Vec3 agxTerrain::SoilParticleAggregate::getInnerParticleAngularMomentum ( ) const

◆ getInnerParticleMomentum()

agx::Vec3 agxTerrain::SoilParticleAggregate::getInnerParticleMomentum ( ) const

◆ getInnerParticleVolume()

agx::Real agxTerrain::SoilParticleAggregate::getInnerParticleVolume ( ) const
Returns
the specific particle volume of all particles in the inner shape of the aggregate.

◆ getInnerWedgeLockJoint()

const agx::LockJoint * agxTerrain::SoilParticleAggregate::getInnerWedgeLockJoint ( ) const
Note
It's undefined to make changes to this lock since all its properties are calculated during the aggregate update step. ALSO NOTE, this lock is only relevant if the body aggregate is part of a primary active zone.
Returns
lock between the inner body and the wedge shape, IF used by primary active zone.

◆ getMass()

agx::Real agxTerrain::SoilParticleAggregate::getMass ( ) const
Returns
the mass of this aggregate, representing both soil particles and fluid mass

◆ getMaterial()

agx::Material * agxTerrain::SoilParticleAggregate::getMaterial ( ) const
Returns
the material used between the shovel and this soil particle aggregate

◆ getTotalAggregateMass()

agx::Real agxTerrain::SoilParticleAggregate::getTotalAggregateMass ( ) const
Returns
the mass of all the rigid bodies (both inner and wedge bodies) present in the aggregate.

◆ getTotalParticleVolume()

agx::Real agxTerrain::SoilParticleAggregate::getTotalParticleVolume ( ) const
Returns
the specific particle volume of all particles (both inner and wedge bodies) present in the aggregate.

◆ getTotalSoilBulkVolume()

agx::Real agxTerrain::SoilParticleAggregate::getTotalSoilBulkVolume ( agx::Real  packingFraction = 0.67) const

Return the estimated total soil bulk volume of all particles and voxels of fluid and solid mass (both inner and wedge bodies) present in the aggregate.

Note
- this returns the getTotalParticleVolume() divided by the packing fraction of the particles plus computed wedge voxel volume of solid and fluid mass in the wedge bodies.
Parameters
packingFraction- the packing fraction used for computing the bulk volume for the soil particles in the inner and wedge shapes. (Default: 0.67)
Returns
the estimated total soil bulk volume of all bodies in the soil aggregate.

◆ getTotalWedgeBodyMass()

agx::Real agxTerrain::SoilParticleAggregate::getTotalWedgeBodyMass ( ) const
Returns
total wedge body mass of all enabled soil wedge partitions.

◆ getWedgeBodies()

agx::RigidBodyPtrVector agxTerrain::SoilParticleAggregate::getWedgeBodies ( bool  onlyEnabled = true) const

Return the wedge partition bodies of the wedge part of the soil aggregate.

Note
It's undefined to make changes the bodies since all their properties are calculated given the soil particles it represent.
Parameters
onlyEnabled- true if the function should only return enabled wedge bodies, false otherwise. (Default: true)
Returns
the wedge partition bodies inside the soil aggregate.

◆ getWedgeBodyParticles()

const SoilParticlePtrVector & agxTerrain::SoilParticleAggregate::getWedgeBodyParticles ( ) const
Returns
the soil particles that the wedge body of the soil particle aggregate represents

◆ getWedgeBodyVoxels()

agx::Vec3iVector agxTerrain::SoilParticleAggregate::getWedgeBodyVoxels ( ) const
Returns
the solid mass voxels that the wedge body of the soil particle aggregate represents

◆ getWedgeLockJoints()

agx::ConstraintPtrVector agxTerrain::SoilParticleAggregate::getWedgeLockJoints ( bool  onlyEnabled = true) const

Return the wedge lock joints of the wedge part of the soil aggregate.

Note
It's undefined to make changes the locks since all their properties are calculated given the soil particles it represent.
Parameters
onlyEnabled- true if the function should only return enabled wedge locks, false otherwise. (Default: true)
Returns
the wedge partition lock joints inside the soil aggregate.

◆ getWedgeParticleVolume()

agx::Real agxTerrain::SoilParticleAggregate::getWedgeParticleVolume ( ) const
Returns
the specific particle volume of all particles in the wedge shapes of the aggregate.

◆ setMaterial()

void agxTerrain::SoilParticleAggregate::setMaterial ( agx::Material *  material)

Assign material used for the contact between the shovel and this soil particle aggregate (the soil particles implicitly).

Parameters
material- new material

The documentation for this class was generated from the following file: