diff options
author | Ansis Brammanis <ansis@mapbox.com> | 2019-11-01 12:53:11 -0400 |
---|---|---|
committer | Ansis Brammanis <ansis@mapbox.com> | 2019-12-06 17:11:52 -0500 |
commit | 08c2da082171843a0d25393d2896348925ad3238 (patch) | |
tree | 5046eee3e2f43dd32d9464ae287ec4a0a0e57492 | |
parent | a7593b007ca7f8fdfcc0fc7c489f4d319b724595 (diff) | |
download | qtlocation-mapboxgl-08c2da082171843a0d25393d2896348925ad3238.tar.gz |
format
-rw-r--r-- | src/mbgl/text/collision_index.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/mbgl/text/collision_index.cpp b/src/mbgl/text/collision_index.cpp index 30502ff7c0..fd28488178 100644 --- a/src/mbgl/text/collision_index.cpp +++ b/src/mbgl/text/collision_index.cpp @@ -27,18 +27,25 @@ static const float viewportPaddingDefault = 100; static const float viewportPaddingForStaticTiles = 1024; CollisionIndex::CollisionIndex(const TransformState& transformState_, const MapMode& mapMode) - : transformState(transformState_) - , viewportPadding(mapMode == MapMode::Tile ? viewportPaddingForStaticTiles : viewportPaddingDefault) - , collisionGrid(transformState.getSize().width + 2 * viewportPadding, transformState.getSize().height + 2 * viewportPadding, 25) - , ignoredGrid(transformState.getSize().width + 2 * viewportPadding, transformState.getSize().height + 2 * viewportPadding, 25) - , screenRightBoundary(transformState.getSize().width + viewportPadding) - , screenBottomBoundary(transformState.getSize().height + viewportPadding) - , gridRightBoundary(transformState.getSize().width + 2 * viewportPadding) - , gridBottomBoundary(transformState.getSize().height + 2 * viewportPadding) - , pitchFactor(std::cos(transformState.getPitch()) * transformState.getCameraToCenterDistance()) -{} - -float CollisionIndex::approximateTileDistance(const TileDistance& tileDistance, const float lastSegmentAngle, const float pixelsToTileUnits, const float cameraToAnchorDistance, const bool pitchWithMap) { + : transformState(transformState_), + viewportPadding(mapMode == MapMode::Tile ? viewportPaddingForStaticTiles : viewportPaddingDefault), + collisionGrid(transformState.getSize().width + 2 * viewportPadding, + transformState.getSize().height + 2 * viewportPadding, + 25), + ignoredGrid(transformState.getSize().width + 2 * viewportPadding, + transformState.getSize().height + 2 * viewportPadding, + 25), + screenRightBoundary(transformState.getSize().width + viewportPadding), + screenBottomBoundary(transformState.getSize().height + viewportPadding), + gridRightBoundary(transformState.getSize().width + 2 * viewportPadding), + gridBottomBoundary(transformState.getSize().height + 2 * viewportPadding), + pitchFactor(std::cos(transformState.getPitch()) * transformState.getCameraToCenterDistance()) {} + +float CollisionIndex::approximateTileDistance(const TileDistance& tileDistance, + const float lastSegmentAngle, + const float pixelsToTileUnits, + const float cameraToAnchorDistance, + const bool pitchWithMap) { // This is a quick and dirty solution for chosing which collision circles to use (since collision circles are // laid out in tile units). Ideally, I think we should generate collision circles on the fly in viewport coordinates // at the time we do collision detection. |