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

Classes

struct  BadHeights
 
struct  Hole
 
struct  InPatchStep
 
struct  Report
 
struct  Seam
 
struct  ViewState
 

Enumerations

enum class  SeamCause { PendingFlat , DegradedFlat , LodTJunction , SameZoomMismatch }
 
enum class  HoleCause { NoPatch , SuppressedCovered , ElevatedTerrainCulled }
 

Functions

QString seamCauseDescription (SeamCause cause)
 
QString holeCauseDescription (HoleCause cause)
 
Report analyze (const QList< SurfaceModel::Patch > &patches, int gridSize, const ViewState &view, double minStep)
 

Detailed Description

Diagnostic pass over the rendered patch set: finds anything visibly wrong with the surface and classifies why it exists. Checks:

  • coverage holes: visible screen points with no rendered geometry under them
  • camera below the rendered surface (view clips into the mesh)
  • seams: height discontinuities ("cliffs") along patch boundaries
  • in-patch edge steps: neighbor data dropping in one cell inside a patch edge (boundaries match by design, so seams can't see these; measured by the cliff monitor while the GeoMap debug UI is on)
  • non-finite height data (NaN/inf vertices)

Enumeration Type Documentation

◆ HoleCause

enum class SurfaceAnalysis::HoleCause
strong
Enumerator
NoPatch 

no resident patch covers the visible point at all

SuppressedCovered 

only a covered (render-suppressed) patch spans the point

ElevatedTerrainCulled 

sightline passes below nearby terrain height over unrendered ground

Definition at line 30 of file SurfaceAnalysis.h.

◆ SeamCause

enum class SurfaceAnalysis::SeamCause
strong
Enumerator
PendingFlat 

a patch renders flat because its heights are still loading

DegradedFlat 

a patch renders flat because terrain fetches failed (retries exhausted)

LodTJunction 

fine edge vertices vs the coarse neighbor's interpolated edge

SameZoomMismatch 

same zoom, same scale: unexpected sampling inconsistency

Definition at line 22 of file SurfaceAnalysis.h.

Function Documentation

◆ analyze()

◆ holeCauseDescription()

QString SurfaceAnalysis::holeCauseDescription ( HoleCause  cause)

Definition at line 254 of file SurfaceAnalysis.cc.

References ElevatedTerrainCulled, NoPatch, and SuppressedCovered.

Referenced by SurfaceAnalysis::Report::text().

◆ seamCauseDescription()

QString SurfaceAnalysis::seamCauseDescription ( SeamCause  cause)

Definition at line 238 of file SurfaceAnalysis.cc.

References DegradedFlat, LodTJunction, PendingFlat, and SameZoomMismatch.

Referenced by SurfaceAnalysis::Report::text().