16#ifndef QGSPHONGTEXTUREDMATERIALSETTINGS_H
17#define QGSPHONGTEXTUREDMATERIALSETTINGS_H
42 QString
type()
const override;
57 QColor ambient()
const {
return mAmbient; }
88 float textureRotation()
const;
94 double opacity()
const {
return mOpacity; }
97 void setAmbient(
const QColor &ambient ) { mAmbient = ambient; }
100 void setSpecular(
const QColor &specular ) { mSpecular = specular; }
136 return mAmbient == other.mAmbient &&
137 mSpecular == other.mSpecular &&
138 mShininess == other.mShininess &&
139 mOpacity == other.mOpacity &&
140 mDiffuseTexturePath == other.mDiffuseTexturePath &&
141 mTextureScale == other.mTextureScale &&
142 mTextureRotation == other.mTextureRotation;
146 QColor mAmbient{ QColor::fromRgbF( 0.1f, 0.1f, 0.1f, 1.0f ) };
147 QColor mSpecular{ QColor::fromRgbF( 1.0f, 1.0f, 1.0f, 1.0f ) };
148 double mShininess = 0.0;
149 double mOpacity = 1.0;
150 QString mDiffuseTexturePath;
151 float mTextureScale{ 1.0f };
152 float mTextureRotation{ 0.0f };
virtual void writeXml(QDomElement &element, const QgsReadWriteContext &) const
Writes settings to a DOM element.
virtual QMap< QString, QString > toExportParameters() const =0
Returns the parameters to be exported to .mtl file.
virtual void readXml(const QDomElement &element, const QgsReadWriteContext &)
Reads settings from a DOM element.
virtual void addParametersToEffect(Qt3DRender::QEffect *effect, const QgsMaterialContext &materialContext) const =0
Adds parameters from the material to a destination effect.
virtual QString type() const =0
Returns the unique type name for the material.
virtual QgsMaterial * toMaterial(QgsMaterialSettingsRenderingTechnique technique, const QgsMaterialContext &context) const =0
Creates a new QgsMaterial object representing the material settings.
void setShininess(double shininess)
Sets shininess of the surface.
QgsPhongTexturedMaterialSettings()=default
bool requiresTextureCoordinates() const
Returns true if the material requires texture coordinates to be generated during triangulation....
void setTextureScale(float scale)
Sets the texture scale The texture scale changes the size of the displayed texture in the 3D scene If...
void setSpecular(const QColor &specular)
Sets specular color component.
float textureScale() const
Returns the texture scale The texture scale changes the size of the displayed texture in the 3D scene...
void setDiffuseTexturePath(const QString &path)
Sets the path of the diffuse texture.
QString diffuseTexturePath() const
Returns the diffuse texture path.
QColor specular() const
Returns specular color component.
void setAmbient(const QColor &ambient)
Sets ambient color component.
void setOpacity(float opacity)
Sets opacity of the surface.
double shininess() const
Returns shininess of the surface.
double opacity() const
Returns the opacity of the surface.
void setTextureRotation(float rotation)
Sets the texture rotation in degrees.
bool operator==(const QgsPhongTexturedMaterialSettings &other) const
The class is used as a container of context for various read/write operations on other objects.
QgsMaterialSettingsRenderingTechnique
Material rendering techniques 3.