Add Python bindings for tiled scene 3D renderer

This commit is contained in:
Martin Dobias 2023-08-14 15:12:20 +02:00 committed by Nyall Dawson
parent 0620c80d13
commit 9eb35537e7
3 changed files with 124 additions and 4 deletions

View File

@ -9,6 +9,7 @@
%Include auto_generated/qgscamerapose.sip
%Include auto_generated/qgslayoutitem3dmap.sip
%Include auto_generated/qgsrulebased3drenderer.sip
%Include auto_generated/qgstiledscenelayer3drenderer.sip
%Include auto_generated/qgsvectorlayer3drenderer.sip
%Include auto_generated/qgspointcloudlayer3drenderer.sip
%Include auto_generated/lights/qgsdirectionallightsettings.sip

View File

@ -0,0 +1,113 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/3d/qgstiledscenelayer3drenderer.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsTiledSceneLayer3DRendererMetadata : Qgs3DRendererAbstractMetadata
{
%Docstring(signature="appended")
Metadata for tiled scene layer 3D renderer to allow creation of its instances from XML
.. note::
Not available in Python bindings
.. versionadded:: 3.34
%End
%TypeHeaderCode
#include "qgstiledscenelayer3drenderer.h"
%End
public:
QgsTiledSceneLayer3DRendererMetadata();
virtual QgsAbstract3DRenderer *createRenderer( QDomElement &elem, const QgsReadWriteContext &context ) /Factory/;
%Docstring
Creates an instance of a 3D renderer based on a DOM element with renderer configuration
%End
};
class QgsTiledSceneLayer3DRenderer : QgsAbstract3DRenderer
{
%Docstring(signature="appended")
3D renderer that renders content of a tiled scene layer
.. versionadded:: 3.34
%End
%TypeHeaderCode
#include "qgstiledscenelayer3drenderer.h"
%End
public:
QgsTiledSceneLayer3DRenderer();
void setLayer( QgsTiledSceneLayer *layer );
%Docstring
Sets tiled scene layer associated with the renderer
%End
QgsTiledSceneLayer *layer() const;
%Docstring
Returns tiled scene layer associated with the renderer
%End
double maximumScreenError() const;
%Docstring
Returns the maximum screen error allowed when rendering the tiled scene.
Larger values result in a faster render with less content rendered.
.. seealso:: :py:func:`setMaximumScreenError`
%End
void setMaximumScreenError( double error );
%Docstring
Sets the maximum screen ``error`` allowed when rendering the tiled scene.
Larger values result in a faster render with less content rendered.
.. seealso:: :py:func:`maximumScreenError`
%End
bool showBoundingBoxes() const;
%Docstring
Returns whether bounding boxes will be visible when rendering the tiled scene.
.. seealso:: :py:func:`setShowBoundingBoxes`
%End
void setShowBoundingBoxes( bool showBoundingBoxes );
%Docstring
Sets whether bounding boxes will be visible when rendering the tiled scene.
.. seealso:: :py:func:`showBoundingBoxes`
%End
virtual QString type() const;
virtual QgsAbstract3DRenderer *clone() const /Factory/;
virtual void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const;
virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context );
virtual void resolveReferences( const QgsProject &project );
private:
QgsTiledSceneLayer3DRenderer( const QgsTiledSceneLayer3DRenderer & );
QgsTiledSceneLayer3DRenderer &operator=( const QgsTiledSceneLayer3DRenderer & );
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/3d/qgstiledscenelayer3drenderer.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/

View File

@ -17,6 +17,7 @@
#define QGSTILEDSCENELAYER3DRENDERER_H
#include "qgis_3d.h"
#include "qgis_sip.h"
#include "qgs3drendererregistry.h"
#include "qgsabstract3drenderer.h"
@ -24,7 +25,6 @@
class QgsTiledSceneLayer;
#define SIP_NO_FILE
/**
@ -35,7 +35,7 @@ class QgsTiledSceneLayer;
*
* \since QGIS 3.34
*/
class _3D_EXPORT QgsTiledSceneLayer3DRendererMetadata : public Qgs3DRendererAbstractMetadata SIP_SKIP
class _3D_EXPORT QgsTiledSceneLayer3DRendererMetadata : public Qgs3DRendererAbstractMetadata
{
public:
QgsTiledSceneLayer3DRendererMetadata();
@ -94,8 +94,8 @@ class _3D_EXPORT QgsTiledSceneLayer3DRenderer : public QgsAbstract3DRenderer
void setShowBoundingBoxes( bool showBoundingBoxes );
virtual QString type() const override { return "tiledscene"; }
virtual QgsAbstract3DRenderer *clone() const override;
virtual Qt3DCore::QEntity *createEntity( const Qgs3DMapSettings &map ) const override;
virtual QgsAbstract3DRenderer *clone() const override SIP_FACTORY;
virtual Qt3DCore::QEntity *createEntity( const Qgs3DMapSettings &map ) const override SIP_SKIP;
virtual void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
virtual void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
virtual void resolveReferences( const QgsProject &project ) override;
@ -104,6 +104,12 @@ class _3D_EXPORT QgsTiledSceneLayer3DRenderer : public QgsAbstract3DRenderer
QgsMapLayerRef mLayerRef; //!< Layer used to extract mesh data from
double mMaximumScreenError = 50.0;
bool mShowBoundingBoxes = true;
private:
#ifdef SIP_RUN
QgsTiledSceneLayer3DRenderer( const QgsTiledSceneLayer3DRenderer & );
QgsTiledSceneLayer3DRenderer &operator=( const QgsTiledSceneLayer3DRenderer & );
#endif
};
#endif