This is an equivalent of the point cloud index class, with some
notable differences:
- The class is designed to be thread safe. There's a shallow copy
QgsTiledMeshIndex class, which contains an implicitly shared
QgsAbstractTiledMeshIndex object. Tiled mesh data providers will
be accompanied by a concrete class of QgsAbstractTiledMeshIndex.
- The QgsTiledMeshIndex class takes care of thread safety by
protecting the underlying QgsAbstractTiledMeshIndex via a read/write
lock
- Callers can request tiled mesh tiles from the index by calling
QgsTiledMeshIndex::getTiles along with a QgsTiledMeshRequest object.
This will return the unique IDs of tiles matching the request.
Currently only geometric error based filtering is supported
by QgsTiledMeshRequest, but bounding box based filtering will
also be introduced.
- Individual tile details are retrieved by calling
QgsTiledMeshIndex::getTile along with the tile's unique ID.
- A caller can determine whether a specific tile can be further
refined by checking QgsTiledMeshIndex::tileCanRefine. This allows
the caller to check whether more children are available for a
tile, but which haven't yet been fetched (eg due to a sub dataset
tileset which hasn't yet been retrieved)
- A tile can be refined by calling QgsTiledMeshIndex::refineAsync.
(Non async refinement will be introduced later)
- Clients can request tile content by calling
QgsTiledMeshIndex::retrieveContent. This will either return
a cached version of the content (if available), or retrieve and cache
the content for future retrieval. Currently this uses a custom caching
mechanism, but this will be replaced in future with
QgsTileDownloadManager. (Currently QgsTileDownloadManager lacks support
for blocking gets which is required by the index to avoid use
of local event loops)
The api is implemented by the cesium tiles data provider, which
builds the index upfront from the cesium tiles tileset.json definitions.
alter the handling of symbol layers
These differ from Qgis::SymbolLayerFlag in that
Qgis::SymbolLayerFlag flags are used to reflect the inbuilt properties
of a symbol layer type, whereas Qgis::SymbolLayerUserFlag are optional,
user controlled flags which can be toggled for a symbol layer.
Add a flag `DisableSelectionRecoloring` which can be set for
symbol layers which prevents the layer from being recolored to
the render context selection color even when the feature
being rendered is selected
This provides a mechanism for an individual symbol layer to
avoid the forced recolor of selected features.
a vector layer
If set, then that symbol will be used for selected features. Allows
eg selected lines to be rendered in a thicker line style vs
non-selected lines for improved visibility.
through the toolbox
We were passing a float to a PyQt method requiring int in newer
Python versions, which raises an exception instead of silently
truncating.
SIP is totally messed up here -- the dialog wrapper or something
is always prematurely cleaned which results in broken QObject
connections throughout.
Hack around this by storing dialog instances in a global list to
prevent too early wrapper garbage collection
- operators to move QgsBox3d by a QgsVector3D
- reproject QgsOrientedBox3D and get its axis-aligned bounding box
- get length of sides of QgsOrientedBox3D
- transform QgsOrientedBox3D with a QgsMatrix4x4