QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
PatchMesh Namespace Reference

Typedefs

using LodDeltas = std::array< int, 4 >
 

Functions

float vertexHeight (const QList< float > &heights, int gridSize, const LodDeltas &lodDeltas, int row, int col)
 
double surfaceHeight (const QList< float > &heights, int gridSize, const LodDeltas &lodDeltas, double row, double col)
 

Detailed Description

The drawn surface of a patch height grid ((gridSize+1)^2 heights, row-major from the NW corner, row 0 north). PatchGeometry draws it and SurfaceModel answers heights on it: sharing these rules keeps items on what is drawn.

Typedef Documentation

◆ LodDeltas

using PatchMesh::LodDeltas = typedef std::array<int, 4>

Per-edge LOD deltas {N, S, W, E} (see PatchGeometry::setEdgeLodDeltas); callers pass only deltas whose step divides gridSize

Definition at line 24 of file PatchMesh.h.

Function Documentation

◆ surfaceHeight()

double PatchMesh::surfaceHeight ( const QList< float > &  heights,
int  gridSize,
const LodDeltas &  lodDeltas,
double  row,
double  col 
)
inline

Drawn height at a fractional grid position (clamped to [0, gridSize]): linear within the triangle PatchGeometry draws there. Each cell's two triangles share the (row, col+1)-(row+1, col) diagonal.

Definition at line 69 of file PatchMesh.h.

References vertexHeight().

Referenced by SurfaceModel::renderedHeightAt().

◆ vertexHeight()

float PatchMesh::vertexHeight ( const QList< float > &  heights,
int  gridSize,
const LodDeltas &  lodDeltas,
int  row,
int  col 
)
inline

Vertex height as drawn. On an edge with a coarser neighbor, non-coincident vertices collapse onto the segment between the coincident ones (T-junction fix); a corner on two constrained edges takes the first match (N,S,W,E). Out-of-range indices clamp; a grid of the wrong size draws flat.

Definition at line 30 of file PatchMesh.h.

Referenced by surfaceHeight().