mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			275 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			275 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/3d/qgs3dmapscene.h                                               *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
class Qgs3DMapScene : QObject
 | 
						|
{
 | 
						|
%Docstring(signature="appended")
 | 
						|
Entity that encapsulates our 3D scene - contains all other entities (such as terrain) as children.
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgs3dmapscene.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    QgsCameraController *cameraController() const;
 | 
						|
%Docstring
 | 
						|
Returns camera controller
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
    void viewZoomFull();
 | 
						|
%Docstring
 | 
						|
Resets camera view to show the whole scene (top view)
 | 
						|
%End
 | 
						|
 | 
						|
    void setViewFrom2DExtent( const QgsRectangle &extent );
 | 
						|
%Docstring
 | 
						|
Resets camera view to show the extent ``extent`` (top view)
 | 
						|
 | 
						|
.. versionadded:: 3.26
 | 
						|
%End
 | 
						|
 | 
						|
    QVector<QgsPointXY> viewFrustum2DExtent() const;
 | 
						|
%Docstring
 | 
						|
Calculates the 2D extent viewed by the 3D camera as the vertices of the viewed trapezoid
 | 
						|
 | 
						|
.. versionadded:: 3.26
 | 
						|
%End
 | 
						|
 | 
						|
    int terrainPendingJobsCount() const;
 | 
						|
%Docstring
 | 
						|
Returns number of pending jobs of the terrain entity
 | 
						|
%End
 | 
						|
 | 
						|
    int totalPendingJobsCount() const;
 | 
						|
%Docstring
 | 
						|
Returns number of pending jobs for all chunked entities
 | 
						|
 | 
						|
.. versionadded:: 3.12
 | 
						|
%End
 | 
						|
 | 
						|
    enum SceneState /BaseType=IntEnum/
 | 
						|
    {
 | 
						|
      Ready,
 | 
						|
      Updating,
 | 
						|
    };
 | 
						|
 | 
						|
    SceneState sceneState() const;
 | 
						|
%Docstring
 | 
						|
Returns the current state of the scene
 | 
						|
%End
 | 
						|
 | 
						|
    float worldSpaceError( float epsilon, float distance ) const;
 | 
						|
%Docstring
 | 
						|
Given screen error (in pixels) and distance from camera (in 3D world coordinates), this function
 | 
						|
estimates the error in world space. Takes into account camera's field of view and the screen (3D view) size.
 | 
						|
%End
 | 
						|
 | 
						|
    bool exportScene( const Qgs3DMapExportSettings &exportSettings );
 | 
						|
%Docstring
 | 
						|
Exports the scene according to the scene export settings
 | 
						|
Returns ``False`` if the operation failed
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    QgsRectangle sceneExtent() const;
 | 
						|
%Docstring
 | 
						|
Returns the scene extent in the map's CRS
 | 
						|
 | 
						|
.. versionadded:: 3.20
 | 
						|
%End
 | 
						|
 | 
						|
    QgsDoubleRange elevationRange( bool ignoreTerrain = false ) const;
 | 
						|
%Docstring
 | 
						|
Returns the scene's elevation range
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   Only some layer types are considered by this method (e.g. terrain, point cloud and mesh layers)
 | 
						|
 | 
						|
:param ignoreTerrain: indicates whether the calculation will ignore terrain
 | 
						|
 | 
						|
.. versionadded:: 3.30
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    Qgs3DMapSettings *mapSettings() const;
 | 
						|
%Docstring
 | 
						|
Returns the 3D map settings.
 | 
						|
 | 
						|
.. versionadded:: 3.30
 | 
						|
%End
 | 
						|
 | 
						|
    bool hasSceneUpdatesEnabled() const;
 | 
						|
%Docstring
 | 
						|
Returns whether updates of the 3D scene's entities are allowed.
 | 
						|
Normally, scene updates are enabled. But for debugging purposes,
 | 
						|
it may be useful to temporarily disable scene updates.
 | 
						|
 | 
						|
.. versionadded:: 3.40
 | 
						|
%End
 | 
						|
 | 
						|
    void setSceneUpdatesEnabled( bool enabled );
 | 
						|
%Docstring
 | 
						|
Sets whether updates of the 3D scene's entities are allowed.
 | 
						|
Normally, scene updates are enabled. But for debugging purposes,
 | 
						|
it may be useful to temporarily disable scene updates.
 | 
						|
 | 
						|
.. versionadded:: 3.40
 | 
						|
%End
 | 
						|
 | 
						|
    bool hasSceneOriginShiftEnabled() const;
 | 
						|
%Docstring
 | 
						|
Returns whether the 3D scene is allowed to automatically move the scene's
 | 
						|
origin. This is necessary in large scenes (e.g. more than 50km across)
 | 
						|
to avoid issues with numerical precision (due to the use of 32-bit floats
 | 
						|
in rendering), that may cause jitter in camera position or object location.
 | 
						|
When 3D scene moves the origin (because the camera is far from it), user
 | 
						|
should not see any change - transforms of 3D entities should be updated
 | 
						|
accordingly.
 | 
						|
 | 
						|
Normally, origin shifts are enabled. But for debugging purposes,
 | 
						|
it may be useful to temporarily disable origin shifts.
 | 
						|
 | 
						|
.. versionadded:: 3.44
 | 
						|
%End
 | 
						|
 | 
						|
    void setSceneOriginShiftEnabled( bool enabled );
 | 
						|
%Docstring
 | 
						|
Returns whether the 3D scene is allowed to automatically move the scene's
 | 
						|
origin. See :py:func:`~Qgs3DMapScene.hasSceneOriginShiftEnabled` for more details.
 | 
						|
 | 
						|
Normally, origin shifts are enabled. But for debugging purposes,
 | 
						|
it may be useful to temporarily disable origin shifts.
 | 
						|
 | 
						|
.. versionadded:: 3.44
 | 
						|
%End
 | 
						|
 | 
						|
 static QMap<QString, Qgs3DMapScene *> openScenes() /Deprecated="Since 3.36. Use QgisAppInterface.mapCanvases3D() instead."/;
 | 
						|
%Docstring
 | 
						|
Returns a map of 3D map scenes (by name) open in the QGIS application.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   Only available from the QGIS desktop application.
 | 
						|
 | 
						|
.. deprecated:: 3.36
 | 
						|
 | 
						|
   Use QgisAppInterface.mapCanvases3D() instead.
 | 
						|
.. versionadded:: 3.30
 | 
						|
%End
 | 
						|
 | 
						|
    void enableClipping( const QList<QVector4D> &clipPlaneEquations );
 | 
						|
%Docstring
 | 
						|
Enables OpenGL clipping based on the planes equations defined in ``clipPlaneEquations``.
 | 
						|
The number of planes is equal to the size of ``clipPlaneEquations``.
 | 
						|
A plane equation contains 4 elements.
 | 
						|
A simple way to define a clip plane equation is to define a normalized normal to
 | 
						|
the plane and its distance from the origin of the scene.
 | 
						|
In that case, the first 3 elements are the coordinates of the normal of the plane as ``(X, Y, Z)``.
 | 
						|
They need to be normalized.
 | 
						|
The last element is the distance of the plane from the origin of the scene.
 | 
						|
In mathematical terms, a 3d plane can be defined with the equation ``ax+by+cz+d=0``
 | 
						|
The normal is ``(a, b, c)`` with ``|a, b, c| = 1``
 | 
						|
The distance is ``-d``.
 | 
						|
 | 
						|
The number of available clip planes depends on the OpenGL implementation. It should at least handle
 | 
						|
6 additional clip planes. When the map scene is created, this number is retrieved.
 | 
						|
If ``clipPlaneEquations`` contains more than this maximum, only the first ones will be kept.
 | 
						|
 | 
						|
.. seealso:: :py:func:`disableClipping`
 | 
						|
 | 
						|
.. versionadded:: 3.40
 | 
						|
%End
 | 
						|
 | 
						|
    void disableClipping();
 | 
						|
%Docstring
 | 
						|
Disables OpenGL clipping.
 | 
						|
 | 
						|
.. seealso:: :py:func:`enableClipping`
 | 
						|
 | 
						|
.. versionadded:: 3.40
 | 
						|
%End
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
  signals:
 | 
						|
    void terrainEntityChanged();
 | 
						|
%Docstring
 | 
						|
Emitted when the current terrain entity is replaced by a new one
 | 
						|
%End
 | 
						|
    void terrainPendingJobsCountChanged();
 | 
						|
%Docstring
 | 
						|
Emitted when the number of terrain's pending jobs changes
 | 
						|
%End
 | 
						|
 | 
						|
    void totalPendingJobsCountChanged();
 | 
						|
%Docstring
 | 
						|
Emitted when the total number of pending jobs changes
 | 
						|
 | 
						|
.. versionadded:: 3.12
 | 
						|
%End
 | 
						|
    void sceneStateChanged();
 | 
						|
%Docstring
 | 
						|
Emitted when the scene's state has changed
 | 
						|
%End
 | 
						|
 | 
						|
    void fpsCountChanged( float fpsCount );
 | 
						|
%Docstring
 | 
						|
Emitted when the FPS count changes
 | 
						|
%End
 | 
						|
    void fpsCounterEnabledChanged( bool fpsCounterEnabled );
 | 
						|
%Docstring
 | 
						|
Emitted when the FPS counter is activated or deactivated
 | 
						|
%End
 | 
						|
 | 
						|
    void viewed2DExtentFrom3DChanged( QVector<QgsPointXY> extent );
 | 
						|
%Docstring
 | 
						|
Emitted when the viewed 2D extent seen by the 3D camera has changed
 | 
						|
 | 
						|
.. versionadded:: 3.26
 | 
						|
%End
 | 
						|
 | 
						|
    void gpuMemoryLimitReached();
 | 
						|
%Docstring
 | 
						|
Emitted when one of the entities reaches its GPU memory limit
 | 
						|
and it is not possible to lower the GPU memory use by unloading
 | 
						|
data that's not currently needed.
 | 
						|
%End
 | 
						|
 | 
						|
  public slots:
 | 
						|
    void updateTemporal();
 | 
						|
%Docstring
 | 
						|
Updates the temporale entities
 | 
						|
%End
 | 
						|
 | 
						|
  private:
 | 
						|
    Qgs3DMapScene();
 | 
						|
    Qgs3DMapScene( const Qgs3DMapScene &other );
 | 
						|
};
 | 
						|
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/3d/qgs3dmapscene.h                                               *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | 
						|
 ************************************************************************/
 |