QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsmesh3dsymbol.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmesh3dsymbol.cpp
3  -------------------
4  Date : January 2019
5  Copyright : (C) 2019 by Peter Petrik
6  Email : zilolv at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #include "qgsmesh3dsymbol.h"
17 #include "qgssymbollayerutils.h"
18 #include "qgs3dutils.h"
20 
22  : mMaterial( std::make_unique< QgsPhongMaterialSettings >() )
23 {
24 
25 }
26 
28 
30 {
31  std::unique_ptr< QgsMesh3DSymbol > result = std::make_unique< QgsMesh3DSymbol >();
32 
33  result->mAltClamping = mAltClamping;
34  result->mHeight = mHeight;
35  result->mMaterial.reset( mMaterial->clone() );
36  result->mAddBackFaces = mAddBackFaces;
37  result->mEnabled = mEnabled;
38  result->mSmoothedTriangles = mSmoothedTriangles;
39  result->mWireframeEnabled = mWireframeEnabled;
40  result->mWireframeLineWidth = mWireframeLineWidth;
41  result->mWireframeLineColor = mWireframeLineColor;
42  result->mLevelOfDetailIndex = mLevelOfDetailIndex;
43  result->mVerticalScale = mVerticalScale;
44  result->mVerticalDatasetGroupIndex = mVerticalDatasetGroupIndex;
45  result->mIsVerticalMagnitudeRelative = mIsVerticalMagnitudeRelative;
46  result->mRenderingStyle = mRenderingStyle;
47  result->mColorRampShader = mColorRampShader;
48  result->mSingleColor = mSingleColor;
49  result->mArrowsEnabled = mArrowsEnabled;
50  result->mArrowsSpacing = mArrowsSpacing;
51  result->mArrowsFixedSize = mArrowsFixedSize;
52  result->mArrowsColor = mArrowsColor;
53  result->mMaximumTextureSize = mMaximumTextureSize;
54  copyBaseSettings( result.get() );
55  return result.release();
56 }
57 
58 void QgsMesh3DSymbol::writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const
59 {
60  QDomDocument doc = elem.ownerDocument();
61 
62  //Simple symbol
63  QDomElement elemDataProperties = doc.createElement( QStringLiteral( "data" ) );
64  elemDataProperties.setAttribute( QStringLiteral( "alt-clamping" ), Qgs3DUtils::altClampingToString( mAltClamping ) );
65  elemDataProperties.setAttribute( QStringLiteral( "height" ), mHeight );
66  elemDataProperties.setAttribute( QStringLiteral( "add-back-faces" ), mAddBackFaces ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
67  elem.appendChild( elemDataProperties );
68 
69  QDomElement elemMaterial = doc.createElement( QStringLiteral( "material" ) );
70  mMaterial->writeXml( elemMaterial, context );
71  elem.appendChild( elemMaterial );
72 
73  //Advanced symbol
74  QDomElement elemAdvancedSettings = doc.createElement( QStringLiteral( "advanced-settings" ) );
75  elemAdvancedSettings.setAttribute( QStringLiteral( "renderer-3d-enabled" ), mEnabled ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
76  elemAdvancedSettings.setAttribute( QStringLiteral( "smoothed-triangle" ), mSmoothedTriangles ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
77  elemAdvancedSettings.setAttribute( QStringLiteral( "wireframe-enabled" ), mWireframeEnabled ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
78  elemAdvancedSettings.setAttribute( QStringLiteral( "wireframe-line-width" ), mWireframeLineWidth );
79  elemAdvancedSettings.setAttribute( QStringLiteral( "wireframe-line-color" ), QgsSymbolLayerUtils::encodeColor( mWireframeLineColor ) );
80  elemAdvancedSettings.setAttribute( QStringLiteral( "level-of-detail" ), mLevelOfDetailIndex );
81  elemAdvancedSettings.setAttribute( QStringLiteral( "vertical-scale" ), mVerticalScale );
82  elemAdvancedSettings.setAttribute( QStringLiteral( "vertical-group-index" ), mVerticalDatasetGroupIndex );
83  elemAdvancedSettings.setAttribute( QStringLiteral( "vertical-relative" ), mIsVerticalMagnitudeRelative ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
84  elemAdvancedSettings.setAttribute( QStringLiteral( "texture-type" ), mRenderingStyle );
85  elemAdvancedSettings.appendChild( mColorRampShader.writeXml( doc, context ) );
86  elemAdvancedSettings.setAttribute( QStringLiteral( "min-color-ramp-shader" ), mColorRampShader.minimumValue() );
87  elemAdvancedSettings.setAttribute( QStringLiteral( "max-color-ramp-shader" ), mColorRampShader.maximumValue() );
88  elemAdvancedSettings.setAttribute( QStringLiteral( "texture-single-color" ), QgsSymbolLayerUtils::encodeColor( mSingleColor ) );
89  elemAdvancedSettings.setAttribute( QStringLiteral( "arrows-enabled" ), mArrowsEnabled ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
90  elemAdvancedSettings.setAttribute( QStringLiteral( "arrows-spacing" ), mArrowsSpacing );
91  elemAdvancedSettings.setAttribute( QStringLiteral( "arrows-fixed-size" ), mArrowsFixedSize ? QStringLiteral( "1" ) : QStringLiteral( "0" ) );
92  elem.appendChild( elemAdvancedSettings );
93 
94  QDomElement elemDDP = doc.createElement( QStringLiteral( "data-defined-properties" ) );
96  elem.appendChild( elemDDP );
97 }
98 
99 void QgsMesh3DSymbol::readXml( const QDomElement &elem, const QgsReadWriteContext &context )
100 {
101  //Simple symbol
102  const QDomElement elemDataProperties = elem.firstChildElement( QStringLiteral( "data" ) );
103  mAltClamping = Qgs3DUtils::altClampingFromString( elemDataProperties.attribute( QStringLiteral( "alt-clamping" ) ) );
104  mHeight = elemDataProperties.attribute( QStringLiteral( "height" ) ).toFloat();
105  mAddBackFaces = elemDataProperties.attribute( QStringLiteral( "add-back-faces" ) ).toInt();
106 
107  const QDomElement elemMaterial = elem.firstChildElement( QStringLiteral( "material" ) );
108  mMaterial->readXml( elemMaterial, context );
109 
110  //Advanced symbol
111  const QDomElement elemAdvancedSettings = elem.firstChildElement( QStringLiteral( "advanced-settings" ) );
112  mEnabled = elemAdvancedSettings.attribute( QStringLiteral( "renderer-3d-enabled" ) ).toInt();
113  mSmoothedTriangles = elemAdvancedSettings.attribute( QStringLiteral( "smoothed-triangle" ) ).toInt();
114  mWireframeEnabled = elemAdvancedSettings.attribute( QStringLiteral( "wireframe-enabled" ) ).toInt();
115  mWireframeLineWidth = elemAdvancedSettings.attribute( QStringLiteral( "wireframe-line-width" ) ).toDouble();
116  mWireframeLineColor = QgsSymbolLayerUtils::decodeColor( elemAdvancedSettings.attribute( QStringLiteral( "wireframe-line-color" ) ) );
117  mLevelOfDetailIndex = elemAdvancedSettings.attribute( QStringLiteral( "level-of-detail" ) ).toInt();
118  mVerticalScale = elemAdvancedSettings.attribute( "vertical-scale" ).toDouble();
119  mVerticalDatasetGroupIndex = elemAdvancedSettings.attribute( "vertical-group-index" ).toInt();
120  mIsVerticalMagnitudeRelative = elemAdvancedSettings.attribute( "vertical-relative" ).toInt();
121  mRenderingStyle = static_cast<QgsMesh3DSymbol::RenderingStyle>( elemAdvancedSettings.attribute( QStringLiteral( "texture-type" ) ).toInt() );
122  mColorRampShader.readXml( elemAdvancedSettings.firstChildElement( "colorrampshader" ), context );
123  mColorRampShader.setMinimumValue( elemAdvancedSettings.attribute( QStringLiteral( "min-color-ramp-shader" ) ).toDouble() );
124  mColorRampShader.setMaximumValue( elemAdvancedSettings.attribute( QStringLiteral( "max-color-ramp-shader" ) ).toDouble() );
125  mSingleColor = QgsSymbolLayerUtils::decodeColor( elemAdvancedSettings.attribute( QStringLiteral( "texture-single-color" ) ) );
126  mArrowsEnabled = elemAdvancedSettings.attribute( QStringLiteral( "arrows-enabled" ) ).toInt();
127  if ( elemAdvancedSettings.hasAttribute( QStringLiteral( "arrows-spacing" ) ) )
128  mArrowsSpacing = elemAdvancedSettings.attribute( QStringLiteral( "arrows-spacing" ) ).toDouble();
129  mArrowsFixedSize = elemAdvancedSettings.attribute( QStringLiteral( "arrows-fixed-size" ) ).toInt();
130  const QDomElement elemDDP = elem.firstChildElement( QStringLiteral( "data-defined-properties" ) );
131  if ( !elemDDP.isNull() )
133 }
134 
136 {
137  return mSmoothedTriangles;
138 }
139 
140 void QgsMesh3DSymbol::setSmoothedTriangles( bool smoothTriangles )
141 {
142  mSmoothedTriangles = smoothTriangles;
143 }
144 
146 {
147  return mWireframeEnabled;
148 }
149 
150 void QgsMesh3DSymbol::setWireframeEnabled( bool wireframeEnabled )
151 {
152  mWireframeEnabled = wireframeEnabled;
153 }
154 
156 {
157  return mWireframeLineWidth;
158 }
159 
160 void QgsMesh3DSymbol::setWireframeLineWidth( double wireframeLineWidth )
161 {
162  mWireframeLineWidth = wireframeLineWidth;
163 }
164 
166 {
167  return mWireframeLineColor;
168 }
169 
170 void QgsMesh3DSymbol::setWireframeLineColor( const QColor &wireframeLineColor )
171 {
172  mWireframeLineColor = wireframeLineColor;
173 }
174 
176 {
177  return mVerticalScale;
178 }
179 
180 void QgsMesh3DSymbol::setVerticalScale( double verticalScale )
181 {
182  mVerticalScale = verticalScale;
183 }
184 
186 {
187  return mColorRampShader;
188 }
189 
191 {
192  mColorRampShader = colorRampShader;
193 }
194 
196 {
197  return mSingleColor;
198 }
199 
200 void QgsMesh3DSymbol::setSingleMeshColor( const QColor &color )
201 {
202  mSingleColor = color;
203 }
204 
206 {
207  return mRenderingStyle;
208 }
209 
211 {
212  mRenderingStyle = coloringType;
213 }
214 
216 {
217  return mVerticalDatasetGroupIndex;
218 }
219 
220 void QgsMesh3DSymbol::setVerticalDatasetGroupIndex( int verticalDatasetGroupIndex )
221 {
222  mVerticalDatasetGroupIndex = verticalDatasetGroupIndex;
223 }
224 
226 {
227  return mIsVerticalMagnitudeRelative;
228 }
229 
230 void QgsMesh3DSymbol::setIsVerticalMagnitudeRelative( bool isVerticalScaleIsRelative )
231 {
232  mIsVerticalMagnitudeRelative = isVerticalScaleIsRelative;
233 }
234 
236 {
237  return mArrowsEnabled;
238 }
239 
240 void QgsMesh3DSymbol::setArrowsEnabled( bool vectorEnabled )
241 {
242  mArrowsEnabled = vectorEnabled;
243 }
244 
246 {
247  return mArrowsSpacing;
248 }
249 
250 void QgsMesh3DSymbol::setArrowsSpacing( double arrowsSpacing )
251 {
252  mArrowsSpacing = arrowsSpacing;
253 }
254 
256 {
257  return mMaximumTextureSize;
258 }
259 
260 void QgsMesh3DSymbol::setMaximumTextureSize( int maximumTextureSize )
261 {
262  mMaximumTextureSize = maximumTextureSize;
263 }
264 
266 {
267  return mArrowsFixedSize;
268 }
269 
270 void QgsMesh3DSymbol::setArrowsFixedSize( bool arrowsFixeSize )
271 {
272  mArrowsFixedSize = arrowsFixeSize;
273 }
274 
276 {
277  return mLevelOfDetailIndex;
278 }
279 
281 {
282  mLevelOfDetailIndex = lod;
283 }
284 
286 {
287  return mEnabled;
288 }
289 
290 void QgsMesh3DSymbol::setEnabled( bool enabled )
291 {
292  mEnabled = enabled;
293 }
294 
295 
297 {
298  return mMaterial.get();
299 }
300 
302 {
303  if ( material == mMaterial.get() )
304  return;
305 
306  mMaterial.reset( material );
307 }
QgsMesh3DSymbol::setArrowsEnabled
void setArrowsEnabled(bool arrowsEnabled)
Sets if arrows are enabled for 3D rendering.
Definition: qgsmesh3dsymbol.cpp:240
QgsSymbolLayerUtils::encodeColor
static QString encodeColor(const QColor &color)
Definition: qgssymbollayerutils.cpp:64
QgsMesh3DSymbol::smoothedTriangles
bool smoothedTriangles() const
Returns if mesh triangle are smoothed.
Definition: qgsmesh3dsymbol.cpp:135
QgsMesh3DSymbol::readXml
void readXml(const QDomElement &elem, const QgsReadWriteContext &context) override
Reads symbol configuration from the given DOM element.
Definition: qgsmesh3dsymbol.cpp:99
QgsMesh3DSymbol::setWireframeLineWidth
void setWireframeLineWidth(double wireframeLineWidth)
Sets wireframe line width.
Definition: qgsmesh3dsymbol.cpp:160
QgsMesh3DSymbol::verticalDatasetGroupIndex
int verticalDatasetGroupIndex() const
Returns the index of the dataset group that will be used to render the vertical component of the 3D m...
Definition: qgsmesh3dsymbol.cpp:215
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:34
qgsmesh3dsymbol.h
qgssymbollayerutils.h
QgsAbstractPropertyCollection::readXml
virtual bool readXml(const QDomElement &collectionElem, const QgsPropertiesDefinition &definitions)
Reads property collection state from an XML element.
Definition: qgspropertycollection.cpp:108
QgsMesh3DSymbol::setEnabled
void setEnabled(bool enabled)
Sets if the 3d rendering is enabled.
Definition: qgsmesh3dsymbol.cpp:290
QgsRasterShaderFunction::maximumValue
double maximumValue() const
Returns the minimum value for the raster shader.
Definition: qgsrastershaderfunction.h:119
QgsMesh3DSymbol::setVerticalDatasetGroupIndex
void setVerticalDatasetGroupIndex(int verticalDatasetGroupIndex)
Sets the index of the dataset group that will be used to render the vertical component of the 3D mesh...
Definition: qgsmesh3dsymbol.cpp:220
QgsMesh3DSymbol::setRenderingStyle
void setRenderingStyle(const QgsMesh3DSymbol::RenderingStyle &textureType)
Sets the rendering style.
Definition: qgsmesh3dsymbol.cpp:210
QgsMesh3DSymbol::arrowsFixedSize
bool arrowsFixedSize() const
Returns if the arrow size is fixed.
Definition: qgsmesh3dsymbol.cpp:265
QgsAbstract3DSymbol::copyBaseSettings
virtual void copyBaseSettings(QgsAbstract3DSymbol *destination) const
Copies base class settings from this object to a destination object.
Definition: qgsabstract3dsymbol.cpp:33
QgsMesh3DSymbol
3D symbol that draws mesh geometry as planar triangles.
Definition: qgsmesh3dsymbol.h:43
QgsMesh3DSymbol::material
QgsAbstractMaterialSettings * material() const
Returns material used for shading of the symbol.
Definition: qgsmesh3dsymbol.cpp:296
QgsSymbolLayerUtils::decodeColor
static QColor decodeColor(const QString &str)
Definition: qgssymbollayerutils.cpp:69
QgsColorRampShader
A ramp shader will color a raster pixel based on a list of values ranges in a ramp.
Definition: qgscolorrampshader.h:42
QgsMesh3DSymbol::isVerticalMagnitudeRelative
bool isVerticalMagnitudeRelative() const
Returns if the vertical component of the mesh is relative to the mesh vertices Z value.
Definition: qgsmesh3dsymbol.cpp:225
QgsMesh3DSymbol::setArrowsSpacing
void setArrowsSpacing(double arrowsSpacing)
Sets the arrow spacing.
Definition: qgsmesh3dsymbol.cpp:250
QgsMesh3DSymbol::setColorRampShader
void setColorRampShader(const QgsColorRampShader &colorRampShader)
Sets the color ramp shader used to render the color.
Definition: qgsmesh3dsymbol.cpp:190
QgsPhongMaterialSettings
Basic shading material used for rendering based on the Phong shading model with three color component...
Definition: qgsphongmaterialsettings.h:44
QgsMesh3DSymbol::setSingleMeshColor
void setSingleMeshColor(const QColor &singleMeshColor)
Sets the single color.
Definition: qgsmesh3dsymbol.cpp:200
QgsMesh3DSymbol::renderingStyle
QgsMesh3DSymbol::RenderingStyle renderingStyle() const
Returns the rendering style.
Definition: qgsmesh3dsymbol.cpp:205
QgsMesh3DSymbol::setWireframeLineColor
void setWireframeLineColor(const QColor &wireframeLineColor)
Sets wireframe line color.
Definition: qgsmesh3dsymbol.cpp:170
QgsMesh3DSymbol::wireframeLineColor
QColor wireframeLineColor() const
Returns wireframe line color.
Definition: qgsmesh3dsymbol.cpp:165
QgsMesh3DSymbol::colorRampShader
QgsColorRampShader colorRampShader() const
Returns the color ramp shader used to render the color.
Definition: qgsmesh3dsymbol.cpp:185
QgsAbstractMaterialSettings
Abstract base class for material settings.
Definition: qgsabstractmaterialsettings.h:114
qgs3dutils.h
QgsColorRampShader::writeXml
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const
Writes configuration to a new DOM element.
Definition: qgscolorrampshader.cpp:563
QgsAbstract3DSymbol::propertyDefinitions
static const QgsPropertiesDefinition & propertyDefinitions()
Returns the symbol layer property definitions.
Definition: qgsabstract3dsymbol.cpp:27
QgsMesh3DSymbol::setVerticalScale
void setVerticalScale(double verticalScale)
Sets mesh vertical scale.
Definition: qgsmesh3dsymbol.cpp:180
QgsRasterShaderFunction::setMaximumValue
virtual void setMaximumValue(double value)
Sets the maximum value for the raster shader.
Definition: qgsrastershaderfunction.cpp:30
QgsMesh3DSymbol::setIsVerticalMagnitudeRelative
void setIsVerticalMagnitudeRelative(bool isVerticalMagnitudeRelative)
Sets if the vertical component of the mesh is relative to the mesh vertices Z value.
Definition: qgsmesh3dsymbol.cpp:230
Qgs3DUtils::altClampingFromString
static Qgis::AltitudeClamping altClampingFromString(const QString &str)
Converts a string to a value from AltitudeClamping enum.
Definition: qgs3dutils.cpp:255
QgsAbstract3DSymbol::mDataDefinedProperties
QgsPropertyCollection mDataDefinedProperties
Definition: qgsabstract3dsymbol.h:107
Qgs3DUtils::altClampingToString
static QString altClampingToString(Qgis::AltitudeClamping altClamp)
Converts a value from AltitudeClamping enum to a string.
Definition: qgs3dutils.cpp:240
QgsRasterShaderFunction::minimumValue
double minimumValue() const
Returns the maximum value for the raster shader.
Definition: qgsrastershaderfunction.h:112
QgsMesh3DSymbol::~QgsMesh3DSymbol
~QgsMesh3DSymbol() override
QgsMesh3DSymbol::clone
QgsMesh3DSymbol * clone() const override SIP_FACTORY
Returns a new instance of the symbol with the same settings.
Definition: qgsmesh3dsymbol.cpp:29
QgsMesh3DSymbol::setArrowsFixedSize
void setArrowsFixedSize(bool arrowsFixedSize)
Sets if the arrow size is fixed.
Definition: qgsmesh3dsymbol.cpp:270
QgsColorRampShader::readXml
void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext())
Reads configuration from the given DOM element.
Definition: qgscolorrampshader.cpp:599
QgsMesh3DSymbol::arrowsEnabled
bool arrowsEnabled() const
Returns if arrows are enabled for 3D rendering.
Definition: qgsmesh3dsymbol.cpp:235
QgsMesh3DSymbol::setMaterial
void setMaterial(QgsAbstractMaterialSettings *material SIP_TRANSFER)
Sets the material settings used for shading of the symbol.
Definition: qgsmesh3dsymbol.cpp:301
QgsMesh3DSymbol::RenderingStyle
RenderingStyle
How to render the color of the mesh.
Definition: qgsmesh3dsymbol.h:52
QgsMesh3DSymbol::setLevelOfDetailIndex
void setLevelOfDetailIndex(int lod)
Returns the index of the level of detail of the mesh that is the position of the simplified mesh that...
Definition: qgsmesh3dsymbol.cpp:280
QgsMesh3DSymbol::setSmoothedTriangles
void setSmoothedTriangles(bool smoothTriangles)
Sets if the mesh triangles have to been smoothed.
Definition: qgsmesh3dsymbol.cpp:140
QgsMesh3DSymbol::setMaximumTextureSize
void setMaximumTextureSize(int maximumTextureSize)
Sets the maximum texture size supported by the hardware Used to store the GL_MAX_TEXTURE_SIZE value t...
Definition: qgsmesh3dsymbol.cpp:260
QgsMesh3DSymbol::wireframeEnabled
bool wireframeEnabled() const
Returns if the mesh wireframe.
Definition: qgsmesh3dsymbol.cpp:145
qgsphongmaterialsettings.h
QgsMesh3DSymbol::verticalScale
double verticalScale() const
Returns mesh vertical scale.
Definition: qgsmesh3dsymbol.cpp:175
QgsMesh3DSymbol::arrowsSpacing
double arrowsSpacing() const
Returns the arrow spacing.
Definition: qgsmesh3dsymbol.cpp:245
QgsMesh3DSymbol::setWireframeEnabled
void setWireframeEnabled(bool wireframeEnabled)
Sets if the mesh wireframe.
Definition: qgsmesh3dsymbol.cpp:150
QgsMesh3DSymbol::isEnabled
bool isEnabled() const
Returns if the 3d rendering is enabled.
Definition: qgsmesh3dsymbol.cpp:285
QgsMesh3DSymbol::QgsMesh3DSymbol
QgsMesh3DSymbol()
Constructor for QgsMesh3DSymbol.
Definition: qgsmesh3dsymbol.cpp:21
QgsMesh3DSymbol::levelOfDetailIndex
int levelOfDetailIndex() const
Returns the index of the level of detail of the mesh that is the position of the simplified mesh that...
Definition: qgsmesh3dsymbol.cpp:275
QgsAbstractPropertyCollection::writeXml
virtual bool writeXml(QDomElement &collectionElem, const QgsPropertiesDefinition &definitions) const
Writes the current state of the property collection into an XML element.
Definition: qgspropertycollection.cpp:99
QgsRasterShaderFunction::setMinimumValue
virtual void setMinimumValue(double value)
Sets the minimum value for the raster shader.
Definition: qgsrastershaderfunction.cpp:38
QgsMesh3DSymbol::wireframeLineWidth
double wireframeLineWidth() const
Returns wireframe line width.
Definition: qgsmesh3dsymbol.cpp:155
QgsMesh3DSymbol::singleMeshColor
QColor singleMeshColor() const
Returns the single color.
Definition: qgsmesh3dsymbol.cpp:195
QgsMesh3DSymbol::maximumTextureSize
int maximumTextureSize() const
Returns the maximum texture size supported by the hardware Used to store the GL_MAX_TEXTURE_SIZE valu...
Definition: qgsmesh3dsymbol.cpp:255
QgsMesh3DSymbol::writeXml
void writeXml(QDomElement &elem, const QgsReadWriteContext &context) const override
Writes symbol configuration to the given DOM element.
Definition: qgsmesh3dsymbol.cpp:58