QGIS API Documentation 4.1.0-Master (64dc32379c2)
Loading...
Searching...
No Matches
qgsmetalroughtexturedmaterialsettings.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmetalroughtexturedmaterialsettings.h
3 --------------------------------------
4 Date : April 2026
5 Copyright : (C) 2026 by Nyall Dawson
6 Email : nyall dot dawson 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#ifndef QGSMETALROUGHTEXTUREDMATERIALSETTINGS_H
17#define QGSMETALROUGHTEXTUREDMATERIALSETTINGS_H
18
19#include "qgis_core.h"
21
22#include <QColor>
23
24class QDomElement;
25
36{
37 public:
39
40 QString type() const override;
41
46
51
53 bool equals( const QgsAbstractMaterialSettings *other ) const override;
54
60 QString baseColorTexturePath() const { return mBaseColorTexturePath; }
61
67 QString metalnessTexturePath() const { return mMetalnessTexturePath; }
68
74 QString roughnessTexturePath() const { return mRoughnessTexturePath; }
75
81 QString normalTexturePath() const { return mNormalTexturePath; }
82
88 QString heightTexturePath() const { return mHeightTexturePath; }
89
96 double parallaxScale() const { return mParallaxScale; }
97
104 QString emissionTexturePath() const { return mEmissionTexturePath; }
105
115 double emissionFactor() const { return mEmissionFactor; }
116
122 QString ambientOcclusionTexturePath() const { return mAmbientOcclusionTexturePath; }
123
132 double textureScale() const { return mTextureScale; }
133
139 double textureRotation() const { return mTextureRotation; }
140
147 double opacity() const { return mOpacity; }
148
154 void setBaseColorTexturePath( const QString &path ) { mBaseColorTexturePath = path; }
155
161 void setMetalnessTexturePath( const QString &path ) { mMetalnessTexturePath = path; }
162
168 void setRoughnessTexturePath( const QString &path ) { mRoughnessTexturePath = path; }
169
175 void setNormalTexturePath( const QString &path ) { mNormalTexturePath = path; }
176
182 void setHeightTexturePath( const QString &path ) { mHeightTexturePath = path; }
183
190 void setParallaxScale( double scale ) { mParallaxScale = scale; }
191
197 void setAmbientOcclusionTexturePath( const QString &path ) { mAmbientOcclusionTexturePath = path; }
198
205 void setEmissionTexturePath( const QString &path ) { mEmissionTexturePath = path; }
206
216 void setEmissionFactor( double factor ) { mEmissionFactor = factor; }
217
226 void setTextureScale( double scale ) { mTextureScale = scale; }
227
233 void setTextureRotation( double rotation ) { mTextureRotation = rotation; }
234
241 void setOpacity( double opacity ) { mOpacity = opacity; }
242
243 bool requiresTextureCoordinates() const override;
244 bool requiresTangents() const override;
245 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
246 void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
247
249 {
250 return mBaseColorTexturePath == other.mBaseColorTexturePath
251 && mMetalnessTexturePath == other.mMetalnessTexturePath
252 && mRoughnessTexturePath == other.mRoughnessTexturePath
253 && mNormalTexturePath == other.mNormalTexturePath
254 && mAmbientOcclusionTexturePath == other.mAmbientOcclusionTexturePath
255 && mHeightTexturePath == other.mHeightTexturePath
256 && mEmissionTexturePath == other.mEmissionTexturePath
257 && qgsDoubleNear( mTextureScale, other.mTextureScale )
258 && qgsDoubleNear( mTextureRotation, other.mTextureRotation )
259 && qgsDoubleNear( mEmissionFactor, other.mEmissionFactor )
260 && qgsDoubleNear( mParallaxScale, other.mParallaxScale )
261 && qgsDoubleNear( mOpacity, other.mOpacity )
263 }
264
265 private:
266 QString mBaseColorTexturePath;
267 QString mMetalnessTexturePath;
268 QString mRoughnessTexturePath;
269 QString mNormalTexturePath;
270 QString mHeightTexturePath;
271 double mParallaxScale { 0.1 };
272
273 QString mAmbientOcclusionTexturePath;
274
275 QString mEmissionTexturePath;
276 double mEmissionFactor { 1.0 };
277
278 double mTextureScale { 1.0 };
279 double mTextureRotation { 0.0 };
280 double mOpacity { 1.0 };
281};
282
283
284#endif // QGSMETALROUGHTEXTUREDMATERIALSETTINGS_H
MaterialRenderingTechnique
Material rendering techniques.
Definition qgis.h:4342
Abstract base class for material settings.
virtual void writeXml(QDomElement &element, const QgsReadWriteContext &) const
Writes settings to a DOM element.
virtual void readXml(const QDomElement &element, const QgsReadWriteContext &)
Reads settings from a DOM element.
virtual bool requiresTangents() const
Returns true if the material requires tangents generated during triangulation.
virtual QString type() const =0
Returns the unique type name for the material.
QgsPropertyCollection dataDefinedProperties() const
Returns the symbol material property collection, used for data defined overrides.
virtual bool requiresTextureCoordinates() const
Returns true if the material requires texture coordinates to be generated during triangulation.
double emissionFactor() const
Returns the emission factor, which dictates the strength of the emission effect.
void setTextureScale(double scale)
Sets the texture scale.
QgsMetalRoughTexturedMaterialSettings * clone() const override
Clones the material settings.
static QgsAbstractMaterialSettings * create()
Returns a new instance of QgsMetalRoughTexturedMaterialSettings.
QString roughnessTexturePath() const
Returns the path to the roughness texture map.
double textureRotation() const
Returns the texture rotation, in degrees.
double textureScale() const
Returns the texture scale.
double opacity() const
Returns the opacity of the surface.
void setTextureRotation(double rotation)
Sets the texture rotation, in degrees.
void setMetalnessTexturePath(const QString &path)
Sets the path to the metalness texture map.
void setEmissionTexturePath(const QString &path)
Sets the path to the emission/luminosity texture map.
QString normalTexturePath() const
Returns the path to the normal texture map.
QString ambientOcclusionTexturePath() const
Returns the path to the ambient occlusion texture map.
void setHeightTexturePath(const QString &path)
Sets the path to the height texture map.
void setAmbientOcclusionTexturePath(const QString &path)
Sets the path to the ambient occlusion texture map.
QString metalnessTexturePath() const
Returns the path to the metalness texture map.
void setNormalTexturePath(const QString &path)
Sets the path to the normal texture map.
bool equals(const QgsAbstractMaterialSettings *other) const override
Returns true if this settings exactly matches an other settings.
QString baseColorTexturePath() const
Returns the path to the base color texture map.
void setEmissionFactor(double factor)
Sets the emission factor, which dictates the strength of the emission effect.
static bool supportsTechnique(Qgis::MaterialRenderingTechnique technique)
Returns true if the specified technique is supported by the metal rough material.
QString heightTexturePath() const
Returns the path to the height texture map.
QString emissionTexturePath() const
Returns the path to the emission/luminosity texture map.
void setBaseColorTexturePath(const QString &path)
Sets the path to the base color texture map.
void setOpacity(double opacity)
Sets the opacity of the surface.
bool operator==(const QgsMetalRoughTexturedMaterialSettings &other) const
void setRoughnessTexturePath(const QString &path)
Sets the path to the roughness texture map.
void setParallaxScale(double scale)
Sets the parallax scale, which dictates the strength of the height displacement effect.
double parallaxScale() const
Returns the parallax scale, which dictates the strength of the height displacement effect.
A container for the context for various read/write operations on objects.
bool qgsDoubleNear(double a, double b, double epsilon=4 *std::numeric_limits< double >::epsilon())
Compare two doubles (but allow some difference).
Definition qgis.h:7148
#define SIP_FACTORY
Definition qgis_sip.h:83