4 #ifndef FIRE_GEAR_GROUP__HPP_INCLUDED
5 #define FIRE_GEAR_GROUP__HPP_INCLUDED
7 #include <geos/index/SpatialIndex.h>
9 #include <boost/smart_ptr/shared_ptr.hpp>
14 #include "fire/export.hpp"
16 #include "fire/Group.hpp"
17 #include "fire/gear/geom/SpatialIndexType.hpp"
18 #include "fire/gear/Filter.hpp"
19 #include "fire/gear/event/EntityEventListener.hpp"
20 #include "fire/gear/event/EntityEvent.hpp"
78 explicit EntityEventListener(
Group* group) {
81 }
catch (
const std::exception& exception) {
94 switch (entityEvent.
getType()) {
95 case gear::event::EntityEventType::Unknown:
96 case gear::event::EntityEventType::AfterDestroy: {
99 case gear::event::EntityEventType::BeforeUpdate: {
100 _group->beforeUpdate(entity);
103 case gear::event::EntityEventType::AfterUpdate: {
104 _group->afterUpdate(entity);
107 case gear::event::EntityEventType::BeforeDestroy: {
108 _group->exclude(entity);
112 }
catch (
const std::exception& exception) {
132 boost::shared_ptr< geos::index::SpatialIndex > _spatialIndex;
146 Group::EntityEventListener* _entityEventListener;
227 void include(
Entity* entity);
240 void exclude(
Entity* entity);
266 bool contains(
Entity* entity)
const;
339 void revokeSpatialIndex();
363 void setSrid(
int srid);
375 void beforeUpdate(
Entity* entity);
387 void afterUpdate(
Entity* entity);
399 std::vector< geom::Geometry* > toGeometryVector()
const;
416 std::vector< Entity* > spatialIndexQuery(
Entity* entity,
int& spatialSize,
int& depth);
fire::gear::event::EntityEventType::EntityEventType getType() const
Restituisce il tipo dell'evento di entità
fire::gear::Entity * getEntity() const
Restituisce l'entità dell'evento.
Definition: Entity.hpp:44
Classe per la gestione di un ascoltatore di un evento di entità
Definition: EntityEventListener.hpp:34
Classe per la gestione di un eventi di entità
Definition: EntityEvent.hpp:39
Classe per la gestione di un gruppo di oggetti generici.
Definition: Group.hpp:33
classe che specializza la classe template fire::Filter con la classe Entity la classe Filter e' utili...
Definition: Filter.hpp:47
SpatialIndexType
Definition: SpatialIndexType.hpp:41