diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-08-01 16:36:14 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-08-13 15:20:46 +0300 |
commit | ead71325489b16b8b256d3e9c826394c5dbc9bbb (patch) | |
tree | 04716fadcf32647eef459af0db5f5ec6c0680c37 /src | |
parent | 0c0bee52cb418d7b94d387b7393e7ef8fd4939be (diff) | |
download | qtlocation-mapboxgl-ead71325489b16b8b256d3e9c826394c5dbc9bbb.tar.gz |
[core] Simplifications to variable text placement code path
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/text/placement.cpp | 18 | ||||
-rw-r--r-- | src/mbgl/text/placement.hpp | 4 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/mbgl/text/placement.cpp b/src/mbgl/text/placement.cpp index de282acf79..320cc0fbfa 100644 --- a/src/mbgl/text/placement.cpp +++ b/src/mbgl/text/placement.cpp @@ -584,15 +584,13 @@ bool Placement::updateBucketDynamicVertices(SymbolBucket& bucket, const Transfor if (pitchWithMap) { shiftedAnchor = project(Point<float>(tileAnchor.x + shift.x, tileAnchor.y + shift.y), labelPlaneMatrix).first; + } else if (rotateWithMap) { + auto rotated = util::rotate(shift, -state.getPitch()); + shiftedAnchor = Point<float>(projectedAnchor.first.x + rotated.x, + projectedAnchor.first.y + rotated.y); } else { - if (rotateWithMap) { - auto rotated = util::rotate(shift, -state.getPitch()); - shiftedAnchor = Point<float>(projectedAnchor.first.x + rotated.x, - projectedAnchor.first.y + rotated.y); - } else { - shiftedAnchor = Point<float>(projectedAnchor.first.x + shift.x, - projectedAnchor.first.y + shift.y); - } + shiftedAnchor = Point<float>(projectedAnchor.first.x + shift.x, + projectedAnchor.first.y + shift.y); } for (std::size_t i = 0; i < symbol.glyphOffsets.size(); ++i) { @@ -806,7 +804,7 @@ const style::TextJustifyType justifyTypes[] = {style::TextJustifyType::Right, st } // namespace -void Placement::markUsedJustification(SymbolBucket& bucket, style::TextVariableAnchorType placedAnchor, SymbolInstance& symbolInstance, style::TextWritingModeType orientation) { +void Placement::markUsedJustification(SymbolBucket& bucket, style::TextVariableAnchorType placedAnchor, const SymbolInstance& symbolInstance, style::TextWritingModeType orientation) { style::TextJustifyType anchorJustify = getAnchorJustification(placedAnchor); assert(anchorJustify != style::TextJustifyType::Auto); const optional<size_t>& autoIndex = justificationToIndex(anchorJustify, symbolInstance, orientation); @@ -826,7 +824,7 @@ void Placement::markUsedJustification(SymbolBucket& bucket, style::TextVariableA } } -void Placement::markUsedOrientation(SymbolBucket& bucket, style::TextWritingModeType orientation, SymbolInstance& symbolInstance) { +void Placement::markUsedOrientation(SymbolBucket& bucket, style::TextWritingModeType orientation, const SymbolInstance& symbolInstance) { auto horizontal = orientation == style::TextWritingModeType::Horizontal ? optional<style::TextWritingModeType>(orientation) : nullopt; auto vertical = orientation == style::TextWritingModeType::Vertical ? diff --git a/src/mbgl/text/placement.hpp b/src/mbgl/text/placement.hpp index 33bfbd6527..722a4a0926 100644 --- a/src/mbgl/text/placement.hpp +++ b/src/mbgl/text/placement.hpp @@ -123,8 +123,8 @@ private: // Returns `true` if bucket vertices were updated; returns `false` otherwise. bool updateBucketDynamicVertices(SymbolBucket&, const TransformState&, const RenderTile& tile) const; void updateBucketOpacities(SymbolBucket&, const TransformState&, std::set<uint32_t>&); - void markUsedJustification(SymbolBucket&, style::TextVariableAnchorType, SymbolInstance&, style::TextWritingModeType orientation); - void markUsedOrientation(SymbolBucket&, style::TextWritingModeType, SymbolInstance&); + void markUsedJustification(SymbolBucket&, style::TextVariableAnchorType, const SymbolInstance&, style::TextWritingModeType orientation); + void markUsedOrientation(SymbolBucket&, style::TextWritingModeType, const SymbolInstance&); CollisionIndex collisionIndex; |