diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-01-06 13:26:58 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-01-10 10:15:22 -0800 |
commit | ea4c0b77c39926c770b0003097509e36dc26621d (patch) | |
tree | cd84e61a2905e878b3f0ca04570d053047678059 /src | |
parent | 40051fb68ec710c5d83795740d0e3e8c75bb3cb3 (diff) | |
download | qtlocation-mapboxgl-ea4c0b77c39926c770b0003097509e36dc26621d.tar.gz |
[core] Replace FeatureIndex::collisionTile with a method parameter
This reduces state and simplifies the test added in the prior commit.
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/geometry/feature_index.cpp | 7 | ||||
-rw-r--r-- | src/mbgl/geometry/feature_index.hpp | 6 | ||||
-rw-r--r-- | src/mbgl/text/collision_tile.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/text/collision_tile.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.hpp | 4 |
6 files changed, 12 insertions, 14 deletions
diff --git a/src/mbgl/geometry/feature_index.cpp b/src/mbgl/geometry/feature_index.cpp index b37bdb5ecc..a04d9e0606 100644 --- a/src/mbgl/geometry/feature_index.cpp +++ b/src/mbgl/geometry/feature_index.cpp @@ -59,7 +59,8 @@ void FeatureIndex::query( const optional<std::vector<std::string>>& filterLayerIDs, const GeometryTileData& geometryTileData, const CanonicalTileID& tileID, - const style::Style& style) const { + const style::Style& style, + const CollisionTile* collisionTile) const { mapbox::geometry::box<int16_t> box = mapbox::geometry::envelope(queryGeometry); @@ -154,8 +155,4 @@ void FeatureIndex::addBucketLayerName(const std::string& bucketName, const std:: bucketLayerIDs[bucketName].push_back(layerID); } -void FeatureIndex::setCollisionTile(std::unique_ptr<CollisionTile> collisionTile_) { - collisionTile = std::move(collisionTile_); -} - } // namespace mbgl diff --git a/src/mbgl/geometry/feature_index.hpp b/src/mbgl/geometry/feature_index.hpp index 021770c78d..662e78aa2c 100644 --- a/src/mbgl/geometry/feature_index.hpp +++ b/src/mbgl/geometry/feature_index.hpp @@ -42,7 +42,8 @@ public: const optional<std::vector<std::string>>& layerIDs, const GeometryTileData&, const CanonicalTileID&, - const style::Style&) const; + const style::Style&, + const CollisionTile*) const; static optional<GeometryCoordinates> translateQueryGeometry( const GeometryCoordinates& queryGeometry, @@ -53,8 +54,6 @@ public: void addBucketLayerName(const std::string& bucketName, const std::string& layerName); - void setCollisionTile(std::unique_ptr<CollisionTile>); - private: void addFeature( std::unordered_map<std::string, std::vector<Feature>>& result, @@ -67,7 +66,6 @@ private: const float bearing, const float pixelsToTileUnits) const; - std::unique_ptr<CollisionTile> collisionTile; GridIndex<IndexedSubfeature> grid; unsigned int sortIndex = 0; diff --git a/src/mbgl/text/collision_tile.cpp b/src/mbgl/text/collision_tile.cpp index 419ab31a79..368750c89f 100644 --- a/src/mbgl/text/collision_tile.cpp +++ b/src/mbgl/text/collision_tile.cpp @@ -168,7 +168,7 @@ Box CollisionTile::getTreeBox(const Point<float>& anchor, const CollisionBox& bo }; } -std::vector<IndexedSubfeature> CollisionTile::queryRenderedSymbols(const GeometryCoordinates& queryGeometry, float scale) { +std::vector<IndexedSubfeature> CollisionTile::queryRenderedSymbols(const GeometryCoordinates& queryGeometry, float scale) const { std::vector<IndexedSubfeature> result; if (queryGeometry.empty() || (tree.empty() && ignoredTree.empty())) { return result; diff --git a/src/mbgl/text/collision_tile.hpp b/src/mbgl/text/collision_tile.hpp index 186cd19d28..ea4324edaf 100644 --- a/src/mbgl/text/collision_tile.hpp +++ b/src/mbgl/text/collision_tile.hpp @@ -42,7 +42,7 @@ public: float placeFeature(const CollisionFeature&, bool allowOverlap, bool avoidEdges); void insertFeature(CollisionFeature&, float minPlacementScale, bool ignorePlacement); - std::vector<IndexedSubfeature> queryRenderedSymbols(const GeometryCoordinates&, float scale); + std::vector<IndexedSubfeature> queryRenderedSymbols(const GeometryCoordinates&, float scale) const; const PlacementConfig config; diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp index 4c5a61672d..9aeb35c821 100644 --- a/src/mbgl/tile/geometry_tile.cpp +++ b/src/mbgl/tile/geometry_tile.cpp @@ -117,7 +117,7 @@ void GeometryTile::onPlacement(PlacementResult result) { availableData = DataAvailability::All; } symbolBuckets = std::move(result.symbolBuckets); - featureIndex->setCollisionTile(std::move(result.collisionTile)); + collisionTile = std::move(result.collisionTile); observer->onTileChanged(*this); } @@ -153,7 +153,8 @@ void GeometryTile::queryRenderedFeatures( layerIDs, *data, id.canonical, - style); + style, + collisionTile.get()); } } // namespace mbgl diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp index 5e7e501e89..c61a510311 100644 --- a/src/mbgl/tile/geometry_tile.hpp +++ b/src/mbgl/tile/geometry_tile.hpp @@ -81,9 +81,11 @@ private: optional<PlacementConfig> requestedConfig; std::unordered_map<std::string, std::shared_ptr<Bucket>> nonSymbolBuckets; - std::unordered_map<std::string, std::shared_ptr<Bucket>> symbolBuckets; std::unique_ptr<FeatureIndex> featureIndex; std::unique_ptr<const GeometryTileData> data; + + std::unordered_map<std::string, std::shared_ptr<Bucket>> symbolBuckets; + std::unique_ptr<CollisionTile> collisionTile; }; } // namespace mbgl |