OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
ObjectDeleter.hpp
Go to the documentation of this file.
1
17#ifndef OPENSWMM_ENGINE_OBJECT_DELETER_HPP
18#define OPENSWMM_ENGINE_OBJECT_DELETER_HPP
19
20#include "../core/SimulationContext.hpp"
21#include <vector>
22
23namespace openswmm::edit {
24
25// ============================================================================
26// Cascade result
27// ============================================================================
28
35 int obj_idx;
36 const char* field;
37 bool cascaded;
38};
39
42 std::vector<CascadeEntry> entries;
43
44 void add(int ot, int oi, const char* f, bool deleted) {
45 entries.push_back({ot, oi, f, deleted});
46 }
47};
48
49// ============================================================================
50// Impact analysis — read-only
51// ============================================================================
52
53CascadeResult analyze_node_impact (const SimulationContext& ctx, int node_idx);
54CascadeResult analyze_link_impact (const SimulationContext& ctx, int link_idx);
55CascadeResult analyze_subcatch_impact(const SimulationContext& ctx, int sc_idx);
56CascadeResult analyze_gage_impact (const SimulationContext& ctx, int gage_idx);
57CascadeResult analyze_table_impact (const SimulationContext& ctx, int table_idx);
58CascadeResult analyze_transect_impact(const SimulationContext& ctx, int transect_idx);
59
60// ============================================================================
61// Deletion — mutates ctx
62// ============================================================================
63
64CascadeResult delete_node (SimulationContext& ctx, int node_idx);
65CascadeResult delete_link (SimulationContext& ctx, int link_idx);
66CascadeResult delete_subcatch(SimulationContext& ctx, int sc_idx);
67CascadeResult delete_gage (SimulationContext& ctx, int gage_idx);
68CascadeResult delete_table (SimulationContext& ctx, int table_idx);
69CascadeResult delete_transect(SimulationContext& ctx, int transect_idx);
70
71} // namespace openswmm::edit
72
73#endif /* OPENSWMM_ENGINE_OBJECT_DELETER_HPP */
Definition ObjectDeleter.cpp:17
CascadeResult analyze_node_impact(const SimulationContext &ctx, int node_idx)
Definition ObjectDeleter.cpp:98
CascadeResult delete_link(SimulationContext &ctx, int link_idx)
Definition ObjectDeleter.cpp:319
CascadeResult analyze_transect_impact(const SimulationContext &ctx, int transect_idx)
Definition ObjectDeleter.cpp:226
CascadeResult analyze_link_impact(const SimulationContext &ctx, int link_idx)
Definition ObjectDeleter.cpp:130
CascadeResult delete_subcatch(SimulationContext &ctx, int sc_idx)
Definition ObjectDeleter.cpp:366
CascadeResult delete_gage(SimulationContext &ctx, int gage_idx)
Definition ObjectDeleter.cpp:405
CascadeResult analyze_gage_impact(const SimulationContext &ctx, int gage_idx)
Definition ObjectDeleter.cpp:169
CascadeResult analyze_table_impact(const SimulationContext &ctx, int table_idx)
Definition ObjectDeleter.cpp:183
CascadeResult analyze_subcatch_impact(const SimulationContext &ctx, int sc_idx)
Definition ObjectDeleter.cpp:149
CascadeResult delete_table(SimulationContext &ctx, int table_idx)
Definition ObjectDeleter.cpp:432
CascadeResult delete_transect(SimulationContext &ctx, int transect_idx)
Definition ObjectDeleter.cpp:506
CascadeResult delete_node(SimulationContext &ctx, int node_idx)
Definition ObjectDeleter.cpp:249
Central, reentrant simulation context.
Definition SimulationContext.hpp:274
Describes one object that was impacted (deleted or nullified) during a cascade deletion.
Definition ObjectDeleter.hpp:33
bool cascaded
true = deleted, false = reference nullified
Definition ObjectDeleter.hpp:37
const char * field
Static field-name string literal.
Definition ObjectDeleter.hpp:36
int obj_idx
Zero-based index at the time of impact.
Definition ObjectDeleter.hpp:35
int obj_type
SWMM_RefType value.
Definition ObjectDeleter.hpp:34
Aggregate cascade result for one deletion operation.
Definition ObjectDeleter.hpp:41
void add(int ot, int oi, const char *f, bool deleted)
Definition ObjectDeleter.hpp:44
std::vector< CascadeEntry > entries
Definition ObjectDeleter.hpp:42