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
planning.hpp
Go to the documentation of this file.
1#include "meshkit/regions.hpp"
2#include "meshkit/patch.hpp"
4// SPDX-License-Identifier: Apache-2.0
5#pragma once
6#include <functional>
7
8namespace meshkit::plan
9{
22 double terrainTolerance = 0;
23 std::function<double(const Box2 &)> terrainToleranceForFootprint;
24 std::function<double(const Box2 &)> maximumSize;
25 std::function<double(double, double)> elevationAt;
26 std::function<double(const Point2 *, const double *)> terrainBound;
27 std::function<bool()> cancelled;
28};
30 bool ok = false, repairable = false, cancelled = false;
32};
35 bool allowQuads = true;
36 double defaultSize = 1;
39 std::uint64_t maximumCells = 20000000, maximumPatchCells = 250000;
40 std::uint64_t maximumWorkspaceBytes = std::uint64_t(2) << 30, workBudget = 0;
41 // Previous bounded conformity retry found this candidate unsafe.
42 std::function<bool(const Polygon &)> excluded;
43};
58// Plan all region patches together before CDT construction. Full shared sides
59// use one exact station sequence; opposite/shared counts are solved jointly.
60// Authored vertices and indexed source junctions are retained. Unknown/infeasible
61// preferred candidates use triangles; a required failure refuses the whole plan.
63 const QuadPlanningOptions & = {});
65 int first = -1, second = -1;
66 double firstSize = 0, secondSize = 0;
67};
75// Compact independent incidence/ratio check restricted to actual patch edges.
76// Ordinary triangles are scanned once; storage grows with patch perimeter.
78 double maximumRatio,
79 const std::function<bool()> &cancelled = {},
80 int maximumExamples = 64);
81}
Definition geometry.hpp:59
Definition geometry.hpp:11
Definition storage.hpp:18
Definition planmodel.hpp:49
Definition planmodel.hpp:14
Definition blocks.hpp:25
QuadPlan planQuadRegions(const Vector< QuadRegion > &, const QuadPlanningGeometry &, const QuadPlanningOptions &={})
Definition planning.cpp:320
PatchInterfaceReport auditPatchInterfaces(const MeshResult &, const Vector< MeshEdge > &, double maximumRatio, const std::function< bool()> &cancelled={}, int maximumExamples=64)
Definition planning.cpp:830
PatchAssessment assessPlannedPatch(const PatchMesh &, const PatchLimits &)
Definition planning.cpp:211
PatchDisposition
Definition planning.hpp:10
Definition planmodel.hpp:134
Definition planning.hpp:29
bool ok
Definition planning.hpp:30
bool cancelled
Definition planning.hpp:30
bool repairable
Definition planning.hpp:30
Text reason
Definition planning.hpp:31
Definition planning.hpp:11
std::uint64_t cells
Definition planning.hpp:16
Text source
Definition planning.hpp:12
int region
Definition planning.hpp:13
int repairRounds
Definition planning.hpp:17
PatchDisposition disposition
Definition planning.hpp:15
bool required
Definition planning.hpp:14
Text reason
Definition planning.hpp:12
Definition planning.hpp:64
int second
Definition planning.hpp:65
int first
Definition planning.hpp:65
double firstSize
Definition planning.hpp:66
double secondSize
Definition planning.hpp:66
Definition planning.hpp:68
std::uint64_t sharedFaces
Definition planning.hpp:71
bool ok
Definition planning.hpp:69
Vector< PatchInterfaceConflict > examples
Definition planning.hpp:73
bool cancelled
Definition planning.hpp:69
Text error
Definition planning.hpp:70
double largestRatio
Definition planning.hpp:72
std::uint64_t violations
Definition planning.hpp:71
Definition planning.hpp:19
double minimumEdge
Definition planning.hpp:20
std::function< double(double, double)> elevationAt
Definition planning.hpp:25
double alongSize
Definition planning.hpp:21
double alongAngleDegrees
Definition planning.hpp:21
std::function< double(const Box2 &)> terrainToleranceForFootprint
Definition planning.hpp:23
std::function< bool()> cancelled
Definition planning.hpp:27
std::function< double(const Box2 &)> maximumSize
Definition planning.hpp:24
double acrossSize
Definition planning.hpp:21
std::function< double(const Point2 *, const double *)> terrainBound
Definition planning.hpp:26
double minimumAngleDegrees
Definition planning.hpp:20
double terrainTolerance
Definition planning.hpp:22
double maximumAspect
Definition planning.hpp:20
A generated patch in local indices. Quads are emitted CCW.
Definition patch.hpp:74
Definition planning.hpp:50
std::uint64_t plannedCells
Definition planning.hpp:56
Text error
Definition planning.hpp:52
std::uint64_t sharedSides
Definition planning.hpp:56
bool ok
Definition planning.hpp:51
Vector< PatchDecision > decisions
Definition planning.hpp:55
bool cancelled
Definition planning.hpp:51
Vector< int > patchRegions
Definition planning.hpp:54
std::uint64_t workUsed
Definition planning.hpp:56
bool resourceLimited
Definition planning.hpp:51
Vector< PatchMesh > patches
Definition planning.hpp:53
Definition planning.hpp:44
Vector< Polygon > domains
Definition planning.hpp:45
Vector< Vector< Point2 > > lines
Definition planning.hpp:46
Vector< PatchMesh > fixedPatches
Definition planning.hpp:48
Vector< Point2 > pins
Definition planning.hpp:47
Vector< Polygon > holes
Definition planning.hpp:45
Definition planning.hpp:34
std::uint64_t maximumWorkspaceBytes
Definition planning.hpp:40
bool allowQuads
Definition planning.hpp:35
int maximumRepairRounds
Definition planning.hpp:38
PatchLimits limits
Definition planning.hpp:37
std::uint64_t maximumCells
Definition planning.hpp:39
std::uint64_t maximumPatchCells
Definition planning.hpp:39
std::uint64_t workBudget
Definition planning.hpp:40
double defaultSize
Definition planning.hpp:36
std::function< bool(const Polygon &)> excluded
Definition planning.hpp:42
double
Definition swmmpollutantpropertyadapter.cpp:68
bool cancelled
Definition vectorexport.cpp:214