Stefanos Natsis b371267fbe
Improved 3d measure tool (#52208)
* cleanup 3d measure tool class from pickers

* update qgs3dmapscene and identify tool

* remove pickers from chunked entity and terrain entity

* add QgsRay3d::intersects( QgsBox3d );

* demterrain and tesselated polygon geometry intersection checks

* Add vertex markers to 3d rubber bands
Add moveLastPoint() support for 3d rubber bands

* Forward keyEvents to 3d map tools

* proof of concept, needs refactoring

* move intersection logic to ChunkedEntities

* move ray casting logic to Qgs3DUtils

* cleanup map tools

* rename intersectEntity to rayIntersection, further cleanup

* cleanup

* move RayCastContext param
fix last rubberband marker
use singleResult for pointclouds
cleanup

* replace autos

* fix FID fetching logic
fix rule based rendering hits
fix selected feature hits

* fix clearing identify results, startDrag tolerance

* use doubles when dealing with map coordinates
return world coords in point cloud RayHits

* dosctrings and method rename

* use raycastingtools::ray3d

* move RayHit and Context to raycastingutils

* sip skip new methods

* fix build

* remove unused

* added docstring

* fix forward declarations

* fix qt6 build

* Use anti-aliasing for better looking billboards

* Slightly improve styling of 3D rubber band

* Make it possible to have 3D rubber band always on top

Also adds some docs to the frame graph implementation

* Do not leave the final rubber band segment when measuring is done

* address review comments

* spelling typo

* make cppcheck happy

* address benoit and loic review comments

* remove previous bool QgsTerrainEntity::rayIntersection() implementation

* add consts, update test mask

---------

Co-authored-by: Martin Dobias <wonder.sk@gmail.com>
2023-03-21 22:01:45 +01:00
..