38#ifndef OPENSWMM_ENGINE_VIRTUAL_JUNCTION_OPS_HPP
39#define OPENSWMM_ENGINE_VIRTUAL_JUNCTION_OPS_HPP
97int vj_set_virtual(SimulationContext& ctx,
int node_idx,
bool make_virtual);
120 const std::string& new_node_name,
121 const std::string& new_link_name,
198 const std::string& new_node_name,
199 const std::string& new_link_name,
200 int design_idx,
int capture_node_idx);
The central, reentrant simulation context for the new engine.
Definition ObjectDeleter.cpp:37
int ij_host_conduit(const SimulationContext &ctx, int host_kind, int host_idx)
The conduit whose cross-section governs an inlet usage row.
Definition VirtualJunctionOps.cpp:577
int ij_set_inlet(SimulationContext &ctx, int node_idx, bool make_inlet)
Promote a node to an inlet junction or demote it.
Definition VirtualJunctionOps.cpp:613
void vj_clear_virtual(SimulationContext &ctx, int node_idx)
Clear a node's virtual flag, promoting its rendering rim depth (if any) back to the real full depth.
Definition VirtualJunctionOps.cpp:174
bool ij_usage_shape_ok(const SimulationContext &ctx, int design_idx, int link_idx)
Legacy inlet_validate shape rule (inlet.c:498-505): CUSTOM designs fit any shape, DROP_* need RECT_OP...
Definition VirtualJunctionOps.cpp:591
int ij_fuse(SimulationContext &ctx, int node_idx, int *surviving_link_out)
Inverse of ij_split_conduit: re-fuse an inlet junction's conduit pair. The node deletion inside vj_fu...
Definition VirtualJunctionOps.cpp:685
SplitResult ij_split_conduit(SimulationContext &ctx, int link_idx, double t, const std::string &new_node_name, const std::string &new_link_name, int design_idx, int capture_node_idx)
Split a conduit and make the inserted node an inlet junction with the given design and capture node.
Definition VirtualJunctionOps.cpp:644
int vj_rule_violation(const SimulationContext &ctx, int node_idx)
Check the virtual-junction usage rules for a node.
Definition VirtualJunctionOps.cpp:84
SplitResult vj_split_conduit(SimulationContext &ctx, int link_idx, double t, const std::string &new_node_name, const std::string &new_link_name, bool make_virtual)
Split a conduit at normalized position t along its vertex-aware polyline, inserting a new node (virtu...
Definition VirtualJunctionOps.cpp:232
int vj_set_virtual(SimulationContext &ctx, int node_idx, bool make_virtual)
Set or clear a node's virtual flag.
Definition VirtualJunctionOps.cpp:197
void vj_apply_derived_geometry(SimulationContext &ctx, int node_idx)
Apply the derived-geometry contract to a validated virtual junction: full depth = pipe crown (xsect y...
Definition VirtualJunctionOps.cpp:158
int vj_fuse(SimulationContext &ctx, int node_idx, int *surviving_link_out)
Re-fuse the two conduits of a virtual junction into one, deleting the node (inverse of a virtual spli...
Definition VirtualJunctionOps.cpp:442
int ij_rule_violation(const SimulationContext &ctx, int node_idx, bool for_drop_inlet)
Check the inlet-junction usage rules for a node: every virtual-junction rule, then rule 623 — both at...
Definition VirtualJunctionOps.cpp:599
Central, reentrant simulation context.
Definition SimulationContext.hpp:353
Result of vj_split_conduit.
Definition VirtualJunctionOps.hpp:100
int new_link_idx
Definition VirtualJunctionOps.hpp:102
int err
0 ok; ERR_VJ_* or -1 (bad param / duplicate name)
Definition VirtualJunctionOps.hpp:103
int new_node_idx
Definition VirtualJunctionOps.hpp:101