Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix missing icon collision boxes #1981

Merged
merged 1 commit into from
Jan 23, 2016
Merged

Conversation

ansis
Copy link
Contributor

@ansis ansis commented Jan 23, 2016

fixes #1978

The real bug in #1978 is #1980 but this improvement also happens to fix #1978.

Icons that are aligned with lines don't actually curve along lines. Instead of creating the collision boxes along the actual line, this creates them along a straight line that is aligned with the middle segment.

ansis added a commit to mapbox/mapbox-gl-native that referenced this pull request Jan 23, 2016
@ansis ansis merged commit 2054edd into master Jan 23, 2016
@ansis ansis removed the in progress label Jan 23, 2016
@ansis ansis deleted the fix-icon-collision-boxes-1978 branch February 20, 2016 01:05
ChrisLoer added a commit that referenced this pull request Aug 17, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 5, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 15, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 22, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 27, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 28, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 29, 2017
…ust use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes.

This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Sep 29, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR #1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Oct 3, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR #1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Oct 5, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR #1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Oct 6, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR #1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Oct 17, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR #1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
ChrisLoer added a commit that referenced this pull request Oct 18, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR #1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue #4861).
VictorHom pushed a commit to VictorHom/mapbox-gl-js that referenced this pull request Oct 27, 2017
 - Collision detection now runs on the foreground in a global, viewport-aligned CollisionIndex instead of in the background on map-aligned CollisionTiles.
 - Calculating label size at render time means it's no longer necessary to approximate perspective effects
 - Splits symbol_bucket#prepare and symbol_bucket#place into separate files.
 - Background processing of symbol_bucket, including buffer generation, is now completed with 'prepare'
 - 'place' is now called on the foreground in preparation for render calls.
 - Placement now updates dynamic opacity buffers instead of re-generating large static buffers
 - Line label projection code from 'projection.js' is now used during Placement to calculate the extent of line labels
 - Vertical and horizontal versions of glyphs are now generated at same time in the background. At render time, one version will be hidden based on line angle.
 - Rolls back PR mapbox#1981: even when icons are rotation-aligned to a line, just use a single collision box for them, instead of trying to approximate the shape of the icon with multiple collision boxes. This makes the behavior similar to point icons with rotation-alignment map, which depend on having a roughly square shape (see issue mapbox#4861).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Some icons along lines not getting collision boxes
1 participant