diff options
author | Juha Alanen <juha.alanen@mapbox.com> | 2019-08-21 16:12:25 +0300 |
---|---|---|
committer | Juha Alanen <19551460+jmalanen@users.noreply.github.com> | 2019-09-18 14:29:15 +0300 |
commit | 7ce9b0d47d794411bdf1315e22b6b8234c4f1a9d (patch) | |
tree | 1df667efa578e5595819f61d5fb476ef82b9bebc /src/mbgl/renderer/layers/render_line_layer.cpp | |
parent | 598df1897dcad6f0a003fbae5d9058b1a660f408 (diff) | |
download | qtlocation-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.cpp | 13 |
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 { |