diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-05-16 15:53:47 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-05-19 18:15:33 +0300 |
commit | 9fe5256ce7121e28572239757df63a7c20144be5 (patch) | |
tree | 5cc4329450c9bf4c140f4bfa3a0f845c95406afe /src/mbgl/text/placement.hpp | |
parent | 18ddced9b6de8194fe0cb3464ec8b3a56139a063 (diff) | |
download | qtlocation-mapboxgl-9fe5256ce7121e28572239757df63a7c20144be5.tar.gz |
[core] Avoid bucket downcasting in Placement
Diffstat (limited to 'src/mbgl/text/placement.hpp')
-rw-r--r-- | src/mbgl/text/placement.hpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/mbgl/text/placement.hpp b/src/mbgl/text/placement.hpp index 8dcb7e3ff9..e0fcac3350 100644 --- a/src/mbgl/text/placement.hpp +++ b/src/mbgl/text/placement.hpp @@ -87,6 +87,18 @@ private: uint16_t maxGroupID; bool crossSourceCollisions; }; + +class BucketPlacementParameters { +public: + const mat4& posMatrix; + const mat4& textLabelPlaneMatrix; + const mat4& iconLabelPlaneMatrix; + float scale; + float pixelRatio; + bool showCollisionBoxes; + bool holdingForFade; + const CollisionGroups::CollisionGroup& collisionGroup; +}; class Placement { public: @@ -108,17 +120,11 @@ public: const VariableOffsets& getVariableOffsets() const { return variableOffsets; } private: + friend SymbolBucket; void placeLayerBucket( SymbolBucket&, - const mat4& posMatrix, - const mat4& textLabelPlaneMatrix, - const mat4& iconLabelPlaneMatrix, - const float scale, - const float pixelRatio, - const bool showCollisionBoxes, - std::unordered_set<uint32_t>& seenCrossTileIDs, - const bool holdingForFade, - const CollisionGroups::CollisionGroup& collisionGroup); + const BucketPlacementParameters&, + std::set<uint32_t>& seenCrossTileIDs); void updateBucketOpacities(SymbolBucket&, std::set<uint32_t>&); void markUsedJustification(SymbolBucket&, style::TextVariableAnchorType, SymbolInstance&); |