SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
mesh::ResolutionSettings Struct Reference

#include <meshresolution.h>

Collaboration diagram for mesh::ResolutionSettings:

Public Types

enum class  Sizing {
  Legacy ,
  Verified ,
  Strict
}
 
enum class  CellPlanning {
  Legacy ,
  Unified
}
 
enum class  Terrain {
  Adaptive ,
  Legacy ,
  Off
}
 
enum class  Reference {
  Averaged ,
  Full ,
  Direct
}
 

Public Member Functions

QString validate () const
 Check numeric mesh-resolution settings without modifying or normalizing them.
 
QJsonObject toJson () const
 Serialize every resolution field into the current project JSON schema.
 

Static Public Member Functions

static ResolutionSettings fromJson (const QJsonObject &o)
 Decode current-schema resolution fields using defaults for missing or mismatched values.
 
static ResolutionSettings migrate (const QJsonObject &c, ResolutionSettings r, double extentM)
 Overlay version-1 generation-dialog controls onto a supplied settings value.
 

Public Attributes

double minimumM = 6.096
 
std::optional< double > maximumM
 
std::optional< double > featureM
 
std::optional< double > toleranceM
 
std::optional< double > breaklineToleranceM
 
std::optional< double > averagingM
 
std::optional< double > minimumBreaklineLengthM
 
int maxBreaklines = 0
 
int coarsenPasses = 0
 Absent in older projects: retain their original mesh behaviour.
 
double transition = 2.0
 
enum mesh::ResolutionSettings::Sizing sizing = Sizing::Legacy
 
enum mesh::ResolutionSettings::CellPlanning cellPlanning = CellPlanning::Legacy
 
std::optional< double > minimumEdgeM
 
CoarseningOrder coarseningOrder =CoarseningOrder::LegacyFlatness
 
TerrainTolerancePolicy terrainTolerancePolicy
 
bool refineFeatures = false
 
bool alignTerrain = true
 
enum mesh::ResolutionSettings::Terrain terrain = Terrain::Adaptive
 
enum mesh::ResolutionSettings::Reference reference = Reference::Averaged
 

Member Enumeration Documentation

◆ CellPlanning

Enumerator
Legacy 
Unified 

◆ Reference

Enumerator
Averaged 
Full 
Direct 

◆ Sizing

Enumerator
Legacy 
Verified 
Strict 

◆ Terrain

Enumerator
Adaptive 
Legacy 
Off 

Member Function Documentation

◆ fromJson()

static ResolutionSettings mesh::ResolutionSettings::fromJson ( const QJsonObject &  o)
inlinestatic

Decode current-schema resolution fields using defaults for missing or mismatched values.

Parameters
[in]oBorrowed object, unchanged; numeric optional lengths become present only for JSON numbers.
Returns
Owned settings, distances in metres; unknown terrain/reference strings select adaptive/averaged. Missing optional values remain absent. Does not validate ranges, clamp values, convert project units or mutate project state; callers should call validate() before using authoring inputs.
Here is the caller graph for this function:

◆ migrate()

static ResolutionSettings mesh::ResolutionSettings::migrate ( const QJsonObject &  c,
ResolutionSettings  r,
double  extentM 
)
inlinestatic

Overlay version-1 generation-dialog controls onto a supplied settings value.

Parameters
[in]cBorrowed legacy control object with metre distances and integer combo selections, unchanged.
[in]rInitial settings copied by value; fields without legacy controls retain their supplied values, except coarsenPasses resets to zero and maximum/breakline tolerance are derived.
[in]extentMDomain extent in metres, used as extentM/100 when legacy feature size is nonpositive; if not positive the fallback is 1 metre. Caller supplies finite meaningful values.
Returns
Owned migrated settings. Nonpositive minimum becomes feature/4, maximum becomes feature times coarsening factor, nonpositive elevation tolerance becomes absent and copies to breakline tolerance. Legacy terrain without a positive tolerance switches off. No range validation or file/project mutation.

◆ toJson()

QJsonObject mesh::ResolutionSettings::toJson ( ) const
inline

Serialize every resolution field into the current project JSON schema.

Returns
Owned object with SI metre length controls, null for absent optional lengths, and textual terrain/reference modes. Unknown enum values serialize as off/direct respectively through fallback branches. Does not call validate(), perform unit conversion or write a file; this object is unchanged.
Here is the caller graph for this function:

◆ validate()

QString mesh::ResolutionSettings::validate ( ) const
inline

Check numeric mesh-resolution settings without modifying or normalizing them.

Returns
Empty string when accepted, otherwise the first English validation error. All present lengths must be finite in (0,1e12] metres, maximum must not precede minimum, and enabled feature refinement must lie within minimum/maximum. Coarsening passes must be 0..10, breakline count 0..10000000, transition finite and >=1.05. Enum validity and relationships between other tolerances are not checked. No project mutation or implicit fallback application.
Here is the call graph for this function:

Member Data Documentation

◆ alignTerrain

bool mesh::ResolutionSettings::alignTerrain = true

◆ averagingM

std::optional<double> mesh::ResolutionSettings::averagingM

◆ breaklineToleranceM

std::optional<double> mesh::ResolutionSettings::breaklineToleranceM

◆ cellPlanning

enum mesh::ResolutionSettings::CellPlanning mesh::ResolutionSettings::cellPlanning = CellPlanning::Legacy

◆ coarseningOrder

CoarseningOrder mesh::ResolutionSettings::coarseningOrder =CoarseningOrder::LegacyFlatness

◆ coarsenPasses

int mesh::ResolutionSettings::coarsenPasses = 0

Absent in older projects: retain their original mesh behaviour.

◆ featureM

std::optional<double> mesh::ResolutionSettings::featureM

◆ maxBreaklines

int mesh::ResolutionSettings::maxBreaklines = 0

◆ maximumM

std::optional<double> mesh::ResolutionSettings::maximumM

◆ minimumBreaklineLengthM

std::optional<double> mesh::ResolutionSettings::minimumBreaklineLengthM

◆ minimumEdgeM

std::optional<double> mesh::ResolutionSettings::minimumEdgeM

◆ minimumM

double mesh::ResolutionSettings::minimumM = 6.096

◆ reference

enum mesh::ResolutionSettings::Reference mesh::ResolutionSettings::reference = Reference::Averaged

◆ refineFeatures

bool mesh::ResolutionSettings::refineFeatures = false

◆ sizing

enum mesh::ResolutionSettings::Sizing mesh::ResolutionSettings::sizing = Sizing::Legacy

◆ terrain

enum mesh::ResolutionSettings::Terrain mesh::ResolutionSettings::terrain = Terrain::Adaptive

◆ terrainTolerancePolicy

TerrainTolerancePolicy mesh::ResolutionSettings::terrainTolerancePolicy

◆ toleranceM

std::optional<double> mesh::ResolutionSettings::toleranceM

◆ transition

double mesh::ResolutionSettings::transition = 2.0

The documentation for this struct was generated from the following file: