This changes image size properties to be scales instead of pixel sizes.
The commit also adds fixes for handling image updates with the same ID,
adds tests for expressions in paint properties, as well as tests for using images
with pixel ratio greater than 1.
Finally it moves image-tilt-displacement and perspective-compensation properties
from layout to paint properties, and includes other minor cleanups.
This change introduces a new property type, Rotation, that uses
a custom interpolator, and that is currently applied to
all style properties named "bearing", with a period attribute.
Now, the intersecting symbols are placed across all layers according to the following rules:
1) First we look, which of the tile border(s) the symbol intersects and prioritize the the symbol accordingly (high priority -> low priority):
vertical & horizontal -> vertical -> horizontal
2) For the symbols that intersect the same tile border(s), assuming the tile border split symbol into several sections, we look at the minimal section length.
The symbol with a larger minimal section length is placed first.
3) Finally, for the symbols that intersect the same tile border(s), and have equal minimal section length, we look at the anchor Y cordinate.
* [build] Fix integer overflow runtime error for core part
Temporarily remove circle ci UBSAN build precondition
* [build] Enable all of the ubsans
[build] Check runtime error
[build] Update UBSAN_OPTION
* [build] Add UBSAN blacklist
[build] Ignore system libraries
[build] Ignore vendor library
* [build] Fix implicit conversion runtime error in core
* [build] Fix division by zero runtime error
* [build] Add unfixed error to ubsan blacklist
* [build] Make UBSAN halt on error
Revert "Temporary remove build precondition"
* [build] Fix division by zero error
* [build] Make UBSAN officially work without FIXME prefix
* [build] Fix implicit conversion from int64_t to uint64_t
* [build] Rename style test json file name
* Address review findings
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.
Now that we have clang-tidy with more checks enable,
make sure the code is tidy before we can move forward
with the pipeline.
Also cascade macOS bots, which are way slower after
basic compilation is done on Linux.