The following methods are added to the `Renderer` class:
- `collectPlacedSymbolData()`
enables or disables collecting of the placed symbols data
- `getPlacedSymbolsData()`
if collecting of the placed symbols data is enabled, returns the
reference to the `PlacedSymbolData` vector holding the collected data.
Thus, we reduce the amount of label cut-offs in Tile mode.
Before, labels were arranged within one symbol layer (one bucket),
which was not enough for several symbol layers being placed at the
same time.
If the view is not tilted, we want the new symbols to show up faster, so we squeeze the placement period.
On contrary, with the tilted view it's more important to make placement rarely for performance reasons and as the new symbols are normally "far away" and the user is not that interested to see them ASAP.
Tile mode placement algorithm now checks if bounding boxes for both label text and icon are intersecting the edges of the tiles.
Before, it checked only text bounding boxes and thus label icons might have got cut off.
This change fixes the following problems:
1) Before this change, when multiple symbols were grouped close to the
tile borders, different tiles could place different symbols, because each
tile arbitrary assigned feature ids, and these ids defined the placement
order being applied. This caused artifacts at the tile boundaries.
With this change, in tile mode the placement order of two symbols crossing
a tile border is defined by their anchor `y` values. It means that the
symbols are being placed the same order across all the tiles.
2) Before this change, the engine did not place with priority the symbols
crossing the borders between two neighboring tiles. Now it does, and it
improves a lot symbol placement stability in the tile map mode.
* [core] fix cutoff cross-tile labels in MapMode::Tile
Increase the CollisionIndex's padding so that more of a tile's data gets
considered when checking for collisions. This should fix clipped
variable placement text labels.
* [core] fix icon symbol rendring when sdf and non-sdf icon in the same symbol layer
* fix build error
* fix typo
* revert renderableSegment change
* simplify codes
* fix build error
* refine sdf icon flag
* [core] fix mixed sdf + non-sdf icon rendering in one layer
* remove iconstatus getter in stymbol bucket
* fix review findings
* provide bitwise operator for SymbolContent enum
* use MBGL_MBGL_CONSTEXPR
* add one missing update for sdfIcon
* make renderer symbol type as enum