summaryrefslogtreecommitdiff
path: root/src/mbgl/text/placement.hpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-16 15:53:47 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-05-19 18:15:33 +0300
commit9fe5256ce7121e28572239757df63a7c20144be5 (patch)
tree5cc4329450c9bf4c140f4bfa3a0f845c95406afe /src/mbgl/text/placement.hpp
parent18ddced9b6de8194fe0cb3464ec8b3a56139a063 (diff)
downloadqtlocation-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.hpp24
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&);