QGIS API Documentation 3.41.0-Master (af5edcb665c)
|
Triangular/Derived Mesh is mesh with vertices in map coordinates. More...
#include <qgstriangularmesh.h>
Classes | |
class | Changes |
The Changes class is used to make changes of the triangular and to keep traces of this changes If a Changes instance is applied (see QgsTriangularMesh::applyChanges()), these changes can be reversed (see QgsTriangularMesh::reverseChanges()) as long as other changes are not applied. More... | |
Public Member Functions | |
QgsTriangularMesh () | |
~QgsTriangularMesh () | |
void | applyChanges (const Changes &changes) |
Applies the changes on the triangular mesh (see Changes) | |
double | averageTriangleSize () const |
Returns the average size of triangles in map unit. | |
Q_DECL_DEPRECATED const QVector< QgsMeshVertex > & | centroids () const |
Returns centroids of the native faces in map CRS. | |
bool | contains (const QgsMesh::ElementType &type) const |
Returns whether the mesh contains mesh elements of given type. | |
const QVector< QgsMeshVertex > & | edgeCentroids () const |
Returns centroids of the native edges in map CRS. | |
QList< int > | edgeIndexesForRectangle (const QgsRectangle &rectangle) const |
Finds indexes of edges intersecting given bounding box It uses spatial indexing. | |
const QVector< QgsMeshEdge > & | edges () const |
Returns edges. | |
const QVector< int > & | edgesToNativeEdges () const |
Returns mapping between edges and original edges. | |
QgsRectangle | extent () const |
Returns the extent of the triangular mesh in map coordinates. | |
const QVector< QgsMeshVertex > & | faceCentroids () const |
Returns centroids of the native faces in map CRS. | |
QList< int > | faceIndexesForRectangle (const QgsRectangle &rectangle) const |
Finds indexes of triangles intersecting given bounding box It uses spatial indexing. | |
int | faceIndexForPoint (const QgsPointXY &point) const |
Finds index of triangle at given point It uses spatial indexing. | |
int | faceIndexForPoint_v2 (const QgsPointXY &point) const |
Finds index of triangle at given point It uses spatial indexing and don't use geos to be faster. | |
int | levelOfDetail () const |
Returns the corresponding index of level of detail on which this mesh is associated. | |
QgsRectangle | nativeExtent () |
Returns the extent of the mesh in the native mesh coordinates system, returns empty extent if the transformation fails. | |
int | nativeFaceIndexForPoint (const QgsPointXY &point) const |
Finds index of native face at given point It uses spatial indexing. | |
QList< int > | nativeFaceIndexForRectangle (const QgsRectangle &rectangle) const |
Finds indexes of native faces which bounding boxes intersect given bounding box It uses spatial indexing. | |
QgsMeshVertex | nativeToTriangularCoordinates (const QgsMeshVertex &vertex) const |
Transforms the vertex from native coordinates system to triangular mesh coordinates system. | |
void | reverseChanges (const Changes &changes, const QgsMesh &nativeMesh) |
Reverses the changes on the triangular mesh (see Changes) | |
QVector< QgsTriangularMesh * > | simplifyMesh (double reductionFactor, int minimumTrianglesCount=10) const |
Returns simplified meshes. | |
QgsPointXY | transformFromLayerToTrianglesCoordinates (const QgsPointXY &point) const |
Transforms a point from layer coordinates system to triangular Mesh coordinates system. | |
const QVector< QgsMeshFace > & | triangles () const |
Returns triangles. | |
const QVector< int > & | trianglesToNativeFaces () const |
Returns mapping between triangles and original faces. | |
QgsMeshVertex | triangularToNativeCoordinates (const QgsMeshVertex &vertex) const |
Transforms the vertex from triangular mesh coordinates system to native coordinates system. | |
bool | update (QgsMesh *nativeMesh) |
Constructs triangular mesh from layer's native mesh using the coordinate transform already set. | |
bool | update (QgsMesh *nativeMesh, const QgsCoordinateTransform &transform) |
Constructs triangular mesh from layer's native mesh and transform to destination CRS. | |
QVector< QVector3D > | vertexNormals (float vertScale) const |
Calculates and returns normal vector on each vertex that is part of any face. | |
const QVector< QgsMeshVertex > & | vertices () const |
Returns vertices in map coordinate system. | |
Friends | |
class | TestQgsTriangularMesh |
Triangular/Derived Mesh is mesh with vertices in map coordinates.
It creates spatial index for identification of a triangle that contains a particular point on the map.
Definition at line 51 of file qgstriangularmesh.h.
|
default |
|
default |
void QgsTriangularMesh::applyChanges | ( | const Changes & | changes | ) |
Applies the changes on the triangular mesh (see Changes)
Definition at line 729 of file qgstriangularmesh.cpp.
double QgsTriangularMesh::averageTriangleSize | ( | ) | const |
Returns the average size of triangles in map unit.
It is calculated using the maximum of the height/width of the bounding box of each triangles.
Definition at line 149 of file qgstriangularmesh.cpp.
const QVector< QgsMeshVertex > & QgsTriangularMesh::centroids | ( | ) | const |
Returns centroids of the native faces in map CRS.
Definition at line 372 of file qgstriangularmesh.cpp.
bool QgsTriangularMesh::contains | ( | const QgsMesh::ElementType & | type | ) | const |
Returns whether the mesh contains mesh elements of given type.
Definition at line 334 of file qgstriangularmesh.cpp.
const QVector< QgsMeshVertex > & QgsTriangularMesh::edgeCentroids | ( | ) | const |
Returns centroids of the native edges in map CRS.
Definition at line 382 of file qgstriangularmesh.cpp.
QList< int > QgsTriangularMesh::edgeIndexesForRectangle | ( | const QgsRectangle & | rectangle | ) | const |
Finds indexes of edges intersecting given bounding box It uses spatial indexing.
rectangle | bounding box in map coordinate system |
Definition at line 470 of file qgstriangularmesh.cpp.
const QVector< QgsMeshEdge > & QgsTriangularMesh::edges | ( | ) | const |
Returns edges.
Definition at line 367 of file qgstriangularmesh.cpp.
const QVector< int > & QgsTriangularMesh::edgesToNativeEdges | ( | ) | const |
Returns mapping between edges and original edges.
Definition at line 392 of file qgstriangularmesh.cpp.
QgsRectangle QgsTriangularMesh::extent | ( | ) | const |
Returns the extent of the triangular mesh in map coordinates.
Definition at line 315 of file qgstriangularmesh.cpp.
const QVector< QgsMeshVertex > & QgsTriangularMesh::faceCentroids | ( | ) | const |
Returns centroids of the native faces in map CRS.
Definition at line 377 of file qgstriangularmesh.cpp.
QList< int > QgsTriangularMesh::faceIndexesForRectangle | ( | const QgsRectangle & | rectangle | ) | const |
Finds indexes of triangles intersecting given bounding box It uses spatial indexing.
rectangle | bounding box in map coordinate system |
Definition at line 465 of file qgstriangularmesh.cpp.
int QgsTriangularMesh::faceIndexForPoint | ( | const QgsPointXY & | point | ) | const |
Finds index of triangle at given point It uses spatial indexing.
point | point in map coordinate system |
Definition at line 419 of file qgstriangularmesh.cpp.
int QgsTriangularMesh::faceIndexForPoint_v2 | ( | const QgsPointXY & | point | ) | const |
Finds index of triangle at given point It uses spatial indexing and don't use geos to be faster.
point | point in map coordinate system |
Definition at line 452 of file qgstriangularmesh.cpp.
int QgsTriangularMesh::levelOfDetail | ( | ) | const |
Returns the corresponding index of level of detail on which this mesh is associated.
Definition at line 329 of file qgstriangularmesh.cpp.
QgsRectangle QgsTriangularMesh::nativeExtent | ( | ) |
Returns the extent of the mesh in the native mesh coordinates system, returns empty extent if the transformation fails.
Definition at line 292 of file qgstriangularmesh.cpp.
int QgsTriangularMesh::nativeFaceIndexForPoint | ( | const QgsPointXY & | point | ) | const |
Finds index of native face at given point It uses spatial indexing.
point | point in map coordinate system |
Definition at line 432 of file qgstriangularmesh.cpp.
QList< int > QgsTriangularMesh::nativeFaceIndexForRectangle | ( | const QgsRectangle & | rectangle | ) | const |
Finds indexes of native faces which bounding boxes intersect given bounding box It uses spatial indexing.
rectangle | bounding box in map coordinate system |
Definition at line 444 of file qgstriangularmesh.cpp.
QgsMeshVertex QgsTriangularMesh::nativeToTriangularCoordinates | ( | const QgsMeshVertex & | vertex | ) | const |
Transforms the vertex from native coordinates system to triangular mesh coordinates system.
Returns empty vertex if the transform fails.
Definition at line 282 of file qgstriangularmesh.cpp.
Reverses the changes on the triangular mesh (see Changes)
Definition at line 861 of file qgstriangularmesh.cpp.
QVector< QgsTriangularMesh * > QgsTriangularMesh::simplifyMesh | ( | double | reductionFactor, |
int | minimumTrianglesCount = 10 |
||
) | const |
Returns simplified meshes.
The first simplified mesh is simplified with a goal of a number of triangles equal to the number of triangles of the base mesh divided by the reduction factor. For the following mesh the same reduction factor is used with the preceding goal of number of triangles. There are as many simplified meshes as necessary to have the minimum triangles count on the last simplified mesh.
The caller has to take the ownership of returned meshes.
Not implemented for Edge meshes and Mixed meshes
reductionFactor | is the factor used to reduce the number of triangles of the mesh |
minimumTrianglesCount | is the minimal faces count on simplified mesh |
Definition at line 503 of file qgstriangularmesh.cpp.
QgsPointXY QgsTriangularMesh::transformFromLayerToTrianglesCoordinates | ( | const QgsPointXY & | point | ) | const |
Transforms a point from layer coordinates system to triangular Mesh coordinates system.
point | point in layer coordinate system |
Definition at line 397 of file qgstriangularmesh.cpp.
const QVector< QgsMeshFace > & QgsTriangularMesh::triangles | ( | ) | const |
Returns triangles.
Definition at line 362 of file qgstriangularmesh.cpp.
const QVector< int > & QgsTriangularMesh::trianglesToNativeFaces | ( | ) | const |
Returns mapping between triangles and original faces.
Definition at line 387 of file qgstriangularmesh.cpp.
QgsMeshVertex QgsTriangularMesh::triangularToNativeCoordinates | ( | const QgsMeshVertex & | vertex | ) | const |
Transforms the vertex from triangular mesh coordinates system to native coordinates system.
Returns empty vertex if the transform fails.
Definition at line 287 of file qgstriangularmesh.cpp.
bool QgsTriangularMesh::update | ( | QgsMesh * | nativeMesh | ) |
Constructs triangular mesh from layer's native mesh using the coordinate transform already set.
Populates spatial index.
nativeMesh | QgsMesh to access native vertices and faces |
true
if the mesh is effectivly updated, and false
if notDefinition at line 257 of file qgstriangularmesh.cpp.
bool QgsTriangularMesh::update | ( | QgsMesh * | nativeMesh, |
const QgsCoordinateTransform & | transform | ||
) |
Constructs triangular mesh from layer's native mesh and transform to destination CRS.
Populates spatial index.
nativeMesh | QgsMesh to access native vertices and faces |
transform | Transformation from layer CRS to destination (e.g. map) CRS. With invalid transform, it keeps the native mesh CRS |
true
if the mesh is effectivly updated, and false
if not Definition at line 157 of file qgstriangularmesh.cpp.
QVector< QVector3D > QgsTriangularMesh::vertexNormals | ( | float | vertScale | ) | const |
Calculates and returns normal vector on each vertex that is part of any face.
Definition at line 475 of file qgstriangularmesh.cpp.
const QVector< QgsMeshVertex > & QgsTriangularMesh::vertices | ( | ) | const |
Returns vertices in map coordinate system.
The list of consist of vertices from native mesh (0-N) and extra vertices needed to create triangles (N+1 - len)
Definition at line 357 of file qgstriangularmesh.cpp.
|
friend |
Definition at line 384 of file qgstriangularmesh.h.