QGIS API Documentation 4.1.0-Master (3b8ef1f72a3)
Loading...
Searching...
No Matches
QgsPhongMaterial3DHandler Class Reference

3D handler for the Phong shading material. More...

#include <qgsphongmaterial3dhandler.h>

Inheritance diagram for QgsPhongMaterial3DHandler:

Public Member Functions

 QgsPhongMaterial3DHandler ()=default
void addParametersToEffect (Qt3DRender::QEffect *effect, const QgsAbstractMaterialSettings *settings, const QgsMaterialContext &materialContext) const override
 Adds parameters from the material settings to a destination effect.
void applyDataDefinedToGeometry (const QgsAbstractMaterialSettings *settings, Qt3DCore::QGeometry *geometry, int vertexCount, const QByteArray &data) const override
 Applies the data defined bytes, dataDefinedBytes, on the geometry by filling a specific vertex buffer that will be used by the shader.
int dataDefinedByteStride (const QgsAbstractMaterialSettings *settings) const override
 Returns byte stride of the data defined colors,used to fill the vertex colors data defined buffer for rendering.
QByteArray dataDefinedVertexColorsAsByte (const QgsAbstractMaterialSettings *settings, const QgsExpressionContext &expressionContext) const override
 Returns byte array corresponding to the data defined colors depending of the expressionContext, used to fill the specific vertex buffer used for rendering the geometry.
QMap< QString, QString > toExportParameters (const QgsAbstractMaterialSettings *settings) const override
 Returns the parameters to be exported to .mtl file.
QgsMaterialtoMaterial (const QgsAbstractMaterialSettings *settings, Qgis::MaterialRenderingTechnique technique, const QgsMaterialContext &context) const override
 Creates a new QgsMaterial object representing the material settings.
bool updatePreviewScene (Qt3DCore::QEntity *sceneRoot, const QgsAbstractMaterialSettings *settings, const QgsMaterialContext &context) const override
 Updates an existing material preview scene with new material settings.
Public Member Functions inherited from QgsAbstractMaterial3DHandler
virtual ~QgsAbstractMaterial3DHandler ()=default
virtual Qt3DCore::QEntity * createPreviewMesh (const QString &type, Qt3DCore::QEntity *parent) const
 Creates a new entity representing a suitable preview mesh for this material type.
virtual Qt3DCore::QEntity * createPreviewScene (const QgsAbstractMaterialSettings *settings, const QString &type, const QgsMaterialContext &context, Qt3DExtras::Qt3DWindow *window, Qt3DCore::QEntity *parent) const
 Builds a complete self-contained scene for previewing the material, using the specified mesh type.
virtual QList< PreviewMeshTypepreviewMeshTypes () const
 Returns a list of available preview mesh types for the material.

Additional Inherited Members

Static Protected Member Functions inherited from QgsAbstractMaterial3DHandler
static Qt3DRender::QParameter * findParameter (Qt3DRender::QEffect *effect, const QString &name)
 Finds an existing parameter in an effect by name.

Detailed Description

3D handler for the Phong shading material.

Warning
Not available in Python bindings
Since
QGIS 4.2

Definition at line 33 of file qgsphongmaterial3dhandler.h.

Constructor & Destructor Documentation

◆ QgsPhongMaterial3DHandler()

QgsPhongMaterial3DHandler::QgsPhongMaterial3DHandler ( )
default

Member Function Documentation

◆ addParametersToEffect()

void QgsPhongMaterial3DHandler::addParametersToEffect ( Qt3DRender::QEffect * effect,
const QgsAbstractMaterialSettings * settings,
const QgsMaterialContext & materialContext ) const
overridevirtual

Adds parameters from the material settings to a destination effect.

Implements QgsAbstractMaterial3DHandler.

Definition at line 74 of file qgsphongmaterial3dhandler.cpp.

◆ applyDataDefinedToGeometry()

void QgsPhongMaterial3DHandler::applyDataDefinedToGeometry ( const QgsAbstractMaterialSettings * settings,
Qt3DCore::QGeometry * geometry,
int vertexCount,
const QByteArray & dataDefinedBytes ) const
overridevirtual

Applies the data defined bytes, dataDefinedBytes, on the geometry by filling a specific vertex buffer that will be used by the shader.

Reimplemented from QgsAbstractMaterial3DHandler.

Definition at line 175 of file qgsphongmaterial3dhandler.cpp.

◆ dataDefinedByteStride()

int QgsPhongMaterial3DHandler::dataDefinedByteStride ( const QgsAbstractMaterialSettings * settings) const
overridevirtual

Returns byte stride of the data defined colors,used to fill the vertex colors data defined buffer for rendering.

Since
QGIS 3.18

Reimplemented from QgsAbstractMaterial3DHandler.

Definition at line 170 of file qgsphongmaterial3dhandler.cpp.

◆ dataDefinedVertexColorsAsByte()

QByteArray QgsPhongMaterial3DHandler::dataDefinedVertexColorsAsByte ( const QgsAbstractMaterialSettings * settings,
const QgsExpressionContext & expressionContext ) const
overridevirtual

Returns byte array corresponding to the data defined colors depending of the expressionContext, used to fill the specific vertex buffer used for rendering the geometry.

See also
applyDataDefinedToGeometry()
Since
QGIS 3.18

Reimplemented from QgsAbstractMaterial3DHandler.

Definition at line 116 of file qgsphongmaterial3dhandler.cpp.

◆ toExportParameters()

QMap< QString, QString > QgsPhongMaterial3DHandler::toExportParameters ( const QgsAbstractMaterialSettings * settings) const
overridevirtual

Returns the parameters to be exported to .mtl file.

Implements QgsAbstractMaterial3DHandler.

Definition at line 61 of file qgsphongmaterial3dhandler.cpp.

◆ toMaterial()

QgsMaterial * QgsPhongMaterial3DHandler::toMaterial ( const QgsAbstractMaterialSettings * settings,
Qgis::MaterialRenderingTechnique technique,
const QgsMaterialContext & context ) const
overridevirtual

Creates a new QgsMaterial object representing the material settings.

The technique argument specifies the rendering technique which will be used with the returned material.

Implements QgsAbstractMaterial3DHandler.

Definition at line 35 of file qgsphongmaterial3dhandler.cpp.

◆ updatePreviewScene()

bool QgsPhongMaterial3DHandler::updatePreviewScene ( Qt3DCore::QEntity * sceneRoot,
const QgsAbstractMaterialSettings * settings,
const QgsMaterialContext & context ) const
overridevirtual

Updates an existing material preview scene with new material settings.

This method is called on every material setting parameter change while configuring materials, so the implementation must be cheap (e.g. involve no entity creation, just direct manipulation of existing attributes).

Returns false if the scene could not be updated in place and needs to be regenered via createPreviewScene().

Implements QgsAbstractMaterial3DHandler.

Definition at line 222 of file qgsphongmaterial3dhandler.cpp.


The documentation for this class was generated from the following files: