OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
MeshBuilder.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2//
3// Copyright 2026 Caleb Buahin
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
35
36#ifndef OPENSWMM_ENGINE_2D_MESH_BUILDER_HPP
37#define OPENSWMM_ENGINE_2D_MESH_BUILDER_HPP
38
39#include "../data/MeshData.hpp"
40#include <functional>
41
42namespace openswmm::twoD {
43
60void buildMeshTopology(MeshData& mesh);
73bool buildMeshTopologyCancellable(MeshData& mesh, const std::function<bool(int)>& progress);
74
88std::string validateMesh(const MeshData& mesh);
101std::string validateMeshCancellable(const MeshData& mesh, const std::function<bool(int)>& progress,
102 bool& cancelled);
103
125void recomputeVertexZDependents(MeshData& mesh, int vidx);
126
149
150} // namespace openswmm::twoD
151
152#endif // OPENSWMM_ENGINE_2D_MESH_BUILDER_HPP
Structure-of-Arrays (SoA) storage for 2D triangular mesh geometry.
Definition ExchangeLaw.hpp:60
void buildMeshTopology(MeshData &mesh)
Build mesh topology and precompute geometry from raw vertex/triangle data.
Definition MeshBuilder.cpp:106
void recomputeVertexZDependents(MeshData &mesh, int vidx)
Recompute Z-derived per-triangle / per-edge geometry for triangles incident to a vertex whose Z just ...
Definition MeshBuilder.cpp:449
std::string validateMesh(const MeshData &mesh)
Validate mesh data for consistency.
Definition MeshBuilder.cpp:294
std::string validateMeshCancellable(const MeshData &mesh, const std::function< bool(int)> &progress, bool &cancelled)
Cancellable validator. cancelled is set when progress returns true.
Definition MeshBuilder.cpp:299
void recomputeAllZDependents(MeshData &mesh)
Whole-mesh form of recomputeVertexZDependents.
Definition MeshBuilder.cpp:462
bool buildMeshTopologyCancellable(MeshData &mesh, const std::function< bool(int)> &progress)
Cancellable equivalent; progress receives integer percent and returns true to cancel.
Definition MeshBuilder.cpp:110
SoA storage for 2D mixed triangle/quad mesh geometry and topology.
Definition MeshData.hpp:65