summaryrefslogtreecommitdiff
path: root/src/mbgl/text/placement.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/text/placement.hpp')
-rw-r--r--src/mbgl/text/placement.hpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/mbgl/text/placement.hpp b/src/mbgl/text/placement.hpp
index 82a62718a4..864f195c80 100644
--- a/src/mbgl/text/placement.hpp
+++ b/src/mbgl/text/placement.hpp
@@ -123,8 +123,8 @@ public:
virtual float symbolFadeChange(TimePoint now) const;
virtual bool hasTransitions(TimePoint now) const;
virtual bool transitionsEnabled() const;
- virtual void collectPlacedSymbolData(bool /*enable*/) {}
- virtual const std::vector<PlacedSymbolData>& getPlacedSymbolsData() const;
+ void collectPlacedSymbolData(bool enable) { collectData = enable; }
+ const std::vector<PlacedSymbolData>& getPlacedSymbolsData() const;
const CollisionIndex& getCollisionIndex() const;
TimePoint getCommitTime() const { return commitTime; }
@@ -145,12 +145,13 @@ protected:
JointPlacement placeSymbol(const SymbolInstance& symbolInstance, const PlacementContext&);
void placeLayer(const RenderLayer&, std::set<uint32_t>&);
virtual void commit();
- virtual void newSymbolPlaced(const SymbolInstance&,
- const PlacementContext&,
- const JointPlacement&,
- style::SymbolPlacementType,
- const std::vector<ProjectedCollisionBox>& /*textBoxes*/,
- const std::vector<ProjectedCollisionBox>& /*iconBoxes*/) {}
+ // Returns `true` if data was recorded, otherwise returns `false`.
+ virtual bool recordSymbolPlacement(const SymbolInstance&,
+ const PlacementContext&,
+ const JointPlacement&,
+ style::SymbolPlacementType,
+ const std::vector<ProjectedCollisionBox>& textBoxes,
+ const std::vector<ProjectedCollisionBox>& iconBoxes);
// Implentation specific hooks, which get called during a symbol bucket placement.
virtual optional<CollisionBoundaries> getAvoidEdges(const SymbolBucket&, const mat4& /*posMatrix*/) {
return nullopt;
@@ -195,6 +196,8 @@ protected:
CollisionGroups collisionGroups;
mutable optional<Immutable<Placement>> prevPlacement;
bool showCollisionBoxes = false;
+ std::vector<PlacedSymbolData> placedSymbolsData;
+ bool collectData = false;
// Cache being used by placeSymbol()
std::vector<ProjectedCollisionBox> textBoxes;