41583 Commits

Author SHA1 Message Date
Martin Dobias
2a8ddccba9 Do not spell check poly2tri sources 2017-09-25 15:58:00 +02:00
Martin Dobias
d5d6372e9b Yet another round of doxygen comments for 3D
Getting there!
2017-09-25 15:16:23 +02:00
Martin Dobias
6d9240cfd8 Make sip_include script use the workaround for SIP's path parsing 2017-09-25 00:39:26 +02:00
Martin Dobias
4bf44d5e81 Another round of doxygen comments 2017-09-25 00:29:35 +02:00
Martin Dobias
990f353ae0 More doxygen comments 2017-09-24 16:26:41 +02:00
Martin Dobias
7389588745 More class documentation 2017-09-24 14:12:29 +02:00
Martin Dobias
d91ebe273b Trying to work around SIP file parsing error (dir starting with number) 2017-09-24 11:57:43 +02:00
Martin Dobias
c92d7dc39b Docstring/sip fixes in core/3d 2017-09-15 16:44:42 +02:00
Martin Dobias
9778e85159 Add 3d to doxygen, do not verify indentation of included poly2tri lib 2017-09-15 12:36:44 +02:00
Martin Dobias
3f681d1241 Post rebase fixes 2017-09-15 10:39:08 +02:00
Martin Dobias
d213d31aab More renaming. No code changes 2017-09-15 10:39:08 +02:00
Martin Dobias
260f68abc4 More renaming of 3D-related classes and files. No actual code changes 2017-09-15 10:39:08 +02:00
Martin Dobias
ff5ebe9aef Renaming and moving of 3D entities for 3D symbols 2017-09-15 10:39:08 +02:00
Martin Dobias
fc28a97ee5 3D symbols: private members + public getters/setters ... just like big kids 2017-09-15 10:39:08 +02:00
Martin Dobias
870d96e268 Moved 3D symbol class implementations into separate files 2017-09-15 10:39:08 +02:00
Martin Dobias
12a0063ec6 Extend range of spin boxes for 3d properties 2017-09-15 10:39:08 +02:00
Martin Dobias
35b37a228f Ignore invalid polygon geometries to avoid crashes in tessellation 2017-09-15 10:39:08 +02:00
Martin Dobias
33f7c17740 Use middle button for rotation/tilt, right button for zoom 2017-09-15 10:39:08 +02:00
Martin Dobias
7ad57e6410 Remove 3D canvas widget when the dock is closed (just like 2d canvas) 2017-09-15 10:39:08 +02:00
Martin Dobias
0f692bba12 Do not die when passed invalid full extent from QGIS 2017-09-15 10:39:08 +02:00
Martin Dobias
81c591c172 Handle curved geometries (line/polygon 3d symbol) and repeated vertices 2017-09-15 10:39:08 +02:00
Martin Dobias
b234fc525d Correctly working "zoom full" + more robust near/far plane config 2017-09-15 10:39:08 +02:00
Martin Dobias
9ac3e9cf6b Heuristics for setup of near/far planes of camera
Based on terrain's active nodes, this should configure frustum depth
long enough not to clip away anything that should stay visible and
at the same time make good use of depth buffer (range not too large)
2017-09-15 10:39:08 +02:00
Peter Petrik
7d3cf228d8 [FEATURE] support 3d models 2017-09-15 10:39:08 +02:00
Blottiere Paul
e83ce541ba Feature selection is also displayed in 3D map view for polygons 2017-09-15 10:39:08 +02:00
Blottiere Paul
c6ff2f685c Feature selection is also displayed in 3D map view for lines 2017-09-15 10:39:07 +02:00
Blottiere Paul
9478036da6 Get selection color from map canvas 2017-09-15 10:39:07 +02:00
Blottiere Paul
a4e3a77dad Encapsulate entities for selected/not selected points in a root entity 2017-09-15 10:39:07 +02:00
Blottiere Paul
b0c98b7fcc [FEATURE] Feature selection is also displayed in 3D map view for points 2017-09-15 10:39:07 +02:00
Peter Petrik
56ed9b0d0c fix frustum culling for terrain 2017-09-15 10:39:07 +02:00
Martin Dobias
7f1f8a6361 Zoom in/out by pressing middle mouse button and moving up/down 2017-09-15 10:39:07 +02:00
Peter Petrik
d7b821d92e fix the bug 2017-09-15 10:39:07 +02:00
Martin Dobias
f7c942c879 Respect background color from project's main canvas 2017-09-15 10:39:07 +02:00
Martin Dobias
63adb73f55 Update terrain map whenever an active layer requests repaint 2017-09-15 10:39:07 +02:00
Martin Dobias
489a21d064 Reworked background loading and updating of chunks
Before there was a dedicated thread for loading and it was not great because map rendering
requests were started from worker thread which is not potentially dangerous. Updates of map
were done in main thread, blocking user interface - ugly!

Now everything is handled more cleanly - there is one queue of jobs (two types: load chunk / update chunk),
things are started asynchronously from main thread. No dedicated thread / mutex / wait condition.
Better management of states of chunk nodes - state changes are very explicit which is a good thing.
2017-09-15 10:39:07 +02:00
Martin Dobias
905222d2c5 Decide number of zoom levels from max. allowed ground error 2017-09-15 10:39:07 +02:00
Martin Dobias
6df6681326 Read/write 3D renderers of map layers to project files 2017-09-15 10:39:07 +02:00
Martin Dobias
04b00aad6e Update layer 3D entities when terrain generator or scale change 2017-09-15 10:39:07 +02:00
Martin Dobias
2e03f5d36b Update list of 3D entities when the list of active layers is changed 2017-09-15 10:39:07 +02:00
Martin Dobias
82f608ee09 GUI for 3D point symbols 2017-09-15 10:39:07 +02:00
Martin Dobias
418dc07ca0 GUI for configuration of 3D line symbols for vector layers 2017-09-15 10:39:07 +02:00
Martin Dobias
ba7573a94e GUI for configuration of 3D polygon symbols for vector layers
In the style dock there is a new "3D View" tab - so far working just for polygon layers.
It is possible to select a polygon layer, enable 3D renderer and adjust its properties.
If a 3D Map View is open, it will be immediately updated (if auto-apply is enabled)

Very exciting! :-)
2017-09-15 10:39:07 +02:00
Martin Dobias
b9dd6bc622 Introduce concept of 3D symbols + addition of "single symbol" vector 3D renderer 2017-09-15 10:38:23 +02:00
Martin Dobias
76f4f69c21 Base class for 3D renderers + a bit of code shuffling 2017-09-15 10:38:23 +02:00
Martin Dobias
3d9d455ebe Signals/slots in Map3D + partial scene udates from Map3D signals 2017-09-15 10:38:23 +02:00
Martin Dobias
9e0bf1d69c Terrain settings in GUI, react to changes of visible layers
Temporarily disabled 2d canvas preview to better see 3D performance
2017-09-15 10:38:23 +02:00
Martin Dobias
32ad0a7eb0 Start of 3D map configuration widget 2017-09-15 10:38:23 +02:00
Martin Dobias
c8b5e6373b Fixed flat terrain without CRS defined 2017-09-15 10:38:23 +02:00
Martin Dobias
0469d44301 Initial work on integration of 3D map into QGIS application
One can create a 3D map view from menu similar to a new 3D map view
2017-09-15 10:38:23 +02:00
Martin Dobias
8f76477bfb Move all chunk-related functionality to a sub-directory 2017-09-15 10:38:23 +02:00