QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
Loading...
Searching...
No Matches
QgsTessellator Class Reference

Tessellates polygons into triangles. More...

#include <qgstessellator.h>

Public Member Functions

 QgsTessellator ()
Q_DECL_DEPRECATED QgsTessellator (const QgsRectangle &bounds, bool addNormals, bool invertNormals=false, bool addBackFaces=false, bool noZ=false, bool addTextureCoords=false, int facade=3, float textureRotation=0.0f)
 Creates tessellator with a specified bounds of input geometry coordinates.
Q_DECL_DEPRECATED QgsTessellator (double originX, double originY, bool addNormals, bool invertNormals=false, bool addBackFaces=false, bool noZ=false, bool addTextureCoords=false, int facade=3, float textureRotation=0.0f)
 Creates tessellator with a specified origin point of the world (in map coordinates).
void addPolygon (const QgsPolygon &polygon, float extrusionHeight)
 Tessellates a triangle and adds its vertex entries to the output data array.
std::unique_ptr< QgsMultiPolygonasMultiPolygon () const
 Returns the triangulation as a multipolygon geometry.
Q_DECL_DEPRECATED QVector< float > data () const
 Returns array of triangle vertex data.
int dataVerticesCount () const
 Returns the number of vertices stored in the output data array.
QString error () const
 Returns a descriptive error string if the tessellation failed.
Qgis::ExtrusionFaces extrusionFaces () const
 Returns which faces are generated during extrusion.
bool hasBackFacesEnabled () const
 Returns whether back faces are being added to the output data (true) or not (false).
bool hasInvertedNormals () const
 Returns whether normals are inverted (true) or not (false).
bool hasNormals () const
 Returns whether normals are being added to the output data (true) or not (false).
bool hasTextureUVs () const
 Returns whether texture UV coordinates are being added to the output data (true) or not (false).
QByteArray indexBuffer () const
 Returns index buffer for the generated points.
int indexStride () const
 Returns size of one index entry in bytes.
bool isOutputZUp () const
 Returns whether the "up" direction should be the Z axis on output (true), otherwise the "up" direction will be the Y axis (false).
bool isZValueIgnored () const
 Returns whether Z values from the input geometries are ignored (true) or not (false).
QgsVector3D origin () const
 Returns the origin point of the map.
void setAddNormals (bool addNormals)
 Sets whether normals should be added to the output data (true) or not (false).
void setAddTextureUVs (bool addTextureUVs)
 Sets whether texture UV coordinates should be added to the output data (true) or not (false).
void setBackFacesEnabled (bool addBackFaces)
 Sets whether back faces should be added to the output data (true) or not (false).
void setBounds (const QgsRectangle &bounds)
 Sets scaling and the bounds of the input geometry coordinates.
void setExtrusionFaces (Qgis::ExtrusionFaces faces)
 Sets which faces should be generated during extrusion.
void setInputZValueIgnored (bool ignore)
 Sets whether Z values from the input geometries are ignored (true) or not (false).
void setInvertNormals (bool invertNormals)
 Sets whether normals should be inverted (true) or not (false).
void setOrigin (const QgsVector3D &origin)
 Sets the origin point of the map.
void setOutputZUp (bool zUp)
 Sets whether the "up" direction should be the Z axis on output (true), otherwise the "up" direction will be the Y axis (false).
void setTextureRotation (float rotation)
 Sets the rotation of texture UV coordinates (in degrees).
void setTriangulationAlgorithm (Qgis::TriangulationAlgorithm algorithm)
 Sets the triangulation algorithm.
int stride () const
 Returns size of one vertex entry in bytes.
float textureRotation () const
 Returns the rotation of texture UV coordinates (in degrees).
Qgis::TriangulationAlgorithm triangulationAlgorithm () const
 Returns the algorithm used for triangulation.
int uniqueVertexCount () const
 Returns unique vertex count.
QByteArray vertexBuffer () const
 Returns vertex buffer for the generated points.
float zMaximum () const
 Returns maximal Z value of the data (in world coordinates).
float zMinimum () const
 Returns minimal Z value of the data (in world coordinates).

Friends

uint qHash (const VertexPoint &key)

Detailed Description

Tessellates 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.

Definition at line 40 of file qgstessellator.h.

Constructor & Destructor Documentation

◆ QgsTessellator() [1/3]

QgsTessellator::QgsTessellator ( )
default

◆ QgsTessellator() [2/3]

QgsTessellator::QgsTessellator ( double originX,
double originY,
bool addNormals,
bool invertNormals = false,
bool addBackFaces = false,
bool noZ = false,
bool addTextureCoords = false,
int facade = 3,
float textureRotation = 0.0f )

Creates tessellator with a specified origin point of the world (in map coordinates).

Deprecated
QGIS 4.0. Use the default QgsTessellator() constructor and individual setters instead.

Definition at line 169 of file qgstessellator.cpp.

◆ QgsTessellator() [3/3]

QgsTessellator::QgsTessellator ( const QgsRectangle & bounds,
bool addNormals,
bool invertNormals = false,
bool addBackFaces = false,
bool noZ = false,
bool addTextureCoords = false,
int facade = 3,
float textureRotation = 0.0f )

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.

Since
QGIS 3.10
Deprecated
QGIS 4.0. Use the default QgsTessellator() constructor and individual setters instead.

Definition at line 181 of file qgstessellator.cpp.

Member Function Documentation

◆ addPolygon()

void QgsTessellator::addPolygon ( const QgsPolygon & polygon,
float extrusionHeight )

Tessellates a triangle and adds its vertex entries to the output data array.

Definition at line 746 of file qgstessellator.cpp.

◆ asMultiPolygon()

std::unique_ptr< QgsMultiPolygon > QgsTessellator::asMultiPolygon ( ) const

Returns the triangulation as a multipolygon geometry.

Definition at line 943 of file qgstessellator.cpp.

◆ data()

QVector< float > QgsTessellator::data ( ) const

Returns array of triangle vertex data.

Vertice coordinates are stored as (x, z, -y)

Deprecated
QGIS 4.0. Use vertexBuffer() in combination with indexBuffer().

Definition at line 979 of file qgstessellator.cpp.

◆ dataVerticesCount()

int QgsTessellator::dataVerticesCount ( ) const

Returns the number of vertices stored in the output data array.

Definition at line 938 of file qgstessellator.cpp.

◆ error()

QString QgsTessellator::error ( ) const
inline

Returns a descriptive error string if the tessellation failed.

Since
QGIS 3.34

Definition at line 256 of file qgstessellator.h.

◆ extrusionFaces()

Qgis::ExtrusionFaces QgsTessellator::extrusionFaces ( ) const
inline

Returns which faces are generated during extrusion.

Since
QGIS 4.0

Definition at line 108 of file qgstessellator.h.

◆ hasBackFacesEnabled()

bool QgsTessellator::hasBackFacesEnabled ( ) const
inline

Returns whether back faces are being added to the output data (true) or not (false).

Since
QGIS 4.0

Definition at line 156 of file qgstessellator.h.

◆ hasInvertedNormals()

bool QgsTessellator::hasInvertedNormals ( ) const
inline

Returns whether normals are inverted (true) or not (false).

Since
QGIS 4.0

Definition at line 168 of file qgstessellator.h.

◆ hasNormals()

bool QgsTessellator::hasNormals ( ) const
inline

Returns whether normals are being added to the output data (true) or not (false).

Since
QGIS 4.0

Definition at line 144 of file qgstessellator.h.

◆ hasTextureUVs()

bool QgsTessellator::hasTextureUVs ( ) const
inline

Returns whether texture UV coordinates are being added to the output data (true) or not (false).

Since
QGIS 4.0

Definition at line 132 of file qgstessellator.h.

◆ indexBuffer()

QByteArray QgsTessellator::indexBuffer ( ) const

Returns index buffer for the generated points.

Since
QGIS 4.0

Definition at line 536 of file qgstessellator.cpp.

◆ indexStride()

int QgsTessellator::indexStride ( ) const
inline

Returns size of one index entry in bytes.

Since
QGIS 4.0

Definition at line 232 of file qgstessellator.h.

◆ isOutputZUp()

bool QgsTessellator::isOutputZUp ( ) const
inline

Returns whether the "up" direction should be the Z axis on output (true), otherwise the "up" direction will be the Y axis (false).

The default value is false (to keep compatibility for existing tessellator use cases).

Since
QGIS 3.42

Definition at line 196 of file qgstessellator.h.

◆ isZValueIgnored()

bool QgsTessellator::isZValueIgnored ( ) const
inline

Returns whether Z values from the input geometries are ignored (true) or not (false).

Since
QGIS 4.0

Definition at line 96 of file qgstessellator.h.

◆ origin()

QgsVector3D QgsTessellator::origin ( ) const
inline

Returns the origin point of the map.

Since
QGIS 4.0

Definition at line 77 of file qgstessellator.h.

◆ setAddNormals()

void QgsTessellator::setAddNormals ( bool addNormals)

Sets whether normals should be added to the output data (true) or not (false).

Since
QGIS 4.0

Definition at line 253 of file qgstessellator.cpp.

◆ setAddTextureUVs()

void QgsTessellator::setAddTextureUVs ( bool addTextureUVs)

Sets whether texture UV coordinates should be added to the output data (true) or not (false).

Since
QGIS 4.0

Definition at line 259 of file qgstessellator.cpp.

◆ setBackFacesEnabled()

void QgsTessellator::setBackFacesEnabled ( bool addBackFaces)

Sets whether back faces should be added to the output data (true) or not (false).

Since
QGIS 4.0

Definition at line 243 of file qgstessellator.cpp.

◆ setBounds()

void QgsTessellator::setBounds ( const QgsRectangle & bounds)

Sets scaling and the bounds of the input geometry coordinates.

Since
QGIS 4.0

Definition at line 198 of file qgstessellator.cpp.

◆ setExtrusionFaces()

void QgsTessellator::setExtrusionFaces ( Qgis::ExtrusionFaces faces)

Sets which faces should be generated during extrusion.

Since
QGIS 4.0

Definition at line 209 of file qgstessellator.cpp.

◆ setInputZValueIgnored()

void QgsTessellator::setInputZValueIgnored ( bool ignore)

Sets whether Z values from the input geometries are ignored (true) or not (false).

By default, this is false.

Since
QGIS 4.0

Definition at line 204 of file qgstessellator.cpp.

◆ setInvertNormals()

void QgsTessellator::setInvertNormals ( bool invertNormals)

Sets whether normals should be inverted (true) or not (false).

Since
QGIS 4.0

Definition at line 248 of file qgstessellator.cpp.

◆ setOrigin()

void QgsTessellator::setOrigin ( const QgsVector3D & origin)

Sets the origin point of the map.

Since
QGIS 4.0

Definition at line 193 of file qgstessellator.cpp.

◆ setOutputZUp()

void QgsTessellator::setOutputZUp ( bool zUp)
inline

Sets whether the "up" direction should be the Z axis on output (true), otherwise the "up" direction will be the Y axis (false).

The default value is false (to keep compatibility for existing tessellator use cases).

Since
QGIS 3.42

Definition at line 188 of file qgstessellator.h.

◆ setTextureRotation()

void QgsTessellator::setTextureRotation ( float rotation)

Sets the rotation of texture UV coordinates (in degrees).

Since
QGIS 4.0

Definition at line 238 of file qgstessellator.cpp.

◆ setTriangulationAlgorithm()

void QgsTessellator::setTriangulationAlgorithm ( Qgis::TriangulationAlgorithm algorithm)

Sets the triangulation algorithm.

Since
QGIS 4.0

Definition at line 265 of file qgstessellator.cpp.

◆ stride()

int QgsTessellator::stride ( ) const
inline

Returns size of one vertex entry in bytes.

Definition at line 226 of file qgstessellator.h.

◆ textureRotation()

float QgsTessellator::textureRotation ( ) const
inline

Returns the rotation of texture UV coordinates (in degrees).

Since
QGIS 4.0

Definition at line 120 of file qgstessellator.h.

◆ triangulationAlgorithm()

Qgis::TriangulationAlgorithm QgsTessellator::triangulationAlgorithm ( ) const
inline

Returns the algorithm used for triangulation.

Since
QGIS 4.0

Definition at line 180 of file qgstessellator.h.

◆ uniqueVertexCount()

int QgsTessellator::uniqueVertexCount ( ) const

Returns unique vertex count.

Since
QGIS 4.0

Definition at line 1000 of file qgstessellator.cpp.

◆ vertexBuffer()

QByteArray QgsTessellator::vertexBuffer ( ) const

Returns vertex buffer for the generated points.

Since
QGIS 4.0

Definition at line 531 of file qgstessellator.cpp.

◆ zMaximum()

float QgsTessellator::zMaximum ( ) const
inline

Returns maximal Z value of the data (in world coordinates).

Since
QGIS 3.12

Definition at line 249 of file qgstessellator.h.

◆ zMinimum()

float QgsTessellator::zMinimum ( ) const
inline

Returns minimal Z value of the data (in world coordinates).

Since
QGIS 3.12

Definition at line 243 of file qgstessellator.h.

◆ qHash

uint qHash ( const VertexPoint & key)
friend

Definition at line 273 of file qgstessellator.h.


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