Commit 86ed382
Camera Roll (maplibre#4780)
* Globe - basic infrastructure, raster layer adaptation for globe (maplibre#3783)
* Port changes from main globe branch - basics
Fix minor issues so that it compiles.
* Fix PI redefinitions
* Fix stencil shader
* Port adaptation of raster layer for globe from main globe branch
* Add globe.html example from pheonor's repo
Minor changes (remove terrain, set initial zoom 0, change title and description)
* Better map projection parameter doc comment, warn when using unknown projection
* Mercator projectionData handles negative zoom correctly
* Comment clarification
* Fix spelling of "granularity"
* Add missing docs
* Convert ProjectionBase to an interface
* Do not leak GL object in globe projection error measurement, add a destroy method to projection
* Fix chrome performance warning, refactor error measurement
Warning fixed by changing ring buffer size to 1, making ring buffer pointless, so I removed it.
* Fix granularity capitalization
* Fix capitalization
* Fix typo
* Fix stencil mask triangle index order (this was causing failing render tests)
* Cleanup vertex shader projection interface
* Move projection creation function into its own file
* Remove getProjectionName
* Added comment for deduplicateWrapped
* Remove unused vertex-buffer-related code from image source
* Add globe raster layer render test
* More render tests - test transition to mercator
* Remove pointless test, add test descriptions
* Render test for rendering poles on globe
* SubdivisionGranularitySetting constructor takes an object
* Remove "defines" parameter from useProgram
* Refactor useProgram and Program constructor
* Properly format translatePosMatrix comment
* Refactor globe-specific code outside projection classes, remove stencil-specific granularity settings
* Refactor granularity settings to be more readable
* Minor refactor of ProjectionErrorMeasurement
* Refactor draw_raster.ts
* Move globe utility functions to utils.ts, use easeCubicInOut instead of smoothStep
* Simplify imports in globe.ts
* globe.ts refactor
* Move ProjectionErrorMeasurement to a separate file
* Refactor ProjectionErrorMeasurement
Change parseRGBA8float to a private static function, use isWebGL2 function instead of instanceof
* Refactor draw_raster.ts
* Refactor globe projection error measurement to not use Painter
* Painter.clearStencil creates custom ProjectionData instead of calling getProjectionData(null, null)
* Remove "deduplicateWrapped" functionality from source_cache.ts
* Globe projection no longer requires a map instance
* Painter doesn't pass `this` to `updateGPUdependent`
* isRenderingDirty is now a function
* Rename ProjectionBase to Projection
* Replace globeView property with setGlobeViewAllowed
* Add mercator and globe projection unit tests
* Remove tests that test for exact clipping planes
* Update build test with new bundle size
* isRenderingDirty is now a function
* Globe - fill layer (maplibre#3882)
* Port changes from main globe branch - basics
Fix minor issues so that it compiles.
* Fix PI redefinitions
* Fix stencil shader
* Port adaptation of raster layer for globe from main globe branch
* Add globe.html example from pheonor's repo
Minor changes (remove terrain, set initial zoom 0, change title and description)
* Better map projection parameter doc comment, warn when using unknown projection
* Mercator projectionData handles negative zoom correctly
* Comment clarification
* Fix spelling of "granularity"
* Add missing docs
* Convert ProjectionBase to an interface
* Do not leak GL object in globe projection error measurement, add a destroy method to projection
* Fix chrome performance warning, refactor error measurement
Warning fixed by changing ring buffer size to 1, making ring buffer pointless, so I removed it.
* Fix granularity capitalization
* Fix capitalization
* Fix typo
* Fix stencil mask triangle index order (this was causing failing render tests)
* Cleanup vertex shader projection interface
* Move projection creation function into its own file
* Remove getProjectionName
* Added comment for deduplicateWrapped
* Remove unused vertex-buffer-related code from image source
* Add globe raster layer render test
* More render tests - test transition to mercator
* Remove pointless test, add test descriptions
* Render test for rendering poles on globe
* SubdivisionGranularitySetting constructor takes an object
* Remove "defines" parameter from useProgram
* Refactor useProgram and Program constructor
* Properly format translatePosMatrix comment
* Refactor globe-specific code outside projection classes, remove stencil-specific granularity settings
* Refactor granularity settings to be more readable
* Minor refactor of ProjectionErrorMeasurement
* Refactor draw_raster.ts
* Move globe utility functions to utils.ts, use easeCubicInOut instead of smoothStep
* Simplify imports in globe.ts
* globe.ts refactor
* Move ProjectionErrorMeasurement to a separate file
* Refactor ProjectionErrorMeasurement
Change parseRGBA8float to a private static function, use isWebGL2 function instead of instanceof
* Refactor draw_raster.ts
* Refactor globe projection error measurement to not use Painter
* Painter.clearStencil creates custom ProjectionData instead of calling getProjectionData(null, null)
* Remove "deduplicateWrapped" functionality from source_cache.ts
* Globe projection no longer requires a map instance
* Painter doesn't pass `this` to `updateGPUdependent`
* isRenderingDirty is now a function
* Rename ProjectionBase to Projection
* Replace globeView property with setGlobeViewAllowed
* Add mercator and globe projection unit tests
* Remove tests that test for exact clipping planes
* Update build test with new bundle size
* isRenderingDirty is now a function
* Fill, fill-extrusion, line layers, subdivision: Import changes from kubapelc/globe-vector branch
* Fix unit tests
* Subdivision: ensure consistent triangle winding order, fix unit tests
* Fix terrain
* Fix fill extrusion not working with terrain
* Fix typos
* Fix line gradient bug
* Subdivision: fix line ring handling
* Subdivision: fix unit test expecting an invalid line segment
* Fix fill-extrusion ring handling
* Fill-extrusion refactor and fix failing test
* Update terrain fill extrusion test expected image
* Render tests for fill, line and fill-extrusion for globe
* Move fillArrays function into a separate file
* Add vector globe example
* Remove changes for line and fill-extrusion layers to make the PR smaller
* Add unit tests for fillArrays()
* fillArrays unit test has better segment size limits
* Update build test build size
* Fix html example description
* Fix missing docs for granularity settings
* Rename globe fill render test tile source layer to "vector_tiles"
* Fix classifyRings comment format
* Move subdivisionGranularitySettingsNoSubdivision constant to a static readonly field, shorten the name
* Use `import type` for SubdivisionGranularitySetting where possible
* Fix typo
* Revert fill_attributes back to default exports
* Improve comment for scanline subdivision
* Subdivision: break up scanline subdivision function into more functions
* Move SubdivisionGranularitySetting into its own file
* Unit tests: use mock of MercatorProjection instead of the full class
* Add SegmentVector unit tests
* Subdivision: unit tests for poles, ring triangulation, fix bug in ring triangulation
* Subdivision: more pole unit tests
* Subdivision: fix wireframe generation, add unit test for wireframe
* Rename subdivisionGranularitySettings.ts to subdivision_granularity_settings.ts
* Move granularity settings registration to subdivision
* Update build size
* Rename `fillArrays` to `fillLargeMeshArrays`
* Move virtual buffers to a test util file
* Better warning for segments.ts vertex overflow
* Better comment for projection subdivision granularity
* Clarify mesh comparison in fill_large_mesh_arrays.test.ts
* Move mesh creating functions into a separate file, add tests for mesh comparison and grid creation
* Refactor and add better doc comment for `fillLargeMeshArrays`
* Refactor fill_large_mesh_arrays by removing duplicated code
* Move debug functions to mesh_utils.ts
* Unit tests: use StructArrays instead of VirtualVertexBuffer, etc.
* Subdivision: refactor
* Subdivision: rename subdivideFill to subdividePolygon, remove wireframe function
* Subdivision: throw when a vertex is outside int16 range
* Subdivision: refactor generatePoleQuad into a proper function
* Subdivision: add subdivision benchmark
* Subdivision: split scanline subdivision into smaller functions
* Remove wireframe generation function
* Subdivision: better doc comments for scanline subdivision
* Fix 'as any' in segment.ts
* Reuse condition in fill_large_arrays
* Deduplicate code in fill_large_arrays
* Subdivision: remove redundant function in tests
* Subdivision: improve scanline subdivision comments
* Subdivision: benchmark is not async
* Rename SegmentVector's invalidateLast to forceNewSegmentOnTextPrepare
* More tests for segment.ts
* Fix typo in forceNewSegmentOnNextPrepare
* Subdivision: more tests for fillLargeMeshArrays
* Subdivision: better comment in fillLargeMeshArrays
* Fix build due to bad merge.
* Globe - line layer (maplibre#3961)
* Fix merge
* Import line layer changes from kubapelc/globe-vector
* Lines: shorten line_bucket.test.ts subdivision settings
* Lines: minor refactor
* Lines: update build size
* Lines: minor refactor
* Globe - fill extrusion layer (maplibre#3968)
* Import changes for fill-extrusion from main vector globe branch
* Fill extrusion: refactor
* Fill extrusion: indent shader ifdefs
* Fill extrusion: add example
* Fill extrusion: update build size
* Move globe specific projection methods to projection interface
* Fix failing unit test
* Use vec3.clone() instead of manually copying vector components
* Kubapelc/globe pr hillshade (maplibre#3979)
* Import background layer changes from main vector globe branch
* Import hillshade layer changes from main vector globe branch
* Subdivision: explicit types
* Fix single-pixel seams in the oceans
* Add render test for background pattern on globe
* Refactor drawBackground
* Refactor drawHillshade
* Update build size
* Update globe background-pattern render test with results from CI
* Hillshade: refactor prepareHillshade
* Add a render test for fill layer seams fix
* Globe - circle and heatmap layers (maplibre#4015)
* Import changes for circle and heatmap layers from the main vector globe branch
* Minor refactors
* Update build size
* Use "/ 8.0" in shader instead of "* 0.125"
* Update shader comments
* Use a thin type instead of full Transform in projection
* Only import types in projection.ts
* getPixelScale and getCircleRadiusCorrection only need map center as argument
* Only import types where possible in projection classes
* Smaller refactors
* Fix failing unit test
* Add heatmap render test
* More explicit types in projection interface
* Globe plane equation is a vec4
* Fix wrong args in projection functions
* Improve readibility of build test and fix it.
* Globe - symbols & symbol bugfixes (maplibre#4067)
* Import changes from main vector globe branch
* Fix import
* Remove unused code
* Remove unused imports
* Update build size test
* Remove unused function
* Add render test results for Debian
* Add another Debian render test variant
* Add more render test variants
* Hide collision boxes on the backfacing side of the globe
* Fix pitch-aligned texts getting hidden when their anchor is beyond horizon
* Update build size
* Fix merge
* Better comment in draw_collision_debug
* Update build size
The 10 kb size increase seems to come from the main branch
* Minor refactor
* Use explicit types, even for unused parameters
* Refactor screenspace path projection
* Refactor imports for projection.ts and collision_index.ts
* Fix import in collision_index.ts
* Globe - example images (maplibre#4140)
* Add example images
* Add "-" into example name
* Remove basic globe example
* Globe - clipping fix (maplibre#4146)
* HiSilicon fix: enable face culling whereever possible
(cherry picked from commit fe439a5)
* Improve circle layer performance by discarding empty pixels
(cherry picked from commit 266897d)
* HiSilicon fix: software clipping of polygon outlines
(cherry picked from commit 98167ba)
* HiSilicon fix: software clipping for line layer
(cherry picked from commit d521e95)
* HiSilicon fix: circle software clipping
(cherry picked from commit f2ed744)
* HiSilicon fix: enable backface culling for symbols
(cherry picked from commit 54e3632)
* Update build test
* Fix terrain using a mirrored projection matrix
* Fix typos
* Fix terrain coord textures being flipped vertically
* Update build size
* Fix rendering of images with face culling, fix image rendering near pole regions
* Add render test for images on a globe
* Update comment in circle.vertex.glsl
* Fix bad merge
* Fix lint
* Fix location of old vertex count
* replace expected file for terrain changes
* Fix rename in main merge branch
* Fix build test
* Move projection to style class (maplibre#4267)
* Move projection to style class
* Fix lint
* Fix unit tests
* Increase build size
* Update docs, fix test
* Fix lint
* Add test to cover projection change
* Added more tests
* Add an Atmosphere layer for Globe (maplibre#3888) (maplibre#4020)
* Port of PoC atmosphere layer.
* Fix resize for draw_atmosphere
* Add some options.
* Allow to change sun date and time
* Fix import warning
* Render atmosphere only when a Globe projection is selected
* Add some comments
* Add some comments
* Change key
* Update changelog
* Fix merge with globe branch
* Fix documentation and default background color.
* Use black clear color only when atmosphere is on
* Use atmosphere uniform for globe position, raidus in camera frame and inv projection matrix.
* Remove unused project method
* Update maplibre-gl-style-spec to 20.3.0 and use sky atmosphere parameter
* Fix globe tests and use light position as Sun position.
* Avoid type name collisions.
* Add atmosphere test for globe projection.
* Update expectedBytes for build test.
* Fix PR comments.
* Update Style test.
* Remove unused method on projection
* Add Sky Test.
* Fix style test and add sky unit test.
* Move getSunPos method
* Fix mercator updateProjection
* Remove isGlobe method and fix merge.
* Fix globe atmosphere tests with new projection style.
* Clean-up some projection and light. Fix setSky and add tests.
* Remove sky test during update.
* Clean-up
* missing fix from merge
* Fix lint
* Terrain fix (maplibre#4343)
* Fix missing image for globe example
* Update atmosphere (maplibre#4345)
* Merge Sky and Atmosphere code.
* Update changelog
* Fix generate-struct-arrays
* Globe - transform+projection changes (maplibre#4341)
* Delete unused file
* Rename projection.name to projection.projectionName
Since this interface will be implemented by the transfrom class soon
* Symbols: displayed collision circles now exactly match their computed positions
* Globe: use mercator projection for symbol placement when globe rendering is disabled
* Group all getters/setters in the transform class
* Transform: move transform-related stuff from the projection interface to transform class
(WIP)
* Transform: finish moving parts of projection into mercator_transform.ts
* Transform: remove posMatrix usage from line symbol placement
(WIP)
* Transform: temporarily remove globe stuff
(WIP, compilable)
* Transform: fix line symbols
* Symbols: fix wrong function names
* Fix line point projections
* Fix line rendering
Some things are still broken
* Fix line symbols sometimes being incorrectly oriented
* Fix some failing unit tests
* Fix single glyph orientation
* Add another image to render test
No idea why it is shifted by a few pixels but I assume that the new expected image is also correct
* Add another expected image to textFit-grid-long test
It was only failing on my machine, works fine in github CI windows tests
* Fix some failing unit tests
* Simplify getProjectionData interface and terrain matrix passing
* Change comment at calculatePosMatrix
* Fix symbols not rendering, remove unused shader parameters
* Bring back globe src files
* globe.test.ts is now globe_transform.test.ts
* Move stuff from globe.ts to globe_transform.ts
* Fix showTileBoundaries not working
Fix the three render tests related to showTileBoundaries timing out.
* Remove irrelevant test
* Fix failing unit test
* Transform: move more stuff from globe to globe_transform
* Transform: better comments
* Transfrom: isRenderingDirty cleanup
* Transform: no more errors in globe_transform.ts
* Transform: remove `get point()` from transform class
* Transform: globe_transform.ts is compilable
* Re-enable globe projection
* Fix source_cache.ts sometimes crashing
* Fix globe.ts - globe_transform.ts circular dependency
* Fix and refactor getProjectionData interface
Now it is actually compilable, with many bugs
* Transform: fix failing unit tests
* Transform: fix symbols not rendering on globe
* Transform: minor fixes
* Transform: update globe symbol render tests
* Transform: unify how symbol/projection.ts exports stuff
* Transform: improve comments
* Remove unused function in painter
* Transform: cleanup unneeded abstract functions
* Transform: replace abstract getHorizon function with more generic isPointOnMapSurface function
* Fix useGlobeRendering not being set properly
* Transform: proper implementation of isPointOnMapSurface and screen pixel unprojection for globe
* Transform: adapt more functions for globe
* Transform: fix locationPoint implementation
* Controls: globe panning experiments
* Controls: reasonable globe panning
* Controls: centering zoom for globe experiment
* Transform: fix globe unit tests
* Transform: fix remaining unit tests
* Move mercator_transform.test to src/geo/projection
* Transform: globe bugfixes and more unit tests
* Transform: bugfix globe setLocationAtPoint
* Transform: isolate accesses to globe projection to avoid unintentional transform's state changes
* Transform: move related tests so they are near each other
* Transform: improve globe unprojection accuracy
* Transform: fix globe bugs
* Transform: move globe unit tests
* Transform: another globe setLocationAtPoint implementation
* Transform: fix globe zoom adjustment not working
* Transform: fix setLocationAtPoint
* Transform: setLocationAtPoint and zoom WIP
* Transform: adjust unit test to accept positive longitudes
* Transform: improve globe math precision (fp64)
* Transform: precision improvement, better camera position
* Transform: another test WIP
* Transform: fix setLocationAtPoint condition
* Transform: more reasonable zoom for globe
Still has bugs though
* Transform: globe zoom works well when cursor is outside the globe
* Transform: globe more consistent zoom logic
* Transform: experimental pole edge clamp for globe
* Transform: fix maxLatitudeForZoomLevel math
* Transform: globe constrain experiment
* Transform: minor improvements
* Transform: globe panning 2.0
* Transform: globe panning 2.1
Adjust more constants!
* Transform: some math for globe zoom
* Transform: globe: working zoom controls without glitches
* Transform: globe zoom: fix some more glitching
* Transform: globe zoom: reduce panning when zoom pixel is far from the planet
* Transform: zoom globe: simplify, better behaviour around poles
* Transform: globe zoom: exact zooming
* Transform: globe zoom: better comments
* Transform: temporarily disable camera easeTo and flyTo
* Transform: calling project/unproject on a globe should fail, rename project/unproject to be more descriptive
* Transform: fitBounds: initial implementation for globe_transform
Not working
* Transform: fitBounds: zoom is now correct
* Transform: fitBounds: padding works for north/south
* Transform: fitBounds: just build on top of mercator code
* Transform: fitBounds: the original way
* Transform: fitBounds: back to mercator-buildon + done
* Transform: tighter bounds for zoom heuristic transition
* Transform: easeTo: probably works
* Transform: attempt to handle camera options apparent zoom for globe
* Transform: easeTo fixes WIP
* Transform: easeTo: mostly working implementation (still WIP)
* Transform: easeTo: small fixes
* Transform: easeTo: intertia works for panning
* Transform: globe zoom: add globe radius based slowing factor
* Transform: globe zoom adjustments
* Transform: jumpTo adapted for globe
* Transform: camera flyTo works for globe
* Make (un)projectToWorldCoordinates into standalone functions
* Fix inertia sometimes rotating in the wrong direction
* Fix transform center sometimes not getting wrapped, leading to visual artifacts
* Transform: easeTo: slerp experiment
* Transform: easeTo: revert slerp, add note on why it is not used
* Transform: improve center animation for easeTo and flyTo
* Minor refactor & remove some outdated TODOs
* More refactor and TODOs
* Transform: globe remembers its globeness state after clone, fixes improper collision box when globe gets soft-disabled
* Terrain matrix refactor WIP
* Terrain fixes
* Transform: better comments, rename angularCoordinatesToVector to angularCoordinatesToSurfaceVector, some functions for globe WIP
* Transform: getBounds for globe works
* Transform: remove some comments
* Fix merge
* Remove globe.test.ts (it is now globe_transform.test.ts)
* Rename Transform.updateProjection to newFrameUpdate
* Revert globe.ts to pre-merge state
* Revert mercator.ts to pre-merge state
* New mechanism for creating specialized transforms, more merge fixes
* Rename projectionMatrix to modelViewProjectionMatrix, refactor mercator_transform.ts a bit
* More merge fixes, minor refactor of transforms
* Add transform getters for atmosphere
* Fix forgotten useGlobeControls uses
* Fix cyclical dependency
* Fix tests
* Fix crashes
* Fix manually triggered globe transition animation
* Fix collision boxes not respecting mercator transition
* Blend out atmosphere when transitioning to mercator
* Fix globe transitions when mercator should be constrained
* Reload all tiles upon projection change
* Fix failing style tests
* Fix terrain source cache tests
* Fix map zoom¢er being applied in wrong order, causing zoom to be wrongly constrained under globe
* Update globe pole render tests with correct zoom
* Update globe unit test zooms
* Fix more unit tests
* Fix transform.apply not copying everything, fix globe controls not wrapping longitudes
* Fix some globe tests
* Fix globe setLocationAtPoint
* Fix docs & lint
* Increase globe setLocationAtPoint test desired precision
* Some camera tests for globe
* Fix easeTo test suite name and placing
* Add rotated setLocationAtPoint test for globe, fix failing test
* Fix globe easeTo & flyTo with bearing to follow spec, add tests
* easeTo globe tests
* All relevant camera tests for globe implemented
* Update build size test
* Fix symbols not respecting mercator
* Update build size again
* Terrain fix
* Fix merge
* Fix terrain shaders
* Fix merge
* Revert controls changes
* Fix reverted files
* Fix reverted camera tests
* Revert forgotten file, fix lint
* Update build size
* Feedback comments for unit tests
* Convert setters to functions: runtime code
* Convert setters to functions: test code
* Convert last setter to function
* Fix some tests
* Transform is now an interface
* Rename Transform to ITransform
* Remove abstract functions from transform base class
* TransformHelper wip
* Rename transform files
* Finish transform rewrite
* Fix mercator transform tests
* Fix mercator_transform constructor
* Fix symbol bucket test
* Fix source cache tests
* Fix transform clone bug & tests
* Improve comments
* More comments
* Fix import
* Move helper functions in tests to beginning of file
* Fix collision index test accessing a private field
* Remove unneeded null check
* New utils tests + quadratic solve fix
* Add remapSaturate tests
* Add explicit types to line glyph placement
* Refactor placeGlyphsAlongLine args into an object
* Fix merge, cleanup draw_custom.test, fix missing perspective offset in globe transform
* Fix draw_custom test
* Update build test
* Fix crashes
* Fix transform_helper apply function not setting bearing correctly
* Add test for TransformHelper
* Fix TransformHelper.apply
* Fix flipped text placement
* Add new expected image to render test
* Fix marker tests
* Update build size
* Move functions from mercator_transform.ts to mercator_utils.ts
* Refactor un/projectToWorldCoordinates function args
* Make zoomScale and scaleZoom standalone functions
* Fix unprojectFromWorldCoordinates arg type
* Move globe functions to separate file
* Fix private member access in source_cache.test.ts
* Fix deck.gl missing dot
* Fix missing globe_utils.ts
* Better `angleToRotateBetweenVectors2D` doccomment
* Remove unneeded `protected`
* Cleanup transform interface and remove duplicate comments
* Split mercator_utils tests into a separate file
* Fix tests
* Split globe locationPoint tests a bit
* Add more mercator tests
* More globe tests
* Fix globe getBounds and add tests for it
* Remove unneeded function, update build size
* projectTileCoordinates for globe now covered by test
* Add globe_utils tests
* Split up globe tests more
* Fix missing doccomment
* Rename transform's projection/unprojection functions
* Better ray intersection comment and type
* Reduce indentation
* Improve unproject math readability
* Add point-plane distance util function
* Move tileCoordinatesToMercatorCoordinates to mercator_utils
* Better name for location to mercator coordinate functions
* Move angleToRotateBetweenVectors2D to utils
* Refactor _globeness usage
* Remove _initialized from GlobeTransform
* Remove translatePosition from transform interface
* Add IReadonlyTransform interface
* Update build size
* Remove unneeded comment
* Fix painter test
* Fix lint
* Update test/build/min.test.ts
* Update changelog
* Globe - camera controls (maplibre#4408)
* Camera controls changes from dev branch
* Move stuff from globe_control_utils to globe_utils
* Better globe_utils comments
* Fix markers not being updated when globe is toggled
* Fix globe tests
* Update build size
* Better comments for camera helper functions
* Move camera helper functions to beginning of file
* Camera: more and better comments
* Update build size
* Fix globe transform error correction handling
* Better comments for _last* fields in globe transform
* Refactor newFrameUpdate
* Better comments for CoveringTilesOptions type members.
* Refactor globe camera tests to use more describe statements
* Remove isTilePositionOccluded function from transform interface
* Fix camera tests
* Add more mercator_utils test
* Add more globe_transform tests
* Fix failing render tests
* Make camera helper functions static
* Remove `around` from flyTo options.
* Update build size
* CameraHelper: initial implementation, inertia handling
* Move createVec* functions to util.ts
* CameraHelper: panning and zooming
* CameraHelpers: implement cameraForBounds
* CameraHelpers: handle jumpTo
* CameraHelper: easeTo
* CameraHelper: flyTo
* Projection event contains new projection name and is fired by changing style's projection
* Fix lint
* Fix test camera/map not having proper CameraHelper
* Fix easeTo not emitting zoom events
* Fix cameraForBoxAndBearing globe not returning anything, rename camera helter types
* Fix globe easeTo ignoring offset
* Fix one flyTo test not creating camera properly
* Update build size
* Add projection transition event tests
* Add example on how to compensate for how globe size changes with latitude
* Revert scrollzoom delete removal
* Remove apparentZoom parameter
* CameraHelper is set in camera constuctor
* Use spy for projection event unit tests
* Remove unnecessary done() in tests
* Update build size
* Remove more unneeded done() calls
* Do not use map.once callback in projection events tests
* Better zoom delta example title and description
* Rename globe zoom delta and planet size function example
* Add zoom planet size function example image
* Reduce size of some globe example images using compresspng
* Globe: bugfixes: raster layer & projection change (maplibre#4546)
* Port bugfix changes
* Update build size
* Fix render tests
* Add render test result for debian
* Increase raster tile granularity some more
* Adjust warped raster tile render test
* Add missing tsdoc param
* Use single checkerboard image for render test
* Globe examples now use setProjection
* Add new raster-pole render test image
* Add another raster-warped expected image
* Use "style.load" event on map instead of on style
* Adapt new heatmap code for globe, update build size
* Fix render tests
Most tests had subpixel shifts
* Globe - custom layers API and examples, globe dev guide (maplibre#4577)
* Port custom layer changes and globe docs
* Port transform changes
* Fix custom layer unit test
* Fix failing render tests
* Update build size
* Update globe custom layer example descritions, remove forgotten code
* Remove unused util function
* Incorporate globe docs feedback
* Refactor and expose tile mesh generation
* Refactor custom layers to get smaller args object and access map transform directly
* Simplify more of the custom layer API
* Clean up and adapt more examples
* Fix mercator matrix precision
* Fix 3D model on terrain example
* Rename projectionDataForMercatorCoords to defaultProjectionData
* Document ProjectionData type
* Update build size
* Update developer-guides/globe.md
Co-authored-by: Harel M <[email protected]>
* Decouple ProjectionData from rendering code
Rename fields to camelCase, move it to a separate file
* Rename ProjectionData members
* Fix mercator transform unit tests
* Add an example to createTileMesh
* Rename CustomRenderMethodInput.shader to shaderData
* Add shaderData examples
* Document TileMesh and CreateTileMeshOptions types
* Fix custom layers in render tests
* Update render tests
Fails other than raster-warped were caused by increasing pos matrix precision in mercator_transform to 64 bit floats
* Add render test result from linux
* Update build size
* Update src/render/program/projection_program.ts
Co-authored-by: Harel M <[email protected]>
* Rename createTileMeshInternal to createTileMeshWithBuffers
* Update build size
* Improve doc comments
---------
Co-authored-by: Harel M <[email protected]>
* Globe - Covering tiles (maplibre#4615)
* Import coveringTiles changes from dev branch
* Remove duplicated tiles used in render tests
* Remove unused function
* Fix typo
* Properly handle tile wraps and LOD across antimeridian
* Discard previous changes and use custom wrap values instead
* Update build size
* Add render test for LOD at antimeridian
* Convert visibility numbers to enum
* Refactor globe covering tiles into a separate file
* Add yet another raster-warped expected image
* Add unit tests for globe covering tiles
* Refactor globe coveringTiles math to assume worldSize=1 instead of tileSize=1
* Split globe coveringTiles into more functions
* Explain radiusOfMaxLvlLodInTiles value
* Explain why checking 4 tile corners is (mostly) enough to construct an AABB.
* Move mercator coveringTiles into a separate file
* Yet another raster-warped expected image
* Remove ITileVisibilityProvider interface
* Use explicit types
* PR feedback
* Rename coveringTiles stack types
* fix typo
* Remove sky disabling in examples as this is no longer needed.
* Fix spelling
* Fix spelling - unencode
* Fix more spelling
* Fix lint
* Add basic roll capability
* code hygiene
* update sky shader to use roll angle
* fix horizon /sky display when rolled
* reduce repeat calls to potentially expensive functions
* use slerp instread of euler angle interpolation for mercator easeTo(). Also reverses definition of roll.
* safe roll pitch bearing near singularity
* add option to use slerp or old linear interpolation of Euler angles
* code hygiene
* code hygiene
* fix unit tests
* add roll unit tests
* change euler angle behavior at the end of easeTo() to use the representation specified by the caller. This only matters at the singularity (pitch = 0)
* unit tests fro R2D and D2R
* add euler angle unit tests
* add roll to transform unit tests
* add roll to transform helper test
* code hygiene
* add sky and fog render tests
* code hygiene
* this rotates labels as I intended it to when pitchWithMap = true, rotateWithMap= false, but I don't think that's what we want
* Revert "this rotates labels as I intended it to when pitchWithMap = true, rotateWithMap= false, but I don't think that's what we want"
This reverts commit 01845a9.
* extend rotateWithMap to include the effects of camera roll
* Add roll icon render tests
* getPitchedLabelPlaneMatrix unit tests
* add getPitchedLabelPlaneMatrix unit test
* add getGlCoordMatrix unit tests
* remove console.log
* code hygiene
* add roll text alignment render tests
* fix lint
* add text upright with roll render test
* add combined rotation text upright render test
* add text-pitch-scaling render test with roll
* fix collision box when camera is rolled
* add skew matrix tests at horizon.
* faster getTileSkewMatrix
* update changelog
* updated expected build size
* remove "useSlerp" flag from mercator transform, and use slerp in globe transform as well.
* fix merge error
* increase test coverage
* switch from _underscore fields to getters
* add render text for different text alignments with rolled horizon present.
* change private angle names in transform to include prefix "InRadians", and add getters directly in radians. Remove ambiguous member "angle", which was negative bearingInRadians.
* updated library size
* use *InRadians where possible
* combine duplicate interpolation code from mercator and globe
* add roll to root style spec
* change getTileSkewMatrix to return vectors instead of mat2
* fix lint
* Add roll visualization to Navigation Control, and add mouse control of roll using Ctrl + right click.
* Update style spec and remove "as any" in jumpTo()
* rearrrange if-else
* add roll and pitch control and visualization to navigation example
* update build size
* fix bad changelog merge
* add mouseRollHandler and DragRotateHandler unit tests
---------
Co-authored-by: Jakub Pelc <[email protected]>
Co-authored-by: HarelM <[email protected]>
Co-authored-by: Larrieu Vivian <[email protected]>
Co-authored-by: Jakub Pelc <[email protected]>1 parent 9c62b8b commit 86ed382
File tree
84 files changed
+2096
-189
lines changed- src
- geo
- projection
- render
- program
- shaders
- source
- style/style_layer
- symbol
- ui
- control
- handler
- shim
- util
- test
- build
- examples
- integration/render/tests
- icon-roll-alignment
- auto-rotation-alignment-map
- auto-rotation-alignment-viewport
- map-rotation-alignment-viewport
- viewport-rotation-alignment-map
- sky
- roll10
- roll180
- roll45-with-text
- roll90
- terrain
- fog-no-sky-blend-roll
- fog-sky-blend-roll
- text-keep-upright
- line-placement-true-roll-pitch-bearing
- line-placement-true-rolled
- text-pitch-scaling/line-half-roll
- text-roll-alignment
- auto-symbol-placement-line
- auto-symbol-placement-point
- map-symbol-placement-line
- map-symbol-placement-point
- viewport-glyph-symbol-placement-line
- viewport-glyph-symbol-placement-point
- viewport-symbol-placement-line
- viewport-symbol-placement-point
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
84 files changed
+2096
-189
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| 15 | + | |
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
| |||
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
| 28 | + | |
26 | 29 | | |
27 | 30 | | |
28 | 31 | | |
| |||
41 | 44 | | |
42 | 45 | | |
43 | 46 | | |
| 47 | + | |
44 | 48 | | |
45 | 49 | | |
46 | 50 | | |
| |||
78 | 82 | | |
79 | 83 | | |
80 | 84 | | |
81 | | - | |
| 85 | + | |
82 | 86 | | |
83 | 87 | | |
84 | 88 | | |
| |||
90 | 94 | | |
91 | 95 | | |
92 | 96 | | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
| 51 | + | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| |||
191 | 192 | | |
192 | 193 | | |
193 | 194 | | |
| 195 | + | |
194 | 196 | | |
195 | 197 | | |
196 | 198 | | |
| |||
259 | 261 | | |
260 | 262 | | |
261 | 263 | | |
262 | | - | |
263 | | - | |
264 | 264 | | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
265 | 270 | | |
266 | 271 | | |
267 | 272 | | |
| |||
312 | 317 | | |
313 | 318 | | |
314 | 319 | | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
| 320 | + | |
| 321 | + | |
320 | 322 | | |
321 | 323 | | |
322 | 324 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
133 | 143 | | |
134 | 144 | | |
135 | 145 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
96 | 99 | | |
97 | 100 | | |
98 | 101 | | |
| |||
151 | 154 | | |
152 | 155 | | |
153 | 156 | | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
184 | 193 | | |
185 | 194 | | |
186 | 195 | | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
187 | 199 | | |
188 | 200 | | |
189 | 201 | | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
190 | 205 | | |
191 | 206 | | |
192 | 207 | | |
| |||
472 | 487 | | |
473 | 488 | | |
474 | 489 | | |
475 | | - | |
| 490 | + | |
476 | 491 | | |
477 | 492 | | |
478 | 493 | | |
479 | 494 | | |
480 | 495 | | |
481 | | - | |
| 496 | + | |
482 | 497 | | |
483 | 498 | | |
484 | 499 | | |
| |||
504 | 519 | | |
505 | 520 | | |
506 | 521 | | |
507 | | - | |
| 522 | + | |
508 | 523 | | |
509 | 524 | | |
510 | 525 | | |
| |||
609 | 624 | | |
610 | 625 | | |
611 | 626 | | |
612 | | - | |
| 627 | + | |
613 | 628 | | |
614 | 629 | | |
615 | 630 | | |
| |||
620 | 635 | | |
621 | 636 | | |
622 | 637 | | |
623 | | - | |
624 | | - | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
625 | 641 | | |
626 | 642 | | |
627 | 643 | | |
| |||
647 | 663 | | |
648 | 664 | | |
649 | 665 | | |
650 | | - | |
651 | | - | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
652 | 669 | | |
653 | 670 | | |
654 | 671 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
| 140 | + | |
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
29 | | - | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
| |||
119 | 121 | | |
120 | 122 | | |
121 | 123 | | |
122 | | - | |
123 | | - | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
125 | 130 | | |
126 | 131 | | |
127 | 132 | | |
| |||
149 | 154 | | |
150 | 155 | | |
151 | 156 | | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
| 157 | + | |
| 158 | + | |
157 | 159 | | |
158 | 160 | | |
159 | 161 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
86 | 97 | | |
87 | 98 | | |
88 | 99 | | |
| |||
0 commit comments