AGX Dynamics 2.42.3.0
Loading...
Searching...
No Matches
agxTerrain::ActiveZone Class Referenceabstract

#include <ActiveZone.h>

+ Inheritance diagram for agxTerrain::ActiveZone:

Public Types

enum class  Type { PRIMARY_ACTIVE_ZONE , DEFORMER_ACTIVE_ZONE }
 

Public Member Functions

 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 ~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
 

Protected Attributes

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
 

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.
 

Detailed Description

Definition at line 49 of file ActiveZone.h.

Member Enumeration Documentation

◆ Type

enum class agxTerrain::ActiveZone::Type
strong
Enumerator
PRIMARY_ACTIVE_ZONE 
DEFORMER_ACTIVE_ZONE 

Definition at line 53 of file ActiveZone.h.

Constructor & Destructor Documentation

◆ ActiveZone()

agxTerrain::ActiveZone::ActiveZone ( agx::Frame *  parentFrame)

◆ ~ActiveZone()

virtual agxTerrain::ActiveZone::~ActiveZone ( )
protectedvirtual

Member Function Documentation

◆ createSoilWedges()

void agxTerrain::ActiveZone::createSoilWedges ( const Terrain *  terrain,
const agx::Line &  cuttingEdge,
const agx::Line &  topEdge,
const agx::Vec3 &  forwardVector,
const agx::Vec3 &  flatForwardVector,
const ShovelDebugRenderSettings *  dbgSettings 
)
protected

◆ getActiveZoneTypeName()

agx::String agxTerrain::ActiveZone::getActiveZoneTypeName ( ) const

◆ getFailureAngle()

agx::Real agxTerrain::ActiveZone::getFailureAngle ( ) const

◆ getFailureAngleToTerrainPlane()

agx::Real agxTerrain::ActiveZone::getFailureAngleToTerrainPlane ( const agx::Vec3 &  upVector) const

◆ getFailurePlaneVoxels()

agx::Vec3iVector agxTerrain::ActiveZone::getFailurePlaneVoxels ( const Terrain *  terrain) const

◆ getGeometry() [1/2]

agxCollide::Geometry * agxTerrain::ActiveZone::getGeometry ( )

◆ getGeometry() [2/2]

const agxCollide::Geometry * agxTerrain::ActiveZone::getGeometry ( ) const

◆ getSoilWedgePlanes()

WedgePlaneVector agxTerrain::ActiveZone::getSoilWedgePlanes ( ) const

◆ getSplittingPlane()

agx::Plane agxTerrain::ActiveZone::getSplittingPlane ( ) const

◆ getTerrainInclination()

agx::Real agxTerrain::ActiveZone::getTerrainInclination ( ) const

◆ getToolInclination()

agx::Real agxTerrain::ActiveZone::getToolInclination ( ) const

◆ getTotalSoilWedgeVolume()

agx::Real agxTerrain::ActiveZone::getTotalSoilWedgeVolume ( const agx::Vec3 &  upVector) const

◆ getType()

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

◆ getVoxelOverlapBound()

agx::Bound3i agxTerrain::ActiveZone::getVoxelOverlapBound ( ) const

◆ getWedgeCuttingEdge()

agx::Line agxTerrain::ActiveZone::getWedgeCuttingEdge ( ) const

◆ getWedgeFailureEdge()

agx::Line agxTerrain::ActiveZone::getWedgeFailureEdge ( ) const

◆ getWedgeShapes()

const agx::Vector< agxCollide::ConvexRef > & agxTerrain::ActiveZone::getWedgeShapes ( ) const

◆ getWedgeTopEdge()

agx::Line agxTerrain::ActiveZone::getWedgeTopEdge ( ) const

◆ isAnySoilWedgeEnabled()

bool agxTerrain::ActiveZone::isAnySoilWedgeEnabled ( ) const

◆ isSoilWedgeEnabled()

bool agxTerrain::ActiveZone::isSoilWedgeEnabled ( agx::UInt  index) const

◆ onEnableChange()

void agxTerrain::ActiveZone::onEnableChange ( bool  enable)

◆ onPost()

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

◆ onPre()

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

◆ onPreCollide()

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

◆ overlapsVoxel()

agx::Bool agxTerrain::ActiveZone::overlapsVoxel ( const agx::Vec3i &  index) const

◆ projectVectorToTerrainPlane()

agx::Vec3 agxTerrain::ActiveZone::projectVectorToTerrainPlane ( const agx::Vec3 &  vec,
const agx::Vec3 &  upVector 
) const
protected

◆ removeWedgeShapes()

void agxTerrain::ActiveZone::removeWedgeShapes ( )

◆ soilWedgeCreationFailed()

bool agxTerrain::ActiveZone::soilWedgeCreationFailed ( ) const
Returns
true if any soil wedge convex creation failed for this Active Zone

Member Data Documentation

◆ m_parentFrame

agx::Frame* agxTerrain::ActiveZone::m_parentFrame
protected

Definition at line 136 of file ActiveZone.h.

◆ m_soilWedgeMeshses

agx::Vector<agxCollide::ConvexRef> agxTerrain::ActiveZone::m_soilWedgeMeshses
protected

Definition at line 144 of file ActiveZone.h.

◆ m_soilWedges

agx::Vector<SoilWedge> agxTerrain::ActiveZone::m_soilWedges
protected

Definition at line 142 of file ActiveZone.h.

◆ m_soilWedgesSize

agx::UInt agxTerrain::ActiveZone::m_soilWedgesSize
protected

Definition at line 140 of file ActiveZone.h.

◆ m_splittingPlane

agx::Plane agxTerrain::ActiveZone::m_splittingPlane
protected

Definition at line 146 of file ActiveZone.h.

◆ m_voxelOverlapBound

agx::Bound3i agxTerrain::ActiveZone::m_voxelOverlapBound
protected

Definition at line 137 of file ActiveZone.h.


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