38#ifndef OPENSWMM_ENGINE_VIRTUAL_JUNCTION_OPS_HPP
39#define OPENSWMM_ENGINE_VIRTUAL_JUNCTION_OPS_HPP
118int vj_set_virtual(SimulationContext& ctx,
int node_idx,
bool make_virtual);
150 const std::string& new_node_name,
const std::string& new_link_name,
262 const std::string& new_node_name,
const std::string& new_link_name,
263 int design_idx,
int capture_node_idx);
The central, reentrant simulation context for the new engine.
Definition ObjectDeleter.cpp:38
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:663
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:707
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:214
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:682
int ij_fuse(SimulationContext &ctx, int node_idx, int *surviving_link_out)
Inverse of ij_split_conduit (re-fusion): re-fuse an inlet junction's conduit pair....
Definition VirtualJunctionOps.cpp:786
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:744
int vj_rule_violation(const SimulationContext &ctx, int node_idx)
Check the virtual-junction usage rules for a node.
Definition VirtualJunctionOps.cpp:119
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:278
int vj_set_virtual(SimulationContext &ctx, int node_idx, bool make_virtual)
Set or clear a node's virtual flag.
Definition VirtualJunctionOps.cpp:240
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:196
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:508
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:693
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Result of vj_split_conduit.
Definition VirtualJunctionOps.hpp:121
int new_link_idx
Definition VirtualJunctionOps.hpp:123
int err
0 ok; ERR_VJ_* or -1 (bad param / duplicate name)
Definition VirtualJunctionOps.hpp:124
int new_node_idx
Definition VirtualJunctionOps.hpp:122