18#ifndef QGSMESHLAYERRENDERER_H
19#define QGSMESHLAYERRENDERER_H
55struct CORE_NO_EXPORT QgsMeshLayerRendererCache
57 int mDatasetGroupsCount = 0;
60 QgsMeshDatasetIndex mActiveScalarDatasetIndex;
61 QVector<double> mScalarDatasetValues;
62 QgsMeshDataBlock mScalarActiveFaceFlagValues;
64 double mScalarDatasetMinimum = std::numeric_limits<double>::quiet_NaN();
65 double mScalarDatasetMaximum = std::numeric_limits<double>::quiet_NaN();
67 std::unique_ptr<QgsMesh3DAveragingMethod> mScalarAveragingMethod;
70 QgsMeshDatasetIndex mActiveVectorDatasetIndex;
71 QgsMeshDataBlock mVectorDatasetValues;
72 QgsMeshDataBlock mVectorActiveFaceFlagValues;
73 QVector<double> mVectorDatasetValuesMag;
74 double mVectorDatasetMagMinimum = std::numeric_limits<double>::quiet_NaN();
75 double mVectorDatasetMagMaximum = std::numeric_limits<double>::quiet_NaN();
76 double mVectorDatasetGroupMagMinimum = std::numeric_limits<double>::quiet_NaN();
77 double mVectorDatasetGroupMagMaximum = std::numeric_limits<double>::quiet_NaN();
79 std::unique_ptr<QgsMesh3DAveragingMethod> mVectorAveragingMethod;
103 void prepareLabeling(
QgsMeshLayer *layer, QSet<QString> &attributeNames );
106 void renderFaceMesh(
const QgsMeshRendererMeshSettings &settings,
const QVector<QgsMeshFace> &faces,
const QList<int> &facesInExtent );
107 void renderScalarDataset();
110 void registerLabelFeatures();
112 void renderVectorDataset();
116 void calculateOutputSize();
118 bool mIsMeshSimplificationActive =
false;
120 bool mIsEditable =
false;
132 std::unique_ptr<QgsMeshLayerRendererFeedback>
mFeedback;
177 double mLayerOpacity = 1.0;
A ramp shader will color a raster pixel based on a list of values ranges in a ramp.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
QgsMapLayerRenderer(const QString &layerID, QgsRenderContext *context=nullptr)
Constructor for QgsMapLayerRenderer, with the associated layerID and render context.
A block of integers/doubles from a mesh dataset.
Implements a label provider for mesh layers.
double mScalarDatasetMaximum
QgsMeshDatasetGroupMetadata::DataType mScalarDataType
double mVectorDatasetMagMinimum
double mScalarDatasetMinimum
QgsTriangularMesh mTriangularMesh
QgsMeshLayerRenderer(QgsMeshLayer *layer, QgsRenderContext &context)
Ctor.
QVector< double > mScalarDatasetValues
std::unique_ptr< QgsMeshLayerRendererFeedback > mFeedback
feedback class for cancellation
~QgsMeshLayerRenderer() override=default
QgsMeshDataBlock mScalarActiveFaceFlagValues
bool render() override
Do the rendering (based on data stored in the class).
double mVectorDatasetMagMaximum
QgsRectangle mLayerExtent
QVector< double > mVectorDatasetValuesMag
double mVectorDatasetGroupMagMaximum
QgsMeshRendererSettings mRendererSettings
bool forceRasterRender() const override
Returns true if the renderer must be rendered to a raster paint device (e.g.
QgsMeshDatasetGroupMetadata::DataType mVectorDataType
double mVectorDatasetGroupMagMinimum
QList< QgsMapClippingRegion > mClippingRegions
QgsFeedback * feedback() const override
Access to feedback object of the layer renderer (may be nullptr).
QgsMeshDataBlock mVectorActiveFaceFlagValues
QgsMeshDataBlock mVectorDatasetValues
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Represents a mesh renderer settings for mesh objects.
Represents a mesh renderer settings for scalar datasets.
DataResamplingMethod
Resampling of value from dataset.
@ NoResampling
Does not use resampling.
Represents all mesh renderer settings.
Feedback object tailored for raster block reading.
A rectangle specified with double values.
Contains information about the context of a rendering operation.
A triangular/derived mesh with vertices in map coordinates.
Mesh - vertices, edges and faces.