diff options
Diffstat (limited to 'src/util/areastore.h')
-rw-r--r-- | src/util/areastore.h | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/src/util/areastore.h b/src/util/areastore.h index 150a043db..9a44bf231 100644 --- a/src/util/areastore.h +++ b/src/util/areastore.h @@ -28,19 +28,19 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "util/container.h" #include "util/numeric.h" #ifndef ANDROID - #include "cmake_config.h" +#include "cmake_config.h" #endif #if USE_SPATIAL - #include <spatialindex/SpatialIndex.h> - #include "util/serialize.h" +#include <spatialindex/SpatialIndex.h> +#include "util/serialize.h" #endif - -struct Area { +struct Area +{ Area(u32 area_id) : id(area_id) {} Area(const v3s16 &mine, const v3s16 &maxe, u32 area_id = U32_MAX) : - id(area_id), minedge(mine), maxedge(maxe) + id(area_id), minedge(mine), maxedge(maxe) { sortBoxVerticies(minedge, maxedge); } @@ -50,18 +50,16 @@ struct Area { std::string data; }; - -class AreaStore { +class AreaStore +{ public: - AreaStore() : - m_res_cache(1000, &cacheMiss, this) - {} + AreaStore() : m_res_cache(1000, &cacheMiss, this) {} virtual ~AreaStore() = default; static AreaStore *getOptimalImplementation(); - virtual void reserve(size_t count) {}; + virtual void reserve(size_t count){}; size_t size() const { return areas_map.size(); } /// Add an area to the store. @@ -80,8 +78,8 @@ public: /// Finds areas that are completely contained inside the area defined /// by the passed edges. If @p accept_overlap is true this finds any /// areas that intersect with the passed area at any point. - virtual void getAreasInArea(std::vector<Area *> *result, - v3s16 minedge, v3s16 maxedge, bool accept_overlap) = 0; + virtual void getAreasInArea(std::vector<Area *> *result, v3s16 minedge, + v3s16 maxedge, bool accept_overlap) = 0; /// Sets cache parameters. void setCacheParams(bool enabled, u8 block_radius, size_t limit); @@ -124,17 +122,17 @@ private: /// Range, in nodes, of the getAreasForPos cache. /// If you modify this, call invalidateCache() u8 m_cacheblock_radius = 64; - LRUCache<v3s16, std::vector<Area *> > m_res_cache; + LRUCache<v3s16, std::vector<Area *>> m_res_cache; }; - -class VectorAreaStore : public AreaStore { +class VectorAreaStore : public AreaStore +{ public: virtual void reserve(size_t count) { m_areas.reserve(count); } virtual bool insertArea(Area *a); virtual bool removeArea(u32 id); - virtual void getAreasInArea(std::vector<Area *> *result, - v3s16 minedge, v3s16 maxedge, bool accept_overlap); + virtual void getAreasInArea(std::vector<Area *> *result, v3s16 minedge, + v3s16 maxedge, bool accept_overlap); protected: virtual void getAreasForPosImpl(std::vector<Area *> *result, v3s16 pos); @@ -143,18 +141,18 @@ private: std::vector<Area *> m_areas; }; - #if USE_SPATIAL -class SpatialAreaStore : public AreaStore { +class SpatialAreaStore : public AreaStore +{ public: SpatialAreaStore(); virtual ~SpatialAreaStore(); virtual bool insertArea(Area *a); virtual bool removeArea(u32 id); - virtual void getAreasInArea(std::vector<Area *> *result, - v3s16 minedge, v3s16 maxedge, bool accept_overlap); + virtual void getAreasInArea(std::vector<Area *> *result, v3s16 minedge, + v3s16 maxedge, bool accept_overlap); protected: virtual void getAreasForPosImpl(std::vector<Area *> *result, v3s16 pos); @@ -163,12 +161,15 @@ private: SpatialIndex::ISpatialIndex *m_tree = nullptr; SpatialIndex::IStorageManager *m_storagemanager = nullptr; - class VectorResultVisitor : public SpatialIndex::IVisitor { + class VectorResultVisitor : public SpatialIndex::IVisitor + { public: - VectorResultVisitor(std::vector<Area *> *result, SpatialAreaStore *store) : - m_store(store), - m_result(result) - {} + VectorResultVisitor( + std::vector<Area *> *result, SpatialAreaStore *store) : + m_store(store), + m_result(result) + { + } ~VectorResultVisitor() {} virtual void visitNode(const SpatialIndex::INode &in) {} |