AGX Dynamics 2.42.3.0
Loading...
Searching...
No Matches
agxTerrain::PrimaryActiveZone Class Reference

#include <PrimaryActiveZone.h>

+ Inheritance diagram for agxTerrain::PrimaryActiveZone:

Public Member Functions

 PrimaryActiveZone (agx::Frame *parentFrame, Shovel *shovel, const agxCollide::GeometryRefVector &voxelCollisionGeometries)
 
void debugDrawInnerShapes ()
 
const agx::Vector< agx::Plane > & getInnerPlanes () const
 
const agxCollide::Convex * getInnerShape () const
 
agx::Vec3 getSecondaryForwardDirectionWorld () const
 
agx::Real getSecondarySeparationAngle () const
 
const agx::Vector< agx::Plane > & getTeethInnerPlanes () const
 
const agxCollide::Convex * getTeethInnerShape () const
 
ActiveZone::Type getType () const
 
void onPost (Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector)
 
void onPre (Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector)
 
void onPreCollide (Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector)
 
void setSplittingPlane (const agx::Plane &plane)
 
void updateInnerShape (const agxCollide::GeometryRefVector &voxelCollisionGeometries)
 
- Public Member Functions inherited from agxTerrain::ActiveZone
 ActiveZone (agx::Frame *parentFrame)
 
agx::String getActiveZoneTypeName () const
 
agx::Real getFailureAngle () const
 
agx::Real getFailureAngleToTerrainPlane (const agx::Vec3 &upVector) const
 
agx::Vec3iVector getFailurePlaneVoxels (const Terrain *terrain) const
 
agxCollide::Geometry * getGeometry ()
 
const agxCollide::Geometry * getGeometry () const
 
WedgePlaneVector getSoilWedgePlanes () const
 
agx::Plane getSplittingPlane () const
 
agx::Real getTerrainInclination () const
 
agx::Real getToolInclination () const
 
agx::Real getTotalSoilWedgeVolume (const agx::Vec3 &upVector) const
 
virtual ActiveZone::Type getType () const =0
 
agx::Bound3i getVoxelOverlapBound () const
 
agx::Line getWedgeCuttingEdge () const
 
agx::Line getWedgeFailureEdge () const
 
const agx::Vector< agxCollide::ConvexRef > & getWedgeShapes () const
 
agx::Line getWedgeTopEdge () const
 
bool isAnySoilWedgeEnabled () const
 
bool isSoilWedgeEnabled (agx::UInt index) const
 
void onEnableChange (bool enable)
 
virtual void onPost (Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector)=0
 
virtual void onPre (Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector)=0
 
virtual void onPreCollide (Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector)=0
 
agx::Bool overlapsVoxel (const agx::Vec3i &index) const
 
void removeWedgeShapes ()
 
bool soilWedgeCreationFailed () const
 
- 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 ~PrimaryActiveZone ()
 
- Protected Member Functions inherited from agxTerrain::ActiveZone
virtual ~ActiveZone ()
 
void createSoilWedges (const Terrain *terrain, const agx::Line &cuttingEdge, const agx::Line &topEdge, const agx::Vec3 &forwardVector, const agx::Vec3 &flatForwardVector, const ShovelDebugRenderSettings *dbgSettings)
 
agx::Vec3 projectVectorToTerrainPlane (const agx::Vec3 &vec, const agx::Vec3 &upVector) const
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 

Additional Inherited Members

- Public Types inherited from agxTerrain::ActiveZone
enum class  Type { PRIMARY_ACTIVE_ZONE , DEFORMER_ACTIVE_ZONE }
 
- 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 agxTerrain::ActiveZone
agx::Frame * m_parentFrame
 
agx::Vector< agxCollide::ConvexRef > m_soilWedgeMeshses
 
agx::Vector< SoilWedge > m_soilWedges
 
agx::UInt m_soilWedgesSize
 
agx::Plane m_splittingPlane
 
agx::Bound3i m_voxelOverlapBound
 
- Protected Attributes inherited from agx::Referenced
Mutex m_mutex
 
ObserverContainer m_observers
 
AtomicValue m_refCount
 

Detailed Description

Definition at line 30 of file PrimaryActiveZone.h.

Constructor & Destructor Documentation

◆ PrimaryActiveZone()

agxTerrain::PrimaryActiveZone::PrimaryActiveZone ( agx::Frame *  parentFrame,
Shovel *  shovel,
const agxCollide::GeometryRefVector &  voxelCollisionGeometries 
)

◆ ~PrimaryActiveZone()

virtual agxTerrain::PrimaryActiveZone::~PrimaryActiveZone ( )
protectedvirtual

Member Function Documentation

◆ debugDrawInnerShapes()

void agxTerrain::PrimaryActiveZone::debugDrawInnerShapes ( )

◆ getInnerPlanes()

const agx::Vector< agx::Plane > & agxTerrain::PrimaryActiveZone::getInnerPlanes ( ) const

◆ getInnerShape()

const agxCollide::Convex * agxTerrain::PrimaryActiveZone::getInnerShape ( ) const

◆ getSecondaryForwardDirectionWorld()

agx::Vec3 agxTerrain::PrimaryActiveZone::getSecondaryForwardDirectionWorld ( ) const

◆ getSecondarySeparationAngle()

agx::Real agxTerrain::PrimaryActiveZone::getSecondarySeparationAngle ( ) const

◆ getTeethInnerPlanes()

const agx::Vector< agx::Plane > & agxTerrain::PrimaryActiveZone::getTeethInnerPlanes ( ) const

◆ getTeethInnerShape()

const agxCollide::Convex * agxTerrain::PrimaryActiveZone::getTeethInnerShape ( ) const

◆ getType()

ActiveZone::Type agxTerrain::PrimaryActiveZone::getType ( ) const
virtual

◆ onPost()

void agxTerrain::PrimaryActiveZone::onPost ( Terrain *  terrain,
const agx::Line &  cuttingEdge,
const agx::Line &  topEdge,
const agx::Vec3 &  forwardVector 
)
virtual

◆ onPre()

void agxTerrain::PrimaryActiveZone::onPre ( Terrain *  terrain,
const agx::Line &  cuttingEdge,
const agx::Line &  topEdge,
const agx::Vec3 &  forwardVector 
)
virtual

◆ onPreCollide()

void agxTerrain::PrimaryActiveZone::onPreCollide ( Terrain *  terrain,
const agx::Line &  cuttingEdge,
const agx::Line &  topEdge,
const agx::Vec3 &  forwardVector 
)
virtual

◆ setSplittingPlane()

void agxTerrain::PrimaryActiveZone::setSplittingPlane ( const agx::Plane &  plane)

◆ updateInnerShape()

void agxTerrain::PrimaryActiveZone::updateInnerShape ( const agxCollide::GeometryRefVector &  voxelCollisionGeometries)

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