summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_line_layer.cpp
diff options
context:
space:
mode:
authorJuha Alanen <juha.alanen@mapbox.com>2019-08-21 16:12:25 +0300
committerJuha Alanen <19551460+jmalanen@users.noreply.github.com>2019-09-18 14:29:15 +0300
commit7ce9b0d47d794411bdf1315e22b6b8234c4f1a9d (patch)
tree1df667efa578e5595819f61d5fb476ef82b9bebc /src/mbgl/renderer/layers/render_line_layer.cpp
parent598df1897dcad6f0a003fbae5d9058b1a660f408 (diff)
downloadqtlocation-mapboxgl-7ce9b0d47d794411bdf1315e22b6b8234c4f1a9d.tar.gz
[core] Feature state support to RenderLayer classes
Diffstat (limited to 'src/mbgl/renderer/layers/render_line_layer.cpp')
-rw-r--r--src/mbgl/renderer/layers/render_line_layer.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp
index 6d635f65e7..fe3ca00f06 100644
--- a/src/mbgl/renderer/layers/render_line_layer.cpp
+++ b/src/mbgl/renderer/layers/render_line_layer.cpp
@@ -263,7 +263,8 @@ bool RenderLineLayer::queryIntersectsFeature(
const float zoom,
const TransformState& transformState,
const float pixelsToTileUnits,
- const mat4&) const {
+ const mat4&,
+ const FeatureState& featureState) const {
const auto& evaluated = static_cast<const LineLayerProperties&>(*evaluatedProperties).evaluated;
// Translate query geometry
auto translatedQueryGeometry = FeatureIndex::translateQueryGeometry(
@@ -275,9 +276,9 @@ bool RenderLineLayer::queryIntersectsFeature(
// Evaluate function
auto offset = evaluated.get<style::LineOffset>()
- .evaluate(feature, zoom, style::LineOffset::defaultValue()) * pixelsToTileUnits;
+ .evaluate(feature, zoom, featureState, style::LineOffset::defaultValue()) * pixelsToTileUnits;
// Test intersection
- const float halfWidth = getLineWidth(feature, zoom) / 2.0 * pixelsToTileUnits;
+ const float halfWidth = getLineWidth(feature, zoom, featureState) / 2.0 * pixelsToTileUnits;
// Apply offset to geometry
if (offset != 0.0f && !feature.getGeometries().empty()) {
@@ -314,12 +315,12 @@ void RenderLineLayer::updateColorRamp() {
}
}
-float RenderLineLayer::getLineWidth(const GeometryTileFeature& feature, const float zoom) const {
+float RenderLineLayer::getLineWidth(const GeometryTileFeature& feature, const float zoom, const FeatureState& featureState) const {
const auto& evaluated = static_cast<const LineLayerProperties&>(*evaluatedProperties).evaluated;
float lineWidth = evaluated.get<style::LineWidth>()
- .evaluate(feature, zoom, style::LineWidth::defaultValue());
+ .evaluate(feature, zoom, featureState, style::LineWidth::defaultValue());
float gapWidth = evaluated.get<style::LineGapWidth>()
- .evaluate(feature, zoom, style::LineGapWidth::defaultValue());
+ .evaluate(feature, zoom, featureState, style::LineGapWidth::defaultValue());
if (gapWidth) {
return gapWidth + 2 * lineWidth;
} else {