33 Commits

Author SHA1 Message Date
Nyall Dawson
3f6b490218 Sipify 2025-04-02 11:11:10 +10:00
Nyall Dawson
afd2e4f42d Fix doxygen class briefs which aren't full sentences 2025-04-01 09:44:00 +10:00
Nyall Dawson
6d122f0038 Sipify 2025-03-30 20:48:07 +10:00
Nyall Dawson
596ddb2f4e More memory safety for loading symbols 2025-03-28 10:02:25 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
David Koňařík
654b8bb985 Fix doc comments to align with code
The only previously implemented provider of these classes (for Cesium 3D
tiles) used values directly from the tiles, which are in meters per
spec.
2024-07-29 12:05:12 +02:00
Nyall Dawson
6f652d251b Drop no-value copy constructor dox 2024-07-25 04:02:55 +10:00
Nyall Dawson
28943f9c1b Remove a bunch of useless default constructor doxygen 2024-07-23 02:08:28 +10:00
Nyall Dawson
145de5fb5e
Move QgsDataProvider::ReadFlag to Qgis::DataProviderReadFlag
and promote to enum class
2024-07-18 10:01:59 +10:00
Nyall Dawson
c8d66e1e8d Add method to retrieve significant elevation values from a layer 2024-05-20 11:52:10 +02:00
Nyall Dawson
89f40b05f8 Move ::htmlMetadata from some data provider subclasses up to base class
Allows all layer types (including vector, mesh and point cloud)
providers to show custom metadata in the layer properties dialog.
Previously this was limited to raster/vector tile and tiled
scene layers only.

Also fix const for a lot of raster providers as a consequence.
2023-11-08 21:28:09 +10:00
Nyall Dawson
5fe84b0a55 [cesium] Add support for deprecated gltfUpAxis asset setting
Adds support for Z up gltf content
2023-09-07 09:09:24 +02:00
Nyall Dawson
13fe41dc0e Add a fallback fill symbol to the 2d tiled scene texture renderer
to use when scenes have no textures available for some primitives

Since there's no way to determine in advance whether or not a scene
will actually have textures, this prevents the non-ideal situation
arising where no content is shown on the map because we default
to the texture renderer and don't have any textures to draw.
2023-08-24 18:27:23 +10:00
Nyall Dawson
64a4ad086c Render line primitives when rendering tiled scenes in 2d with
the wireframe renderer
2023-08-23 14:08:21 +02:00
Nyall Dawson
d05c898922 Implement elevation properties for tiled scene layers
Allows offsetting and scaling z value in the scene by specified
amounts
2023-08-23 13:59:20 +02:00
Nyall Dawson
816c274bb4 Handle RTC_CENTER offsets specified in the feature table
of legacy B3DM files

See https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel#feature-table
2023-08-22 12:29:59 +10:00
Martin Dobias
fe941e3c21 Tiled scene: improve handling of URLs
- added QgsTiledSceneTile::baseUrl() to get URL that generated the tile and thus
  base URL for resolving relative paths of linked content
- resolution of relative URLs should work also when sub-tree JSON files are in
  a different path than the root tileset JSON
- all content URLs are now using scheme - URLs of local files start with file://
- removed duplicated code to resolve relative URLs in GLTF parsing and chunk loading
2023-08-11 22:23:20 +02:00
Nyall Dawson
78b99d5578 Remove texture color renderer, and replace with checkbox option
in wireframe renderer
2023-08-11 18:28:21 +10:00
Nyall Dawson
29b421e2d0 Correctly set default fill symbol for wireframe renderer 2023-08-11 18:28:21 +10:00
Nyall Dawson
939877f51e Rename mesh renderer to wireframe renderer 2023-08-11 18:28:21 +10:00
Nyall Dawson
80ec3d9c94 Use float for texture coordinates 2023-08-11 18:28:21 +10:00
Nyall Dawson
07db119e44 Const 2023-08-11 18:28:21 +10:00
Nyall Dawson
59c6ca95db Add option to show boundaries 2023-08-11 18:28:21 +10:00
Nyall Dawson
3c7f0730e5 Implement 2d renderer for tiled scenes
We currently offer three renderer choices:
- Textured (default). Loads the texture image and paints the mesh using
  these textures
- Texture color. Uses the center point color for rendering each mesh
  triangle. Gives a clear visual overview of the mesh structure while
  also providing some context via the texture color
- Mesh. Renders the scene's mesh using a fill symbol
2023-08-11 18:28:21 +10:00
Nyall Dawson
3ac33d1477 Fix doxygen test 2023-08-10 10:41:23 +02:00
Nyall Dawson
0e363e66c2 Remove abstract class for bounding volumes, and always treat
bounding volumes as OBB

Greatly simplifies the code. There's a small loss of efficiency
since we will always be expanding out spheres to their bounding
boxes, but given we always require boxes for QGIS 3d nodes
anyway this will only impact 2d rendering.
2023-08-10 10:41:23 +02:00
Nyall Dawson
3e25c977a0 Use numeric IDs for tiled scene tiles instead of uuids 2023-08-10 10:32:55 +10:00
Martin Dobias
41518dbc19 Nyall's review 2023-08-09 13:54:53 +02:00
Martin Dobias
6f3425a8cb 3D renderer implementation for 3D tiles 2023-08-09 13:54:53 +02:00
Nyall Dawson
4849099a48 Load some basic provider metadata to tiled scene layer metadata 2023-08-07 18:44:23 +10:00
Nyall Dawson
a6b16added Shell for tiled scene texture renderer 2023-08-07 18:43:10 +10:00
Nyall Dawson
c8658efde4 Setup core infrastructure for tiled scene 2d renderers 2023-08-07 18:43:10 +10:00
Nyall Dawson
9f57fb2ef0 Rename "tiled mesh" to "tiled scene"
Better reflects that these types can contain lines and point
data, not just meshes
2023-08-05 21:31:49 +10:00