mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-24 00:47:57 -05:00
* terrain: Use PhongMaterialSettings material for the non texture case There is no functional change. With this change, the terrain uses a material defined by QGIS instead of a default Qt3D. This will make it easier to customize the shader in the future. * qgsphongmaterialsettings: Fix setShininess signature `mShininess` is a double. * qgsphongtexturedmaterialsettings: Use a double to store shininess This is already waht QgsPhongTexturedMaterialSettings does. The reason for this change is to avoid the user-set values changing for them when saving/restoring projects. * qgsphongtexturedmaterialsettings: Use a double to store opacity This is already waht QgsPhongTexturedMaterialSettings does. The reason for this change is to avoid the user-set values changing for them when saving/restoring projects. * qgsphongtexturedmaterialsettings: Do proper opacity cast in toMaterial * qgsphongtexturedmaterialsettings: Factor out material creation This introduces a new class `QgsPhongTexturedMaterial` which is similar to Qt3D `QDiffuseSpecularMaterial`. `QgsPhongTexturedMaterial::toMaterial()` now calls `QgsPhongTexturedMaterial` to create the material. This has no functional change. This will make it possible to directly use `QgsPhongTexturedMaterial` for the terrain in the next commit. Indeed, the texture case needs to use a `QTexture2D` which cannot be stored in a settings class. This issue is avoided by directly creating the material instead of using `QgsPhongTexturedMaterial::toMaterial()`. * qgsterraintileloader: Fix typo * terrain: Use QgsPhongTexturedMaterial for shading texture There is no functional change. With this change, the terrain uses a material defined by QGIS instead of a default Qt3D. This will make it easier to customize the shader in the future. * 3d/material: Introduce QgsTextureMaterial This is the same material as the qt3d one: `Qt3DExtras::QTextureMaterial`. It will also be used in the following commit by the terrain. * terrain: Use QgsTextureMaterial for non shading texture There is no functional change. With this change, the terrain uses a material defined by QGIS instead of a default Qt3D. This will make it easier to customize the shader in the future.
154 lines
4.0 KiB
Plaintext
154 lines
4.0 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/3d/materials/qgsphongtexturedmaterialsettings.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
class QgsPhongTexturedMaterialSettings : QgsAbstractMaterialSettings
|
|
{
|
|
%Docstring(signature="appended")
|
|
A phong shading model with diffuse texture map.
|
|
|
|
.. warning::
|
|
|
|
This is not considered stable API, and may change in future QGIS releases. It is
|
|
exposed to the Python bindings as a tech preview only.
|
|
|
|
.. versionadded:: 3.16
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsphongtexturedmaterialsettings.h"
|
|
%End
|
|
public:
|
|
|
|
QgsPhongTexturedMaterialSettings();
|
|
|
|
virtual QString type() const;
|
|
|
|
|
|
static bool supportsTechnique( QgsMaterialSettingsRenderingTechnique technique );
|
|
%Docstring
|
|
Returns ``True`` if the specified ``technique`` is supported by the Phong material.
|
|
%End
|
|
|
|
static QgsAbstractMaterialSettings *create() /Factory/;
|
|
%Docstring
|
|
Returns a new instance of QgsPhongTexturedMaterialSettings.
|
|
%End
|
|
|
|
virtual QgsPhongTexturedMaterialSettings *clone() const /Factory/;
|
|
|
|
|
|
QColor ambient() const;
|
|
%Docstring
|
|
Returns ambient color component
|
|
%End
|
|
QColor specular() const;
|
|
%Docstring
|
|
Returns specular color component
|
|
%End
|
|
double shininess() const;
|
|
%Docstring
|
|
Returns shininess of the surface
|
|
%End
|
|
|
|
virtual QMap<QString, QString> toExportParameters() const;
|
|
|
|
|
|
QString diffuseTexturePath() const;
|
|
%Docstring
|
|
Returns the diffuse texture path.
|
|
|
|
.. seealso:: :py:func:`setDiffuseTexturePath`
|
|
%End
|
|
|
|
float textureScale() const;
|
|
%Docstring
|
|
Returns the texture scale
|
|
The texture scale changes the size of the displayed texture in the 3D scene
|
|
If the texture scale is less than 1 the texture will be stretched
|
|
%End
|
|
|
|
bool requiresTextureCoordinates() const;
|
|
%Docstring
|
|
Returns ``True`` if the material requires texture coordinates to be generated
|
|
during triangulation.quiresTextureCoordinates
|
|
%End
|
|
|
|
float textureRotation() const;
|
|
%Docstring
|
|
Returns the texture rotation, in degrees.
|
|
%End
|
|
|
|
double opacity() const;
|
|
%Docstring
|
|
Returns the opacity of the surface
|
|
|
|
.. versionadded:: 3.28
|
|
%End
|
|
|
|
void setAmbient( const QColor &ambient );
|
|
%Docstring
|
|
Sets ambient color component
|
|
%End
|
|
|
|
void setSpecular( const QColor &specular );
|
|
%Docstring
|
|
Sets specular color component
|
|
%End
|
|
void setShininess( double shininess );
|
|
%Docstring
|
|
Sets shininess of the surface
|
|
%End
|
|
|
|
void setDiffuseTexturePath( const QString &path );
|
|
%Docstring
|
|
Sets the ``path`` of the diffuse texture.
|
|
|
|
.. seealso:: :py:func:`diffuseTexturePath`
|
|
%End
|
|
|
|
void setTextureScale( float scale );
|
|
%Docstring
|
|
Sets the texture scale
|
|
The texture scale changes the size of the displayed texture in the 3D scene
|
|
If the texture scale is less than 1 the texture will be stretched
|
|
%End
|
|
|
|
void setTextureRotation( float rotation );
|
|
%Docstring
|
|
Sets the texture rotation in degrees
|
|
%End
|
|
|
|
void setOpacity( float opacity );
|
|
%Docstring
|
|
Sets opacity of the surface.
|
|
|
|
.. versionadded:: 3.28
|
|
%End
|
|
|
|
virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context );
|
|
|
|
virtual void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const;
|
|
|
|
|
|
bool operator==( const QgsPhongTexturedMaterialSettings &other ) const;
|
|
|
|
};
|
|
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/3d/materials/qgsphongtexturedmaterialsettings.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.py again *
|
|
************************************************************************/
|