AGX Dynamics 2.42.2.1
Loading...
Searching...
No Matches
agxTerrain::Grid Class Referenceabstract

Extended pure virtual interface for Grid storage classes. More...

#include <Grid.h>

+ Inheritance diagram for agxTerrain::Grid:

Public Member Functions

 AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE (agxTerrain::Grid)
 
virtual agx::HashSet< agx::Vec3ifindConvexVoxelIntersections (const agx::AffineMatrix4x4 &gridTransform, const agxCollide::Convex *convex, agx::Real voxelSize)=0
 
virtual bool findMeshVoxelIntersections (const agx::AffineMatrix4x4 &gridTransform, const agxCollide::Mesh *mesh, agx::Real voxelSize, agx::Vec3iVector &result)=0
 
virtual agx::HashSet< agx::Vec3ifindVoxelsAboveTriangles (const agx::AffineMatrix4x4 &gridTransform, const TriangleVector &triangles, agx::Real voxelSize, agx::Real margin)=0
 
virtual agx::Vec3iVector findVoxelsInLine (const agx::Line &gridLine) const =0
 
virtual void findVoxelSurfaceFromIndex (const agx::Vec3i &index, agx::Vec3i &result)=0
 
virtual agxCollide::BoundingAABB getBoundingBox () const =0
 
virtual ActiveZoneIntersectionData removeVolumeInActiveZone (const agx::AffineMatrix4x4 &gridTransformation, const ActiveZoneShapes &activeZoneShapes, const ActiveZoneShapes &innerShape, const agx::Plane &innerShapeBoundary, const agx::Bound3 &activeZoneGeometryBound, const agx::Vec3iVector voxelsInPrimaryActiveZoneLastTimeStep, std::function< float(const agx::Vec3i &)> getCompression, std::function< bool(const agx::Vec2i &)> canRemoveIndex, agx::Real voxelSize, agx::Real minOccupancyRemoval, std::function< agx::Real(const agx::Vec2i &)> getMinAllowedHeight, bool useParticleFreeDeformers)=0
 
virtual ActiveZoneIntersectionData removeVolumeInShape (const agx::AffineMatrix4x4 &gridTransformation, const ShapeIntersectionTestData &shape, std::function< float(const agx::Vec3i &)> getCompression, std::function< bool(const agx::Vec2i &)> canRemoveIndex, std::function< bool(const agx::Vec3 &, const agx::Vec3i &)> isWithinBoundry, agx::Real voxelSize, agx::Real minOccupancyRemoval, std::function< agx::Real(const agx::Vec2i &)> getMinAllowedHeight)=0
 
virtual void setValuesBelowHeightField (const agxCollide::HeightField *heightField, agx::Real voxelSize, int lowestAllowedVoxelIndex, BasicGrid *compactionGrid)=0
 
- Public Member Functions inherited from agxTerrain::BasicGrid
 AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE (agxTerrain::BasicGrid)
 
virtual void clearGrid ()=0
 Clear the grid.
 
virtual bool empty ()=0
 Test if the trid is empty.
 
virtual agx::HashSet< agx::Vec3ifindGeometryVoxelIntersections (const agx::AffineMatrix4x4 &gridTransform, const agxCollide::Geometry *geometry, agx::Real voxelSize, bool onlyOccupiedVoxels=true, bool onlyMidPoint=false) const =0
 Find which voxels that overlap with a geometry.
 
virtual GridCoordVector getActiveVoxelIndices () const =0
 
virtual agx::Vec3 getElementSize () const =0
 Get the element size used for the voxel grid.
 
virtual float getFloatValue (const GridCoord &ijk) const =0
 Return value for voxel ijk.
 
virtual size_t getMemoryUsage () const =0
 Get the memory usage.
 
virtual size_t getNumActiveVoxels () const =0
 Return number of active voxels in the data structure.
 
virtual agx::Real getTotal () const =0
 Returns the sum of all voxel values.
 
virtual std::tuple< float, float > getTotalAndLargest () const =0
 
virtual bool hasIterateSupport () const
 
virtual bool isActiveVoxel (const GridCoord &) const =0
 Test if voxel ijk is active.
 
virtual void iterateVoxels (GridFunction) const
 
void restore (agxStream::InputArchive &in) override=0
 
virtual void setFloatValue (const GridCoord &ijk, float value)=0
 Set value for voxel ijk.
 
virtual void sizeHint (size_t)
 Provide the implementation with a hint about the estimated number of voxels that are needed.
 
void store (agxStream::OutputArchive &out) const override=0
 
- 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.
 
Referencedoperator= (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.
 
- Public Member Functions inherited from agxStream::Serializable
virtual ~Serializable ()
 Destructor for normal C++ use but hidden from SWIG bindings.
 
virtual const char * getClassName () const
 
bool getEnableSerialization () const
 
bool getEnableUuidGeneration ()
 
agx::UInt32 getIndex () const
 This index is given at creation of this object.
 
virtual StorageAgent * getStorageAgent () const =0
 
agx::Uuid getUuid () const
 
bool isFinished () const
 
void setEnableSerialization (bool flag)
 Set to false to disable serialization of this object.
 
void setFinished ()
 Tells this class that it is restored correctly and should not be deleted during destruction of an Archive.
 
void setUuid (const agx::Uuid &uuid)
 Explicitly set a Uuid on a serializable object.
 

Additional Inherited Members

- Public Types inherited from agxTerrain::BasicGrid
using GridCoord = agx::Vec3i
 
using GridCoordVector = agx::VectorPOD< GridCoord >
 
using GridFunction = std::function< void(GridCoord, float)>
 
- Static Public Member Functions inherited from agx::Referenced
template<typename T >
static bool ValidateCast (const Referenced *object)
 
- Static Public Member Functions inherited from agxStream::Serializable
static void setEnableUuidGeneration (bool flag)
 Specify if there should be UUID:s generated for each new Serializable object. By default it is enabled.
 
- Protected Member Functions inherited from agxTerrain::BasicGrid
agx::Vec3 getGridPositionFromVoxelIndex (const agx::Vec3i &voxelIndex) const
 
agx::Vec3i getVoxelIndexFromGridPosition (agx::Vec3 position) const
 
- Protected Member Functions inherited from agx::Referenced
virtual ~Referenced ()
 Destructor.
 
void allocateObserverVector () const
 
void deleteUsingDeleteHandler () const
 
- Protected Member Functions inherited from agxStream::Serializable
 Serializable ()
 Default constructor.
 
 Serializable (const Serializable &other)
 Copy constructor.
 
void generateUuid ()
 
- Static Protected Member Functions inherited from agx::Referenced
static DeleteHandlergetDeleteHandler ()
 
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

Extended pure virtual interface for Grid storage classes.

Implements operations needed for the solid mass grid.

Definition at line 201 of file Grid.h.

Member Function Documentation

◆ AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE()

agxTerrain::Grid::AGXSTREAM_DECLARE_ABSTRACT_SERIALIZABLE ( agxTerrain::Grid  )

◆ findConvexVoxelIntersections()

virtual agx::HashSet< agx::Vec3i > agxTerrain::Grid::findConvexVoxelIntersections ( const agx::AffineMatrix4x4 gridTransform,
const agxCollide::Convex convex,
agx::Real  voxelSize 
)
pure virtual

◆ findMeshVoxelIntersections()

virtual bool agxTerrain::Grid::findMeshVoxelIntersections ( const agx::AffineMatrix4x4 gridTransform,
const agxCollide::Mesh mesh,
agx::Real  voxelSize,
agx::Vec3iVector result 
)
pure virtual

◆ findVoxelsAboveTriangles()

virtual agx::HashSet< agx::Vec3i > agxTerrain::Grid::findVoxelsAboveTriangles ( const agx::AffineMatrix4x4 gridTransform,
const TriangleVector triangles,
agx::Real  voxelSize,
agx::Real  margin 
)
pure virtual

◆ findVoxelsInLine()

virtual agx::Vec3iVector agxTerrain::Grid::findVoxelsInLine ( const agx::Line gridLine) const
pure virtual

◆ findVoxelSurfaceFromIndex()

virtual void agxTerrain::Grid::findVoxelSurfaceFromIndex ( const agx::Vec3i index,
agx::Vec3i result 
)
pure virtual

◆ getBoundingBox()

virtual agxCollide::BoundingAABB agxTerrain::Grid::getBoundingBox ( ) const
pure virtual

◆ removeVolumeInActiveZone()

virtual ActiveZoneIntersectionData agxTerrain::Grid::removeVolumeInActiveZone ( const agx::AffineMatrix4x4 gridTransformation,
const ActiveZoneShapes activeZoneShapes,
const ActiveZoneShapes innerShape,
const agx::Plane innerShapeBoundary,
const agx::Bound3 activeZoneGeometryBound,
const agx::Vec3iVector  voxelsInPrimaryActiveZoneLastTimeStep,
std::function< float(const agx::Vec3i &)>  getCompression,
std::function< bool(const agx::Vec2i &)>  canRemoveIndex,
agx::Real  voxelSize,
agx::Real  minOccupancyRemoval,
std::function< agx::Real(const agx::Vec2i &)>  getMinAllowedHeight,
bool  useParticleFreeDeformers 
)
pure virtual

◆ removeVolumeInShape()

virtual ActiveZoneIntersectionData agxTerrain::Grid::removeVolumeInShape ( const agx::AffineMatrix4x4 gridTransformation,
const ShapeIntersectionTestData shape,
std::function< float(const agx::Vec3i &)>  getCompression,
std::function< bool(const agx::Vec2i &)>  canRemoveIndex,
std::function< bool(const agx::Vec3 &, const agx::Vec3i &)>  isWithinBoundry,
agx::Real  voxelSize,
agx::Real  minOccupancyRemoval,
std::function< agx::Real(const agx::Vec2i &)>  getMinAllowedHeight 
)
pure virtual

◆ setValuesBelowHeightField()

virtual void agxTerrain::Grid::setValuesBelowHeightField ( const agxCollide::HeightField heightField,
agx::Real  voxelSize,
int  lowestAllowedVoxelIndex,
BasicGrid compactionGrid 
)
pure virtual

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