AGX Dynamics 2.42.2.1
Loading...
Searching...
No Matches
agxTerrain::HashVoxelGrid Class Reference

Class implementing the BasicGrid interface. More...

#include <HashVoxelGrid.h>

+ Inheritance diagram for agxTerrain::HashVoxelGrid:

Public Types

using VoxelHashType = agx::HashTable< agx::Vec3i, float >
 
- Public Types inherited from agxTerrain::BasicGrid
using GridCoord = agx::Vec3i
 
using GridCoordVector = agx::VectorPOD< GridCoord >
 
using GridFunction = std::function< void(GridCoord, float)>
 

Public Member Functions

 HashVoxelGrid (float defaultValue, agx::Real voxelSize)
 
 ~HashVoxelGrid ()
 
 AGXSTREAM_DECLARE_SERIALIZABLE_BASE (agxTerrain::HashVoxelGrid)
 
virtual void clearGrid () override
 Clear the grid.
 
virtual bool empty () override
 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 override
 Find which voxels that overlap with a geometry.
 
virtual GridCoordVector getActiveVoxelIndices () const override
 
virtual agx::Vec3 getElementSize () const override
 Get the element size used for the voxel grid.
 
virtual float getFloatValue (const GridCoord &ijk) const override
 Return value for voxel ijk.
 
virtual size_t getMemoryUsage () const override
 Get the memory usage.
 
virtual size_t getNumActiveVoxels () const override
 Return number of active voxels in the data structure.
 
virtual agx::Real getTotal () const override
 Returns the sum of all voxel values.
 
virtual std::tuple< float, float > getTotalAndLargest () const override
 
virtual bool hasIterateSupport () const override
 
virtual bool isActiveVoxel (const GridCoord &ijk) const override
 Test if voxel ijk is active.
 
virtual void iterateVoxels (GridFunction) const override
 
virtual void setFloatValue (const GridCoord &ijk, float value) override
 Set value for voxel ijk.
 
virtual void sizeHint (size_t hint) override
 Provide the implementation with a hint about the estimated number of voxels that are needed.
 
- 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.
 

Static Public Member Functions

static agxStream::Serializablecreate (agxStream::InputArchive &)
 
- 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

 HashVoxelGrid ()
 
- 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 ()
 

Additional Inherited Members

- 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

Class implementing the BasicGrid interface.

Definition at line 27 of file HashVoxelGrid.h.

Member Typedef Documentation

◆ VoxelHashType

Constructor & Destructor Documentation

◆ HashVoxelGrid() [1/2]

agxTerrain::HashVoxelGrid::HashVoxelGrid ( float  defaultValue,
agx::Real  voxelSize 
)

◆ ~HashVoxelGrid()

agxTerrain::HashVoxelGrid::~HashVoxelGrid ( )

◆ HashVoxelGrid() [2/2]

agxTerrain::HashVoxelGrid::HashVoxelGrid ( )
protected

Member Function Documentation

◆ AGXSTREAM_DECLARE_SERIALIZABLE_BASE()

agxTerrain::HashVoxelGrid::AGXSTREAM_DECLARE_SERIALIZABLE_BASE ( agxTerrain::HashVoxelGrid  )

◆ clearGrid()

virtual void agxTerrain::HashVoxelGrid::clearGrid ( )
overridevirtual

Clear the grid.

Implements agxTerrain::BasicGrid.

◆ create()

static agxStream::Serializable * agxTerrain::HashVoxelGrid::create ( agxStream::InputArchive )
inlinestatic

Definition at line 71 of file HashVoxelGrid.h.

◆ empty()

virtual bool agxTerrain::HashVoxelGrid::empty ( )
overridevirtual

Test if the trid is empty.

Implements agxTerrain::BasicGrid.

◆ findGeometryVoxelIntersections()

virtual agx::HashSet< agx::Vec3i > agxTerrain::HashVoxelGrid::findGeometryVoxelIntersections ( const agx::AffineMatrix4x4 gridTransform,
const agxCollide::Geometry geometry,
agx::Real  voxelSize,
bool  onlyOccupiedVoxels = true,
bool  onlyMidPoint = false 
) const
overridevirtual

Find which voxels that overlap with a geometry.

Implements agxTerrain::BasicGrid.

◆ getActiveVoxelIndices()

virtual GridCoordVector agxTerrain::HashVoxelGrid::getActiveVoxelIndices ( ) const
overridevirtual

Implements agxTerrain::BasicGrid.

◆ getElementSize()

virtual agx::Vec3 agxTerrain::HashVoxelGrid::getElementSize ( ) const
overridevirtual

Get the element size used for the voxel grid.

Implements agxTerrain::BasicGrid.

◆ getFloatValue()

virtual float agxTerrain::HashVoxelGrid::getFloatValue ( const GridCoord ijk) const
overridevirtual

Return value for voxel ijk.

Implements agxTerrain::BasicGrid.

◆ getMemoryUsage()

virtual size_t agxTerrain::HashVoxelGrid::getMemoryUsage ( ) const
overridevirtual

Get the memory usage.

Implements agxTerrain::BasicGrid.

◆ getNumActiveVoxels()

virtual size_t agxTerrain::HashVoxelGrid::getNumActiveVoxels ( ) const
overridevirtual

Return number of active voxels in the data structure.

Implements agxTerrain::BasicGrid.

◆ getTotal()

virtual agx::Real agxTerrain::HashVoxelGrid::getTotal ( ) const
overridevirtual

Returns the sum of all voxel values.

Implements agxTerrain::BasicGrid.

◆ getTotalAndLargest()

virtual std::tuple< float, float > agxTerrain::HashVoxelGrid::getTotalAndLargest ( ) const
overridevirtual

Implements agxTerrain::BasicGrid.

◆ hasIterateSupport()

virtual bool agxTerrain::HashVoxelGrid::hasIterateSupport ( ) const
overridevirtual

Reimplemented from agxTerrain::BasicGrid.

◆ isActiveVoxel()

virtual bool agxTerrain::HashVoxelGrid::isActiveVoxel ( const GridCoord ) const
overridevirtual

Test if voxel ijk is active.

Implements agxTerrain::BasicGrid.

◆ iterateVoxels()

virtual void agxTerrain::HashVoxelGrid::iterateVoxels ( GridFunction  ) const
overridevirtual

Reimplemented from agxTerrain::BasicGrid.

◆ setFloatValue()

virtual void agxTerrain::HashVoxelGrid::setFloatValue ( const GridCoord ijk,
float  value 
)
overridevirtual

Set value for voxel ijk.

Implements agxTerrain::BasicGrid.

◆ sizeHint()

virtual void agxTerrain::HashVoxelGrid::sizeHint ( size_t  )
overridevirtual

Provide the implementation with a hint about the estimated number of voxels that are needed.

Reimplemented from agxTerrain::BasicGrid.


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