Defines the basic space hash. More...
#include <space_hash.h>
Public Member Functions | |
virtual void | Update () |
Updates the entire space hash. More... | |
Public Member Functions inherited from argos::CAbstractSpaceHash< ENTITY > | |
CAbstractSpaceHash () | |
Class constructor. More... | |
virtual | ~CAbstractSpaceHash () |
Class destructor. More... | |
virtual void | AddEntity (ENTITY &c_entity) |
Adds an entity to the space hash. More... | |
TEntityList & | GetEntities () |
Returns the list of entities held by this space hash. More... | |
virtual void | RemoveEntity (ENTITY &c_entity) |
Remove an entity from the space hash. More... | |
size_t | GetSize () |
Returns the size of the space hash. More... | |
virtual void | SetSize (size_t un_size) |
Sets the size of the space hash. More... | |
CVector3 & | GetCellSize () |
Returns the size of the cells of the space hash. More... | |
CVector3 & | GetInvCellSize () |
Returns the inverse size of the cells of the space hash. More... | |
virtual void | SetCellSize (const CVector3 &c_cell_size) |
Sets the size of the cells of the space hash. More... | |
virtual void | UpdateCell (SInt32 n_x, SInt32 n_y, SInt32 n_z, ENTITY &c_entity)=0 |
Adds an entity to a cell of the space hash. More... | |
virtual SInt32 | SpaceToHashTable (Real f_coord, UInt32 un_axis) |
Converts a single space coordinate into a space hash cell coordinate. More... | |
virtual Real | HashTableToSpace (SInt32 n_coord, UInt32 un_axis) |
Converts a single space hash cell coordinate into a space coordinate. More... | |
virtual void | SpaceToHashTable (SInt32 &n_i, SInt32 &n_j, SInt32 &n_k, const CVector3 &c_pos) |
Converts a space position into a space hash cell The values are written into n_i, n_j, and n_k. More... | |
virtual bool | CheckCell (SInt32 n_i, SInt32 n_j, SInt32 n_k, TEntityList &t_entities)=0 |
Looks for entities to process in a cell. More... | |
virtual void | Dump (CARGoSLog &c_os)=0 |
Public Member Functions inherited from argos::CPositionalIndex< ENTITY > | |
CPositionalIndex () | |
virtual | ~CPositionalIndex () |
virtual void | Init (TConfigurationNode &t_tree)=0 |
Initializes the resource. More... | |
virtual void | Reset ()=0 |
Resets the resource. More... | |
virtual void | Destroy ()=0 |
Undoes whatever was done by Init(). More... | |
virtual void | GetEntitiesAt (CSet< ENTITY *, SEntityComparator > &c_entities, const CVector3 &c_position) const =0 |
Puts the entities located at the given point in the passed buffer. More... | |
virtual void | ForAllEntities (COperation &c_operation)=0 |
Executes an operation on all the indexed entities. More... | |
virtual void | ForEntitiesInSphereRange (const CVector3 &c_center, Real f_radius, COperation &c_operation)=0 |
Executes an operation on all entities within the specified sphere range. More... | |
virtual void | ForEntitiesInBoxRange (const CVector3 &c_center, const CVector3 &c_half_size, COperation &c_operation)=0 |
Executes an operation on all entities within the specified box range. More... | |
virtual void | ForEntitiesInCircleRange (const CVector3 &c_center, Real f_radius, COperation &c_operation)=0 |
Executes an operation on all entities within the specified circle range. More... | |
virtual void | ForEntitiesInRectangleRange (const CVector3 &c_center, const CVector2 &c_half_size, COperation &c_operation)=0 |
Executes an operation on all entities within the specified rectangle range. More... | |
virtual void | ForEntitiesAlongRay (const CRay3 &c_ray, COperation &c_operation, bool b_stop_at_closest_match=false)=0 |
Executes an operation on all entities that intersect the given ray. More... | |
Additional Inherited Members | |
Public Types inherited from argos::CAbstractSpaceHash< ENTITY > | |
typedef CSet< ENTITY * > | TEntityList |
Type definition for the list of entities held by the space hash. More... | |
Protected Member Functions inherited from argos::CAbstractSpaceHash< ENTITY > | |
UInt32 | CoordinateHash (SInt32 n_i, SInt32 n_j, SInt32 n_k) |
Calculates the hash of a space hash coordinate. More... | |
Defines the basic space hash.
If you want to create a new space hash implementation, you need to extend this class.
ENTITY | The type of entity held by the corresponding space hash |
UPDATER | The cell updater for type ENTITY |
Definition at line 300 of file space_hash.h.
|
inlinevirtual |
Updates the entire space hash.
It calls the updater for all the entities held by the space hash.
Implements argos::CAbstractSpaceHash< ENTITY >.
Reimplemented in argos::CSpaceHashNative< Element, Updater >.
Definition at line 309 of file space_hash.h.