OpenSWMM Engine  6.0.0-alpha.3
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.3)
Loading...
Searching...
No Matches
ObjectDeleter.hpp
Go to the documentation of this file.
1
16
17#ifndef OPENSWMM_ENGINE_OBJECT_DELETER_HPP
18#define OPENSWMM_ENGINE_OBJECT_DELETER_HPP
19
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 */
The central, reentrant simulation context for the new engine.
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:351
CascadeResult analyze_transect_impact(const SimulationContext &ctx, int transect_idx)
Definition ObjectDeleter.cpp:254
CascadeResult analyze_link_impact(const SimulationContext &ctx, int link_idx)
Definition ObjectDeleter.cpp:131
CascadeResult delete_subcatch(SimulationContext &ctx, int sc_idx)
Definition ObjectDeleter.cpp:402
CascadeResult delete_gage(SimulationContext &ctx, int gage_idx)
Definition ObjectDeleter.cpp:442
CascadeResult analyze_gage_impact(const SimulationContext &ctx, int gage_idx)
Definition ObjectDeleter.cpp:172
CascadeResult analyze_table_impact(const SimulationContext &ctx, int table_idx)
Definition ObjectDeleter.cpp:186
CascadeResult analyze_subcatch_impact(const SimulationContext &ctx, int sc_idx)
Definition ObjectDeleter.cpp:151
CascadeResult delete_table(SimulationContext &ctx, int table_idx)
Definition ObjectDeleter.cpp:469
CascadeResult delete_transect(SimulationContext &ctx, int transect_idx)
Definition ObjectDeleter.cpp:577
CascadeResult delete_node(SimulationContext &ctx, int node_idx)
Definition ObjectDeleter.cpp:277
Central, reentrant simulation context.
Definition SimulationContext.hpp:292
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