1 #ifndef POSITIONAL_INDEX_H 
    2 #define POSITIONAL_INDEX_H 
   10 #include <argos3/core/utility/configuration/base_configurable_resource.h> 
   11 #include <argos3/core/utility/datatypes/datatypes.h> 
   12 #include <argos3/core/utility/datatypes/set.h> 
   13 #include <argos3/core/utility/math/vector2.h> 
   14 #include <argos3/core/utility/math/vector3.h> 
   15 #include <argos3/core/simulator/entity/entity.h> 
   29    template<
class ENTITY>
 
   72       virtual void Reset() = 0;
 
   79       virtual void AddEntity(ENTITY& c_entity) = 0;
 
   98                                  const CVector3& c_position) 
const = 0;
 
  116                                             COperation& c_operation) = 0;
 
  128                                          COperation& c_operation) = 0;
 
  140                                             COperation& c_operation) = 0;
 
  152                                                COperation& c_operation) = 0;
 
  166                                        COperation& c_operation,
 
  167                                        bool b_stop_at_closest_match = 
false) = 0;
 
virtual void RemoveEntity(ENTITY &c_entity)=0
Removes an entity from this index. 
 
float Real
Collects all ARGoS code. 
 
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. 
 
virtual void AddEntity(ENTITY &c_entity)=0
Adds an entity to this index. 
 
A data structure that contains positional entities. 
 
virtual bool operator()(ENTITY &)=0
 
ticpp::Element TConfigurationNode
The ARGoS configuration XML node. 
 
Defines a very simple double-linked list that stores unique elements. 
 
virtual void Init(TConfigurationNode &t_tree)=0
Initializes the resource. 
 
virtual void ForAllEntities(COperation &c_operation)=0
Executes an operation on all the indexed entities. 
 
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. 
 
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. 
 
virtual void Update()=0
Updates this positional index. 
 
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. 
 
The namespace containing all the ARGoS related code. 
 
virtual ~CPositionalIndex()
 
This class is the base of all XML-configurable ARGoS interface. 
 
virtual void Destroy()=0
Undoes whatever was done by Init(). 
 
virtual void Reset()=0
Resets the resource. 
 
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. 
 
The operation to perform on each entity found in range. 
 
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.