QGIS/python/3d/auto_generated/materials/qgsphongtexturedmaterialsettings.sip.in
Jean Felder 8dab246707
[3D] Use QGIS material for the terrain (#58134)
* 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.
2024-08-19 23:01:06 +02:00

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 *
************************************************************************/