summaryrefslogtreecommitdiff
path: root/src/mbgl/layout/pattern_layout.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/layout/pattern_layout.hpp')
-rw-r--r--src/mbgl/layout/pattern_layout.hpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/src/mbgl/layout/pattern_layout.hpp b/src/mbgl/layout/pattern_layout.hpp
index 81ff3996db..8d612d2589 100644
--- a/src/mbgl/layout/pattern_layout.hpp
+++ b/src/mbgl/layout/pattern_layout.hpp
@@ -45,7 +45,8 @@ struct PatternFeatureInserter<void> {
std::unique_ptr<GeometryTileFeature> feature,
PatternLayerMap patternDependencyMap,
float /*zoom*/,
- const PropertiesType&) {
+ const PropertiesType&,
+ const CanonicalTileID&) {
features.emplace_back(index, std::move(feature), std::move(patternDependencyMap));
}
};
@@ -58,9 +59,10 @@ struct PatternFeatureInserter {
std::unique_ptr<GeometryTileFeature> feature,
PatternLayerMap patternDependencyMap,
float zoom,
- const PropertiesType& properties) {
+ const PropertiesType& properties,
+ const CanonicalTileID& canonical) {
const auto& sortKeyProperty = properties.template get<SortKeyPropertyType>();
- float sortKey = sortKeyProperty.evaluate(*feature, zoom, SortKeyPropertyType::defaultValue());
+ float sortKey = sortKeyProperty.evaluate(*feature, zoom, canonical, SortKeyPropertyType::defaultValue());
PatternFeature patternFeature{index, std::move(feature), std::move(patternDependencyMap), sortKey};
const auto lowerBound = std::lower_bound(features.cbegin(), features.cend(), patternFeature);
features.insert(lowerBound, std::move(patternFeature));
@@ -127,12 +129,17 @@ public:
const auto min = patternProperty.evaluate(*feature,
zoom - 1,
layoutParameters.availableImages,
+ parameters.tileID.canonical,
+ PatternPropertyType::defaultValue());
+ const auto mid = patternProperty.evaluate(*feature,
+ zoom,
+ layoutParameters.availableImages,
+ parameters.tileID.canonical,
PatternPropertyType::defaultValue());
- const auto mid = patternProperty.evaluate(
- *feature, zoom, layoutParameters.availableImages, PatternPropertyType::defaultValue());
const auto max = patternProperty.evaluate(*feature,
zoom + 1,
layoutParameters.availableImages,
+ parameters.tileID.canonical,
PatternPropertyType::defaultValue());
layoutParameters.imageDependencies.emplace(min.to.id(), ImageType::Pattern);
@@ -145,14 +152,17 @@ public:
}
}
- PatternFeatureInserter<SortKeyPropertyType>::insert(
- features, i, std::move(feature), std::move(patternDependencyMap), zoom, layout);
+ PatternFeatureInserter<SortKeyPropertyType>::insert(features,
+ i,
+ std::move(feature),
+ std::move(patternDependencyMap),
+ zoom,
+ layout,
+ parameters.tileID.canonical);
}
};
- bool hasDependencies() const override {
- return hasPattern;
- }
+ bool hasDependencies() const override { return hasPattern; }
void createBucket(const ImagePositions& patternPositions,
std::unique_ptr<FeatureIndex>& featureIndex,