55 return mLineWidthUnit;
65 QDomElement elem = doc.createElement( QStringLiteral(
"mesh-settings" ) );
66 elem.setAttribute( QStringLiteral(
"enabled" ), mEnabled ? QStringLiteral(
"1" ) : QStringLiteral(
"0" ) );
67 elem.setAttribute( QStringLiteral(
"line-width" ), mLineWidth );
75 mEnabled = elem.attribute( QStringLiteral(
"enabled" ) ).toInt();
76 mLineWidth = elem.attribute( QStringLiteral(
"line-width" ) ).toDouble();
84 return mColorRampShader;
89 mColorRampShader = shader;
98 mClassificationMinimum = minimum;
99 mClassificationMaximum = maximum;
109 return mDataResamplingMethod;
114 mDataResamplingMethod = dataInterpolationMethod;
119 QDomElement elem = doc.createElement( QStringLiteral(
"scalar-settings" ) );
120 elem.setAttribute( QStringLiteral(
"min-val" ), mClassificationMinimum );
121 elem.setAttribute( QStringLiteral(
"max-val" ), mClassificationMaximum );
122 elem.setAttribute( QStringLiteral(
"opacity" ), mOpacity );
125 switch ( mDataResamplingMethod )
128 methodTxt = QStringLiteral(
"no-resampling" );
131 methodTxt = QStringLiteral(
"neighbour-average" );
134 elem.setAttribute( QStringLiteral(
"interpolation-method" ), methodTxt );
136 elem.setAttribute( QStringLiteral(
"range-extent" ), QgsMeshRendererScalarSettings::extentString( mRangeExtent ) );
137 elem.setAttribute( QStringLiteral(
"range-limit" ), QgsMeshRendererScalarSettings::limitsString( mRangeLimit ) );
139 const QDomElement elemShader = mColorRampShader.
writeXml( doc, context );
140 elem.appendChild( elemShader );
142 QDomElement elemEdge = doc.createElement( QStringLiteral(
"edge-settings" ) );
143 elemEdge.appendChild( mEdgeStrokeWidth.
writeXml( doc, context ) );
144 elemEdge.setAttribute( QStringLiteral(
"stroke-width-unit" ),
static_cast< int >( mEdgeStrokeWidthUnit ) );
145 elem.appendChild( elemEdge );
152 mClassificationMinimum = elem.attribute( QStringLiteral(
"min-val" ) ).toDouble();
153 mClassificationMaximum = elem.attribute( QStringLiteral(
"max-val" ) ).toDouble();
154 mOpacity = elem.attribute( QStringLiteral(
"opacity" ) ).toDouble();
156 const QString methodTxt = elem.attribute( QStringLiteral(
"interpolation-method" ) );
157 if ( QStringLiteral(
"neighbour-average" ) == methodTxt )
166 mRangeExtent = QgsMeshRendererScalarSettings::extentFromString( elem.attribute(
"range-extent" ) );
167 mRangeLimit = QgsMeshRendererScalarSettings::limitsFromString( elem.attribute(
"range-limit" ) );
169 const QDomElement elemShader = elem.firstChildElement( QStringLiteral(
"colorrampshader" ) );
170 mColorRampShader.
readXml( elemShader, context );
172 const QDomElement elemEdge = elem.firstChildElement( QStringLiteral(
"edge-settings" ) );
173 const QDomElement elemEdgeStrokeWidth = elemEdge.firstChildElement( QStringLiteral(
"mesh-stroke-width" ) );
174 mEdgeStrokeWidth.
readXml( elemEdgeStrokeWidth, context );
176 elemEdge.attribute( QStringLiteral(
"stroke-width-unit" ) ).toInt() );
181 return mEdgeStrokeWidth;
186 mEdgeStrokeWidth = strokeWidth;
191 return mEdgeStrokeWidthUnit;
199void QgsMeshRendererScalarSettings::updateShader()
205 if ( !mColorRampShader.
isEmpty() )
214 return QStringLiteral(
"WholeMesh" );
216 return QStringLiteral(
"CurrentCanvas" );
218 return QStringLiteral(
"UpdatedCanvas" );
220 return QStringLiteral(
"WholeMesh" );
225 if (
extent == QLatin1String(
"WholeMesh" ) )
229 else if (
extent == QLatin1String(
"CurrentCanvas" ) )
233 else if (
extent == QLatin1String(
"UpdatedCanvas" ) )
246 return QStringLiteral(
"MinMax" );
250 return QStringLiteral(
"None" );
255 if (
limits == QLatin1String(
"MinMax" ) )
281 mColor = vectorColor;
291 mFilterMin = vectorFilterMin;
301 mFilterMax = vectorFilterMax;
306 return mOnUserDefinedGrid;
311 mOnUserDefinedGrid = enabled;
316 return mUserGridCellWidth;
321 mUserGridCellWidth = width;
326 return mUserGridCellHeight;
331 mUserGridCellHeight = height;
336 return mShaftLengthMethod;
346 return mMinShaftLength;
356 return mMaxShaftLength;
376 return mFixedShaftLength;
386 return mArrowHeadWidthRatio;
391 mArrowHeadWidthRatio = vectorHeadWidthRatio;
396 return mArrowHeadLengthRatio;
401 mArrowHeadLengthRatio = vectorHeadLengthRatio;
406 QDomElement elem = doc.createElement( QStringLiteral(
"vector-arrow-settings" ) );
407 elem.setAttribute( QStringLiteral(
"arrow-head-width-ratio" ), mArrowHeadWidthRatio );
408 elem.setAttribute( QStringLiteral(
"arrow-head-length-ratio" ), mArrowHeadLengthRatio );
410 QDomElement elemShaft = doc.createElement( QStringLiteral(
"shaft-length" ) );
412 switch ( mShaftLengthMethod )
415 methodTxt = QStringLiteral(
"minmax" );
416 elemShaft.setAttribute( QStringLiteral(
"min" ), mMinShaftLength );
417 elemShaft.setAttribute( QStringLiteral(
"max" ), mMaxShaftLength );
420 methodTxt = QStringLiteral(
"scaled" );
421 elemShaft.setAttribute( QStringLiteral(
"scale-factor" ), mScaleFactor );
424 methodTxt = QStringLiteral(
"fixed" ) ;
425 elemShaft.setAttribute( QStringLiteral(
"fixed-length" ), mFixedShaftLength );
428 elemShaft.setAttribute( QStringLiteral(
"method" ), methodTxt );
429 elem.appendChild( elemShaft );
435 mArrowHeadWidthRatio = elem.attribute( QStringLiteral(
"arrow-head-width-ratio" ) ).toDouble();
436 mArrowHeadLengthRatio = elem.attribute( QStringLiteral(
"arrow-head-length-ratio" ) ).toDouble();
438 const QDomElement elemShaft = elem.firstChildElement( QStringLiteral(
"shaft-length" ) );
439 const QString methodTxt = elemShaft.attribute( QStringLiteral(
"method" ) );
440 if ( QStringLiteral(
"minmax" ) == methodTxt )
442 mShaftLengthMethod =
MinMax;
443 mMinShaftLength = elemShaft.attribute( QStringLiteral(
"min" ) ).toDouble();
444 mMaxShaftLength = elemShaft.attribute( QStringLiteral(
"max" ) ).toDouble();
446 else if ( QStringLiteral(
"scaled" ) == methodTxt )
448 mShaftLengthMethod =
Scaled;
449 mScaleFactor = elemShaft.attribute( QStringLiteral(
"scale-factor" ) ).toDouble();
453 mShaftLengthMethod =
Fixed;
454 mFixedShaftLength = elemShaft.attribute( QStringLiteral(
"fixed-length" ) ).toDouble();
469 return mAveragingMethod.get();
475 mAveragingMethod.reset( method->
clone() );
477 mAveragingMethod.reset();
482 QDomElement elem = doc.createElement( QStringLiteral(
"mesh-renderer-settings" ) );
484 QDomElement elemActiveDatasetGroup = doc.createElement( QStringLiteral(
"active-dataset-group" ) );
485 elemActiveDatasetGroup.setAttribute( QStringLiteral(
"scalar" ), mActiveScalarDatasetGroup );
486 elemActiveDatasetGroup.setAttribute( QStringLiteral(
"vector" ), mActiveVectorDatasetGroup );
487 elem.appendChild( elemActiveDatasetGroup );
489 for (
auto groupIndex = mRendererScalarSettings.keyBegin(); groupIndex != mRendererScalarSettings.keyEnd(); groupIndex++ )
493 elemScalar.setAttribute( QStringLiteral(
"group" ), *groupIndex );
494 elem.appendChild( elemScalar );
497 for (
auto groupIndex = mRendererVectorSettings.keyBegin(); groupIndex != mRendererVectorSettings.keyEnd(); groupIndex++ )
501 elemVector.setAttribute( QStringLiteral(
"group" ), *groupIndex );
502 elem.appendChild( elemVector );
505 QDomElement elemNativeMesh = mRendererNativeMeshSettings.
writeXml( doc );
506 elemNativeMesh.setTagName( QStringLiteral(
"mesh-settings-native" ) );
507 elem.appendChild( elemNativeMesh );
509 QDomElement elemEdgeMesh = mRendererEdgeMeshSettings.
writeXml( doc );
510 elemEdgeMesh.setTagName( QStringLiteral(
"mesh-settings-edge" ) );
511 elem.appendChild( elemEdgeMesh );
513 QDomElement elemTriangularMesh = mRendererTriangularMeshSettings.
writeXml( doc );
514 elemTriangularMesh.setTagName( QStringLiteral(
"mesh-settings-triangular" ) );
515 elem.appendChild( elemTriangularMesh );
517 if ( mAveragingMethod )
519 QDomElement elemAveraging = doc.createElement( QStringLiteral(
"averaging-3d" ) );
520 elemAveraging.setAttribute( QStringLiteral(
"method" ), QString::number( mAveragingMethod->method() ) ) ;
521 const QDomElement elemAveragingParams = mAveragingMethod->writeXml( doc );
522 elemAveraging.appendChild( elemAveragingParams );
523 elem.appendChild( elemAveraging );
531 mRendererScalarSettings.clear();
532 mRendererVectorSettings.clear();
533 mAveragingMethod.reset();
535 const QDomElement elemActiveDataset = elem.firstChildElement( QStringLiteral(
"active-dataset-group" ) );
536 if ( elemActiveDataset.hasAttribute( QStringLiteral(
"scalar" ) ) )
537 mActiveScalarDatasetGroup = elemActiveDataset.attribute( QStringLiteral(
"scalar" ) ).toInt();
539 if ( elemActiveDataset.hasAttribute( QStringLiteral(
"vector" ) ) )
540 mActiveVectorDatasetGroup = elemActiveDataset.attribute( QStringLiteral(
"vector" ) ).toInt();
542 QDomElement elemScalar = elem.firstChildElement( QStringLiteral(
"scalar-settings" ) );
543 while ( !elemScalar.isNull() )
545 const int groupIndex = elemScalar.attribute( QStringLiteral(
"group" ) ).toInt();
550 elemScalar = elemScalar.nextSiblingElement( QStringLiteral(
"scalar-settings" ) );
553 QDomElement elemVector = elem.firstChildElement( QStringLiteral(
"vector-settings" ) );
554 while ( !elemVector.isNull() )
556 const int groupIndex = elemVector.attribute( QStringLiteral(
"group" ) ).toInt();
561 elemVector = elemVector.nextSiblingElement( QStringLiteral(
"vector-settings" ) );
564 const QDomElement elemNativeMesh = elem.firstChildElement( QStringLiteral(
"mesh-settings-native" ) );
565 mRendererNativeMeshSettings.
readXml( elemNativeMesh );
567 const QDomElement elemEdgeMesh = elem.firstChildElement( QStringLiteral(
"mesh-settings-edge" ) );
568 mRendererEdgeMeshSettings.
readXml( elemEdgeMesh );
570 const QDomElement elemTriangularMesh = elem.firstChildElement( QStringLiteral(
"mesh-settings-triangular" ) );
571 mRendererTriangularMeshSettings.
readXml( elemTriangularMesh );
573 const QDomElement elemAveraging = elem.firstChildElement( QStringLiteral(
"averaging-3d" ) );
574 if ( !elemAveraging.isNull() )
582 return mActiveScalarDatasetGroup;
592 return mActiveVectorDatasetGroup;
602 return mSeedingMethod;
612 return mSeedingDensity;
622 QDomElement elem = doc.createElement( QStringLiteral(
"vector-streamline-settings" ) );
624 elem.setAttribute( QStringLiteral(
"seeding-method" ), mSeedingMethod );
625 elem.setAttribute( QStringLiteral(
"seeding-density" ), mSeedingDensity );
634 elem.attribute( QStringLiteral(
"seeding-method" ) ).toInt() );
635 mSeedingDensity = elem.attribute( QStringLiteral(
"seeding-density" ) ).toDouble();
640 return mDisplayingMethod;
645 mDisplayingMethod = displayingMethod;
650 return mArrowsSettings;
660 return mStreamLinesSettings;
670 QDomElement elem = doc.createElement( QStringLiteral(
"vector-settings" ) );
671 elem.setAttribute( QStringLiteral(
"symbology" ), mDisplayingMethod );
673 elem.setAttribute( QStringLiteral(
"line-width" ), mLineWidth );
674 elem.setAttribute( QStringLiteral(
"coloring-method" ),
coloringMethod() );
676 const QDomElement elemShader = mColorRampShader.
writeXml( doc, context );
677 elem.appendChild( elemShader );
678 elem.setAttribute( QStringLiteral(
"filter-min" ), mFilterMin );
679 elem.setAttribute( QStringLiteral(
"filter-max" ), mFilterMax );
681 elem.setAttribute( QStringLiteral(
"user-grid-enabled" ), mOnUserDefinedGrid ? QStringLiteral(
"1" ) : QStringLiteral(
"0" ) );
682 elem.setAttribute( QStringLiteral(
"user-grid-width" ), mUserGridCellWidth );
683 elem.setAttribute( QStringLiteral(
"user-grid-height" ), mUserGridCellHeight );
685 elem.appendChild( mArrowsSettings.
writeXml( doc ) );
686 elem.appendChild( mStreamLinesSettings.
writeXml( doc ) );
687 elem.appendChild( mTracesSettings.
writeXml( doc ) );
688 elem.appendChild( mWindBarbSettings.
writeXml( doc ) );
696 elem.attribute( QStringLiteral(
"symbology" ) ).toInt() );
698 mLineWidth = elem.attribute( QStringLiteral(
"line-width" ) ).toDouble();
700 elem.attribute( QStringLiteral(
"coloring-method" ) ).toInt() );
702 mColorRampShader.
readXml( elem.firstChildElement(
"colorrampshader" ), context );
703 mFilterMin = elem.attribute( QStringLiteral(
"filter-min" ) ).toDouble();
704 mFilterMax = elem.attribute( QStringLiteral(
"filter-max" ) ).toDouble();
706 mOnUserDefinedGrid = elem.attribute( QStringLiteral(
"user-grid-enabled" ) ).toInt();
707 mUserGridCellWidth = elem.attribute( QStringLiteral(
"user-grid-width" ) ).toInt();
708 mUserGridCellHeight = elem.attribute( QStringLiteral(
"user-grid-height" ) ).toInt();
710 const QDomElement elemVector = elem.firstChildElement( QStringLiteral(
"vector-arrow-settings" ) );
711 if ( ! elemVector.isNull() )
712 mArrowsSettings.
readXml( elemVector );
714 const QDomElement elemStreamLine = elem.firstChildElement( QStringLiteral(
"vector-streamline-settings" ) );
715 if ( ! elemStreamLine.isNull() )
716 mStreamLinesSettings.
readXml( elemStreamLine );
718 const QDomElement elemTraces = elem.firstChildElement( QStringLiteral(
"vector-traces-settings" ) );
719 if ( ! elemTraces.isNull() )
720 mTracesSettings.
readXml( elemTraces );
722 const QDomElement elemWindBarb = elem.firstChildElement( QStringLiteral(
"vector-windbarb-settings" ) );
723 if ( ! elemWindBarb.isNull() )
724 mWindBarbSettings.
readXml( elemWindBarb );
729 return mColoringMethod;
739 return mColorRampShader;
750 switch ( mColoringMethod )
760 return strokeColoring;
765 return mTracesSettings;
775 mMaximumTailLength = elem.attribute( QStringLiteral(
"maximum-tail-length" ) ).toInt();
777 elem.attribute( QStringLiteral(
"maximum-tail-length-unit" ) ).toInt() );
778 mParticlesCount = elem.attribute( QStringLiteral(
"particles-count" ) ).toInt();
783 QDomElement elem = doc.createElement( QStringLiteral(
"vector-traces-settings" ) );
784 elem.setAttribute( QStringLiteral(
"maximum-tail-length" ), mMaximumTailLength );
785 elem.setAttribute( QStringLiteral(
"maximum-tail-length-unit" ),
static_cast< int >( mMaximumTailLengthUnit ) );
786 elem.setAttribute( QStringLiteral(
"particles-count" ), mParticlesCount );
793 return mMaximumTailLengthUnit;
803 return mMaximumTailLength;
813 return mParticlesCount;
818 mParticlesCount = value;
823 return mRendererScalarSettings.contains( datasetGroupIndex ) || mRendererVectorSettings.contains( datasetGroupIndex );
828 return mWindBarbSettings;
838 mShaftLength = elem.attribute( QStringLiteral(
"shaft-length" ), QStringLiteral(
"10" ) ).toDouble();
840 elem.attribute( QStringLiteral(
"shaft-length-units" ) ).toInt() );
841 mMagnitudeMultiplier = elem.attribute( QStringLiteral(
"magnitude-multiplier" ), QStringLiteral(
"1" ) ).toDouble();
843 elem.attribute( QStringLiteral(
"magnitude-units" ), QStringLiteral(
"0" ) ).toInt() );
848 QDomElement elem = doc.createElement( QStringLiteral(
"vector-windbarb-settings" ) );
849 elem.setAttribute( QStringLiteral(
"shaft-length" ), mShaftLength );
850 elem.setAttribute( QStringLiteral(
"shaft-length-units" ),
static_cast< int >( mShaftLengthUnits ) );
851 elem.setAttribute( QStringLiteral(
"magnitude-multiplier" ), mMagnitudeMultiplier );
852 elem.setAttribute( QStringLiteral(
"magnitude-units" ),
static_cast< int >( mMagnitudeUnits ) );
858 switch ( mMagnitudeUnits )
863 return 3600.0 / 1852.0;
867 return 1.609344 / 1.852;
869 return 3600.0 / 1.852 / 5280.0 * 1.609344 ;
871 return mMagnitudeMultiplier;
893 return mShaftLengthUnits;
898 mShaftLengthUnits = shaftLengthUnit;
903 return mMagnitudeUnits;
908 mMagnitudeUnits = units;
MeshRangeLimit
Describes the limits used to compute mesh ranges (min/max values).
@ MinimumMaximum
Real min-max values.
MeshRangeExtent
Describes the extent used to compute mesh ranges (min/max values).
@ UpdatedCanvas
Constantly updated extent of the canvas is used to compute statistics.
@ WholeMesh
Whole mesh is used to compute statistics.
@ FixedCanvas
Current extent of the canvas (at the time of computation) is used to compute statistics.
RenderUnit
Rendering size units.
A ramp shader will color a raster pixel based on a list of values ranges in a ramp.
bool isEmpty() const
Whether the color ramp contains any items.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const
Writes configuration to a new DOM element.
QgsColorRamp * sourceColorRamp() const
Returns the source color ramp.
void classifyColorRamp(int classes=0, int band=-1, const QgsRectangle &extent=QgsRectangle(), QgsRasterInterface *input=nullptr)
Classify color ramp shader.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext())
Reads configuration from the given DOM element.
virtual int count() const =0
Returns number of defined colors, or -1 if undefined.
static QColor colorFromString(const QString &string)
Decodes a string into a color value.
static QString colorToString(const QColor &color)
Encodes a color into a string value.
Class defining color to render mesh datasets.
ColoringMethod
Defines how the color is defined.
@ ColorRamp
Render with a color ramp.
@ SingleColor
Render with a single color.
Represents a width than can vary depending on values.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context)
Reads configuration from the given DOM element.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context) const
Writes configuration to a new DOM element.
Abstract class to interpolate 3d stacked mesh data to 2d data.
static QgsMesh3DAveragingMethod * createFromXml(const QDomElement &elem)
Creates the instance from XML by calling readXml of derived classes.
virtual QgsMesh3DAveragingMethod * clone() const =0
Clone the instance.
void setLineWidthUnit(Qgis::RenderUnit lineWidthUnit)
Sets units of the width of the mesh frame.
void setEnabled(bool enabled)
Sets whether mesh structure rendering is enabled.
QColor color() const
Returns color used for rendering.
QDomElement writeXml(QDomDocument &doc) const
Writes configuration to a new DOM element.
double lineWidth() const
Returns line width used for rendering (in millimeters)
void setLineWidth(double lineWidth)
Sets line width used for rendering (in millimeters)
void readXml(const QDomElement &elem)
Reads configuration from the given DOM element.
Qgis::RenderUnit lineWidthUnit() const
Returns units of the width of the mesh frame.
bool isEnabled() const
Returns whether mesh structure rendering is enabled.
void setColor(const QColor &color)
Sets color used for rendering of the mesh.
Represents a mesh renderer settings for scalar datasets.
void setClassificationMinimumMaximum(double minimum, double maximum)
Sets min/max values used for creation of the color ramp shader.
Qgis::MeshRangeExtent extent() const
Returns the mesh extent for minimum maximum calculation.
double opacity() const
Returns opacity.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext())
Reads configuration from the given DOM element.
void setEdgeStrokeWidthUnit(Qgis::RenderUnit edgeStrokeWidthUnit)
Sets the stroke width unit used to render edges scalar dataset.
void setColorRampShader(const QgsColorRampShader &shader)
Sets color ramp shader function.
Qgis::MeshRangeLimit limits() const
Returns the range limits type for minimum maximum calculation.
QgsColorRampShader colorRampShader() const
Returns color ramp shader function.
double classificationMinimum() const
Returns min value used for creation of the color ramp shader.
void setOpacity(double opacity)
Sets opacity.
DataResamplingMethod
Resampling of value from dataset.
@ NoResampling
Does not use resampling.
@ NeighbourAverage
Does a simple average of values defined for all surrounding faces/vertices.
Qgis::RenderUnit edgeStrokeWidthUnit() const
Returns the stroke width unit used to render edges scalar dataset.
DataResamplingMethod dataResamplingMethod() const
Returns the type of interpolation to use to convert face defined datasets to values on vertices.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const
Writes configuration to a new DOM element.
void setEdgeStrokeWidth(const QgsInterpolatedLineWidth &strokeWidth)
Sets the stroke width used to render edges scalar dataset.
double classificationMaximum() const
Returns max value used for creation of the color ramp shader.
QgsInterpolatedLineWidth edgeStrokeWidth() const
Returns the stroke width used to render edges scalar dataset.
void setDataResamplingMethod(const DataResamplingMethod &dataResamplingMethod)
Sets data interpolation method.
void setAveragingMethod(QgsMesh3DAveragingMethod *method)
Sets averaging method for conversion of 3d stacked mesh data to 2d data.
void setActiveVectorDatasetGroup(int activeVectorDatasetGroup)
Sets the active vector dataset group.
QgsMeshRendererScalarSettings scalarSettings(int groupIndex) const
Returns renderer settings.
int activeVectorDatasetGroup() const
Returns the active vector dataset group.
QgsMesh3DAveragingMethod * averagingMethod() const
Returns averaging method for conversion of 3d stacked mesh data to 2d data.
bool hasSettings(int datasetGroupIndex) const
Returns whether the group with index has render settings (scalar or vector)
int activeScalarDatasetGroup() const
Returns the active scalar dataset group.
QgsMeshRendererVectorSettings vectorSettings(int groupIndex) const
Returns renderer settings.
void setActiveScalarDatasetGroup(int activeScalarDatasetGroup)
Sets the active scalar dataset group.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext())
Reads configuration from the given DOM element.
QgsMeshRendererSettings()
Constructs renderer with default single layer averaging method.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const
Writes configuration to a new DOM element.
~QgsMeshRendererSettings()
Represents a mesh renderer settings for vector datasets displayed with arrows.
void setFixedShaftLength(double fixedShaftLength)
Sets fixed length (in millimeters)
void setMaxShaftLength(double maxShaftLength)
Sets maximum shaft length (in millimeters)
QgsMeshRendererVectorArrowSettings::ArrowScalingMethod shaftLengthMethod() const
Returns method used for drawing arrows.
void setMinShaftLength(double minShaftLength)
Sets mininimum shaft length (in millimeters)
double fixedShaftLength() const
Returns fixed arrow length (in millimeters)
void setArrowHeadWidthRatio(double arrowHeadWidthRatio)
Sets ratio of the head width of the arrow (range 0-1)
double scaleFactor() const
Returns scale factor.
double maxShaftLength() const
Returns maximum shaft length (in millimeters)
double arrowHeadWidthRatio() const
Returns ratio of the head width of the arrow (range 0-1)
void setArrowHeadLengthRatio(double arrowHeadLengthRatio)
Sets ratio of the head length of the arrow (range 0-1)
void readXml(const QDomElement &elem)
Reads configuration from the given DOM element.
void setScaleFactor(double scaleFactor)
Sets scale factor.
void setShaftLengthMethod(ArrowScalingMethod shaftLengthMethod)
Sets method used for drawing arrows.
ArrowScalingMethod
Algorithm how to transform vector magnitude to length of arrow on the device in pixels.
@ Scaled
Scale vector magnitude by factor scaleFactor()
@ MinMax
Scale vector magnitude linearly to fit in range of vectorFilterMin() and vectorFilterMax()
@ Fixed
Use fixed length fixedShaftLength() regardless of vector's magnitude.
double minShaftLength() const
Returns mininimum shaft length (in millimeters)
QDomElement writeXml(QDomDocument &doc) const
Writes configuration to a new DOM element.
double arrowHeadLengthRatio() const
Returns ratio of the head length of the arrow (range 0-1)
Represents a renderer settings for vector datasets.
void setColorRampShader(const QgsColorRampShader &colorRampShader)
Returns the color ramp shader used to render vector datasets.
void setStreamLinesSettings(const QgsMeshRendererVectorStreamlineSettings &streamLinesSettings)
Sets settings for vector rendered with streamlines.
int userGridCellWidth() const
Returns width in pixels of user grid cell.
void setArrowsSettings(const QgsMeshRendererVectorArrowSettings &arrowSettings)
Sets settings for vector rendered with arrows.
void setUserGridCellWidth(int width)
Sets width of user grid cell (in pixels)
void setColor(const QColor &color)
Sets color used for drawing arrows.
QgsMeshRendererVectorTracesSettings tracesSettings() const
Returns settings for vector rendered with traces.
QColor color() const
Returns color used for drawing arrows.
int userGridCellHeight() const
Returns height in pixels of user grid cell.
void setOnUserDefinedGrid(bool enabled)
Toggles drawing of vectors on user defined grid.
double lineWidth() const
Returns line width of the arrow (in millimeters)
Symbology
Defines the symbology of vector rendering.
void setUserGridCellHeight(int height)
Sets height of user grid cell (in pixels)
Symbology symbology() const
Returns the displaying method used to render vector datasets.
double filterMax() const
Returns filter value for vector magnitudes.
QgsColorRampShader colorRampShader() const
Sets the color ramp shader used to render vector datasets.
void setSymbology(const Symbology &symbology)
Sets the displaying method used to render vector datasets.
void setFilterMin(double filterMin)
Sets filter value for vector magnitudes.
QgsMeshRendererVectorArrowSettings arrowSettings() const
Returns settings for vector rendered with arrows.
void setFilterMax(double filterMax)
Sets filter value for vector magnitudes.
QgsInterpolatedLineColor vectorStrokeColoring() const
Returns the stroke coloring used to render vector datasets.
void setTracesSettings(const QgsMeshRendererVectorTracesSettings &tracesSettings)
Sets settings for vector rendered with traces.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const
Writes configuration to a new DOM element.
void setColoringMethod(const QgsInterpolatedLineColor::ColoringMethod &coloringMethod)
Sets the coloring method used to render vector datasets.
QgsInterpolatedLineColor::ColoringMethod coloringMethod() const
Returns the coloring method used to render vector datasets.
void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext())
Reads configuration from the given DOM element.
QgsMeshRendererVectorWindBarbSettings windBarbSettings() const
Returns settings for vector rendered with wind barbs.
void setLineWidth(double lineWidth)
Sets line width of the arrow in pixels (in millimeters)
bool isOnUserDefinedGrid() const
Returns whether vectors are drawn on user-defined grid.
double filterMin() const
Returns filter value for vector magnitudes.
void setWindBarbSettings(const QgsMeshRendererVectorWindBarbSettings &windBarbSettings)
Sets settings for vector rendered with wind barbs.
QgsMeshRendererVectorStreamlineSettings streamLinesSettings() const
Returns settings for vector rendered with streamlines.
Represents a streamline renderer settings for vector datasets displayed by streamlines.
void setSeedingDensity(double seedingDensity)
Sets the density used for seeding start points.
SeedingStartPointsMethod seedingMethod() const
Returns the method used for seeding start points of strealines.
void setSeedingMethod(const SeedingStartPointsMethod &seedingMethod)
Sets the method used for seeding start points of strealines.
QDomElement writeXml(QDomDocument &doc) const
Writes configuration to a new DOM element.
SeedingStartPointsMethod
Method used to define start points that are used to draw streamlines.
void readXml(const QDomElement &elem)
Reads configuration from the given DOM element.
double seedingDensity() const
Returns the density used for seeding start points.
Represents a trace renderer settings for vector datasets displayed by particle traces.
Qgis::RenderUnit maximumTailLengthUnit() const
Returns the maximum tail length unit.
void setMaximumTailLength(double maximumTailLength)
Sets the maximums tail length.
QDomElement writeXml(QDomDocument &doc) const
Writes configuration to a new DOM element.
void readXml(const QDomElement &elem)
Reads configuration from the given DOM element.
void setMaximumTailLengthUnit(Qgis::RenderUnit maximumTailLengthUnit)
Sets the maximum tail length unit.
double maximumTailLength() const
Returns the maximum tail length.
int particlesCount() const
Returns particles count.
void setParticlesCount(int value)
Sets particles count.
Represents a mesh renderer settings for vector datasets displayed with wind barbs.
void readXml(const QDomElement &elem)
Reads configuration from the given DOM element.
void setShaftLengthUnits(Qgis::RenderUnit shaftLengthUnit)
Sets the units for the shaft length.
WindSpeedUnit magnitudeUnits() const
Returns the units that the data are in.
void setMagnitudeUnits(WindSpeedUnit units)
Sets the units that the data are in.
void setMagnitudeMultiplier(double magnitudeMultiplier)
Sets a multiplier for the magnitude to convert it to knots.
double shaftLength() const
Returns the shaft length (in millimeters)
void setShaftLength(double shaftLength)
Sets the shaft length (in millimeters)
Qgis::RenderUnit shaftLengthUnits() const
Returns the units for the shaft length.
QDomElement writeXml(QDomDocument &doc) const
Writes configuration to a new DOM element.
WindSpeedUnit
Wind speed units. Wind barbs use knots so we use this enum for preset conversion values.
@ FeetPerSecond
Feet per second.
@ KilometersPerHour
Kilometers per hour.
@ Knots
Knots (Nautical miles per hour)
@ MilesPerHour
Miles per hour.
@ MetersPerSecond
Meters per second.
double magnitudeMultiplier() const
Returns the multiplier for the magnitude to convert it to knots, according to the units set with setM...
Sigma averages over the values between 0 (bed level) and 1 (surface).
virtual void setMaximumValue(double value)
Sets the maximum value for the raster shader.
virtual void setMinimumValue(double value)
Sets the minimum value for the raster shader.
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
static Q_INVOKABLE Qgis::RenderUnit decodeRenderUnit(const QString &string, bool *ok=nullptr)
Decodes a render unit from a string.
static Q_INVOKABLE QString encodeUnit(Qgis::DistanceUnit unit)
Encodes a distance unit to a string.