mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-04 00:30:59 -05:00
So far we used a fixed vertical range for 3D bounding boxes with range [0, 500] This of course would not work well if Z values are outside of this range (e.g. tiles may not show at all or get pruned prematurely) The approach now is to start with an estimate of the vertical range based on few features from the source vector layer and then once our tile is completely loaded, update the 3D bounding box to better represent the actual 3D extent.
92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgstessellator.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
class QgsTessellator
|
|
{
|
|
%Docstring
|
|
Class that takes care of tessellation of polygons into triangles.
|
|
|
|
It is expected that client code will create the tessellator object, then repeatedly call
|
|
addPolygon() method that will generate triangles, and finally call data() to get final vertex data.
|
|
|
|
Optionally provides extrusion by adding triangles that serve as walls when extrusion height is non-zero.
|
|
|
|
.. versionadded:: 3.4
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgstessellator.h"
|
|
%End
|
|
public:
|
|
QgsTessellator( double originX, double originY, bool addNormals, bool invertNormals = false, bool addBackFaces = false );
|
|
%Docstring
|
|
Creates tessellator with a specified origin point of the world (in map coordinates)
|
|
%End
|
|
|
|
QgsTessellator( const QgsRectangle &bounds, bool addNormals, bool invertNormals = false, bool addBackFaces = false, bool noZ = false );
|
|
%Docstring
|
|
Creates tessellator with a specified ``bounds`` of input geometry coordinates.
|
|
This constructor allows the tessellator to map input coordinates to a desirable range for numerical
|
|
stability during calculations.
|
|
|
|
If ``noZ`` is ``True``, then a 2-dimensional tessellation only will be performed and all z coordinates will be ignored.
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
void addPolygon( const QgsPolygon &polygon, float extrusionHeight );
|
|
%Docstring
|
|
Tessellates a triangle and adds its vertex entries to the output data array
|
|
%End
|
|
|
|
QVector<float> data() const;
|
|
%Docstring
|
|
Returns array of triangle vertex data
|
|
|
|
Vertice coordinates are stored as (x, z, -y)
|
|
%End
|
|
|
|
int dataVerticesCount() const;
|
|
%Docstring
|
|
Returns the number of vertices stored in the output data array
|
|
%End
|
|
|
|
int stride() const;
|
|
%Docstring
|
|
Returns size of one vertex entry in bytes
|
|
%End
|
|
|
|
|
|
float zMinimum() const;
|
|
%Docstring
|
|
Returns minimal Z value of the data (in world coordinates)
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
float zMaximum() const;
|
|
%Docstring
|
|
Returns maximal Z value of the data (in world coordinates)
|
|
|
|
.. versionadded:: 3.12
|
|
%End
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgstessellator.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|