OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm_infrastructure.h
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
31
32#ifndef OPENSWMM_INFRASTRUCTURE_H
33#define OPENSWMM_INFRASTRUCTURE_H
34
35#include "openswmm_engine.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/* =========================================================================
42 * Transects
43 * ========================================================================= */
44
51SWMM_ENGINE_API int swmm_transect_add(SWMM_Engine engine, const char* id);
52
62SWMM_ENGINE_API int swmm_transect_set_roughness(SWMM_Engine engine, int idx, double n_left, double n_right, double n_channel);
63
76SWMM_ENGINE_API int swmm_transect_add_station(SWMM_Engine engine, int idx, double station, double elevation);
77
84
91SWMM_ENGINE_API int swmm_transect_index(SWMM_Engine engine, const char* id);
92
99SWMM_ENGINE_API const char* swmm_transect_id(SWMM_Engine engine, int idx);
100
101/* -------------------------------------------------------------------------
102 * Per-field getters / setters (DA-ENG-09 + BQ-TR-02)
103 *
104 * GUI editors (Slice BQ Phase 6.7.4 TransectEditor) need round-trip access
105 * to every transect field; the legacy 3-function surface (add / set_roughness
106 * / add_station) only covers a fraction. The functions below close that gap.
107 * ------------------------------------------------------------------------- */
108
119 double* n_left, double* n_right, double* n_channel);
120
134 double x_left, double x_right);
135
145 double* x_left, double* x_right);
146
164 double x_left, double x_right);
165
175 double* x_left, double* x_right);
176
197 double x_factor, double y_factor, double length_factor);
198
209 double* x_factor, double* y_factor, double* length_factor);
210
218SWMM_ENGINE_API int swmm_transect_set_comments(SWMM_Engine engine, int idx, const char* text);
219
233SWMM_ENGINE_API int swmm_transect_get_comments(SWMM_Engine engine, int idx, char* buf, int buflen);
234
242
252SWMM_ENGINE_API int swmm_transect_get_station(SWMM_Engine engine, int idx, int station_idx,
253 double* station, double* elevation);
254
266
278SWMM_ENGINE_API int swmm_transect_rename(SWMM_Engine engine, int idx, const char* new_id);
279
293
294/* =========================================================================
295 * Streets
296 * ========================================================================= */
297
304SWMM_ENGINE_API int swmm_street_add(SWMM_Engine engine, const char* id);
305
323SWMM_ENGINE_API int swmm_street_rename(SWMM_Engine engine, int idx, const char* new_id);
324
343 double t_crown, double h_curb, double sx, double n_road,
344 double gutter_depres, double gutter_width, int sides,
345 double back_width, double back_slope, double back_n);
346
353
360SWMM_ENGINE_API int swmm_street_index(SWMM_Engine engine, const char* id);
361
368SWMM_ENGINE_API const char* swmm_street_id(SWMM_Engine engine, int idx);
369
392 double* t_crown, double* h_curb, double* sx, double* n_road,
393 double* gutter_depres, double* gutter_width, int* sides,
394 double* back_width, double* back_slope, double* back_n);
395
396/* =========================================================================
397 * Inlets
398 * ========================================================================= */
399
407SWMM_ENGINE_API int swmm_inlet_add(SWMM_Engine engine, const char* id, const char* type);
408
422SWMM_ENGINE_API int swmm_inlet_rename(SWMM_Engine engine, int idx, const char* new_id);
423
435SWMM_ENGINE_API int swmm_inlet_set_params(SWMM_Engine engine, int idx, double length, double width,
436 const char* grate_type, double open_area, double splash_veloc);
437
444
451SWMM_ENGINE_API int swmm_inlet_index(SWMM_Engine engine, const char* id);
452
459SWMM_ENGINE_API const char* swmm_inlet_id(SWMM_Engine engine, int idx);
460
482 double* length, double* width,
483 char* grate_type, int grate_buflen,
484 double* open_area, double* splash_veloc);
485
494SWMM_ENGINE_API int swmm_inlet_get_type(SWMM_Engine engine, int idx, char* buf, int buflen);
495
496/* -------------------------------------------------------------------------
497 * Full inlet-design surface (2026-09-05). swmm_inlet_set_params/get_params
498 * above remain as a GRATE/SLOTTED convenience; the struct API below covers
499 * every field of the [INLETS] grammar including curb height, throat angle,
500 * combination inlets and custom capture curves.
501 * ------------------------------------------------------------------------- */
502
513
525
532
539
546
551typedef struct SWMM_InletDesign {
552 int type;
553 /* GRATE / DROP_GRATE / COMBO */
557 double open_area;
559 /* CURB / DROP_CURB / COMBO */
562 int throat;
563 /* SLOTTED */
566 /* CUSTOM */
567 char curve_id[64];
570
579
594SWMM_ENGINE_API int swmm_inlet_set_design(SWMM_Engine engine, int idx, const SWMM_InletDesign* design);
595
599SWMM_ENGINE_API int swmm_inlet_get_comment(SWMM_Engine engine, int idx, char* buf, int buflen);
600SWMM_ENGINE_API int swmm_inlet_set_comment(SWMM_Engine engine, int idx, const char* text);
601
602/* -------------------------------------------------------------------------
603 * Inlet usage rows — one per placement. Two host kinds:
604 * host_kind = SWMM_INLET_HOST_LINK : a conduit ([INLET_USAGE] row)
605 * host_kind = SWMM_INLET_HOST_NODE : an inlet junction ([INLET_JUNCTIONS] row)
606 * ------------------------------------------------------------------------- */
607
612
625
628
631
634
639SWMM_ENGINE_API int swmm_inlet_usage_get(SWMM_Engine engine, int usage_idx, SWMM_InletUsage* out);
640
655SWMM_ENGINE_API int swmm_inlet_usage_set(SWMM_Engine engine, const SWMM_InletUsage* usage, int* usage_idx);
656
662SWMM_ENGINE_API int swmm_inlet_usage_remove(SWMM_Engine engine, int usage_idx);
663
664/* =========================================================================
665 * LID controls
666 * ========================================================================= */
667
680SWMM_ENGINE_API int swmm_lid_add(SWMM_Engine engine, const char* id, int type);
681
698SWMM_ENGINE_API int swmm_lid_rename(SWMM_Engine engine, int idx, const char* new_id);
699
709SWMM_ENGINE_API int swmm_lid_set_surface(SWMM_Engine engine, int idx, double storage, double roughness, double slope);
710
723SWMM_ENGINE_API int swmm_lid_set_soil(SWMM_Engine engine, int idx, double thick, double porosity, double fc, double wp, double ksat, double kslope);
724
734SWMM_ENGINE_API int swmm_lid_set_storage(SWMM_Engine engine, int idx, double thick, double void_frac, double ksat);
735
745SWMM_ENGINE_API int swmm_lid_set_drain(SWMM_Engine engine, int idx, double coeff, double expon, double offset);
746
765SWMM_ENGINE_API int swmm_lid_set_pavement(SWMM_Engine engine, int idx, double thick, double void_ratio,
766 double frac_imperv, double ksat, double clog_factor, double regen_days);
767
782SWMM_ENGINE_API int swmm_lid_set_drainmat(SWMM_Engine engine, int idx, double thick, double void_frac, double roughness);
783
790
797SWMM_ENGINE_API int swmm_lid_index(SWMM_Engine engine, const char* id);
798
805SWMM_ENGINE_API const char* swmm_lid_id(SWMM_Engine engine, int idx);
806
815SWMM_ENGINE_API int swmm_lid_get_type(SWMM_Engine engine, int idx, int* type);
816
822SWMM_ENGINE_API int swmm_lid_get_surface(SWMM_Engine engine, int idx, double* storage, double* roughness, double* slope);
823
825SWMM_ENGINE_API int swmm_lid_get_soil(SWMM_Engine engine, int idx, double* thick, double* porosity, double* fc, double* wp, double* ksat, double* kslope);
826
828SWMM_ENGINE_API int swmm_lid_get_storage(SWMM_Engine engine, int idx, double* thick, double* void_frac, double* ksat);
829
831SWMM_ENGINE_API int swmm_lid_get_drain(SWMM_Engine engine, int idx, double* coeff, double* expon, double* offset);
832
834SWMM_ENGINE_API int swmm_lid_get_pavement(SWMM_Engine engine, int idx, double* thick, double* void_ratio,
835 double* frac_imperv, double* ksat, double* clog_factor, double* regen_days);
836
838SWMM_ENGINE_API int swmm_lid_get_drainmat(SWMM_Engine engine, int idx, double* thick, double* void_frac, double* roughness);
839
840/* =========================================================================
841 * LID usage (assign LID to subcatchment)
842 * ========================================================================= */
843
860SWMM_ENGINE_API int swmm_lid_usage_add(SWMM_Engine engine, int subcatch_idx, int lid_idx, int number, double area, double width, double init_sat, double from_imperv);
861
870
886SWMM_ENGINE_API int swmm_lid_usage_get(SWMM_Engine engine, int usage_idx,
887 int* subcatch_idx, int* lid_idx, int* number,
888 double* area, double* width, double* init_sat,
889 double* from_imperv, int* to_perv, double* from_perv);
890
896SWMM_ENGINE_API int swmm_lid_usage_remove(SWMM_Engine engine, int usage_idx);
897
898#ifdef __cplusplus
899} /* extern "C" */
900#endif
901
902#endif /* OPENSWMM_INFRASTRUCTURE_H */
#define SWMM_ENGINE_API
Definition openswmm_2d.h:53
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:51
OpenSWMM Engine — primary transparent C API (master header).
SWMM_ENGINE_API int swmm_transect_get_bank_stations(SWMM_Engine engine, int idx, double *x_left, double *x_right)
Get the left and right bank stations for a transect.
Definition openswmm_infrastructure_impl.cpp:148
SWMM_ENGINE_API int swmm_transect_add_station(SWMM_Engine engine, int idx, double station, double elevation)
Add a station–elevation data point to a transect.
Definition openswmm_infrastructure_impl.cpp:89
SWMM_ENGINE_API int swmm_transect_get_roughness(SWMM_Engine engine, int idx, double *n_left, double *n_right, double *n_channel)
Get the Manning's roughness values for a transect.
Definition openswmm_infrastructure_impl.cpp:125
SWMM_GrateType
Definition openswmm_infrastructure.h:515
@ SWMM_GRATE_P_BAR_30
Definition openswmm_infrastructure.h:518
@ SWMM_GRATE_P_BAR_50
Definition openswmm_infrastructure.h:516
@ SWMM_GRATE_P_BAR_50x100
Definition openswmm_infrastructure.h:517
@ SWMM_GRATE_TILT_BAR_45
Definition openswmm_infrastructure.h:520
@ SWMM_GRATE_GENERIC
Definition openswmm_infrastructure.h:523
@ SWMM_GRATE_TILT_BAR_30
Definition openswmm_infrastructure.h:521
@ SWMM_GRATE_RETICULINE
Definition openswmm_infrastructure.h:522
@ SWMM_GRATE_CURVED_VANE
Definition openswmm_infrastructure.h:519
SWMM_ENGINE_API int swmm_lid_get_pavement(SWMM_Engine engine, int idx, double *thick, double *void_ratio, double *frac_imperv, double *ksat, double *clog_factor, double *regen_days)
Read the porous-pavement layer. Inverse of swmm_lid_set_pavement. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1127
SWMM_ThroatType
Definition openswmm_infrastructure.h:527
@ SWMM_THROAT_VERTICAL
Definition openswmm_infrastructure.h:530
@ SWMM_THROAT_HORIZONTAL
Definition openswmm_infrastructure.h:528
@ SWMM_THROAT_INCLINED
Definition openswmm_infrastructure.h:529
SWMM_ENGINE_API int swmm_inlet_index(SWMM_Engine engine, const char *id)
Look up an inlet's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:509
SWMM_ENGINE_API int swmm_lid_get_surface(SWMM_Engine engine, int idx, double *storage, double *roughness, double *slope)
Read the surface layer properties. Inverse of swmm_lid_set_surface.
Definition openswmm_infrastructure_impl.cpp:1080
SWMM_ENGINE_API int swmm_transect_index(SWMM_Engine engine, const char *id)
Look up a transect's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:104
SWMM_InletHostKind
Definition openswmm_infrastructure.h:608
@ SWMM_INLET_HOST_LINK
Definition openswmm_infrastructure.h:609
@ SWMM_INLET_HOST_NODE
Definition openswmm_infrastructure.h:610
SWMM_ENGINE_API int swmm_inlet_get_comment(SWMM_Engine engine, int idx, char *buf, int buflen)
Get/set the free-text description of an inlet design.
Definition openswmm_infrastructure_impl.cpp:729
SWMM_ENGINE_API int swmm_transect_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename an existing transect.
Definition openswmm_infrastructure_impl.cpp:259
SWMM_ENGINE_API int swmm_lid_index(SWMM_Engine engine, const char *id)
Look up a LID control's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:1049
SWMM_ENGINE_API int swmm_lid_count(SWMM_Engine engine)
Get the total number of LID controls in the model.
Definition openswmm_infrastructure_impl.cpp:1044
SWMM_ENGINE_API int swmm_lid_set_pavement(SWMM_Engine engine, int idx, double thick, double void_ratio, double frac_imperv, double ksat, double clog_factor, double regen_days)
Set the porous-pavement layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:1005
SWMM_ENGINE_API int swmm_lid_set_drain(SWMM_Engine engine, int idx, double coeff, double expon, double offset)
Set the underdrain properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:988
SWMM_ENGINE_API int swmm_inlet_usage_find_node(SWMM_Engine engine, int node_idx)
Definition openswmm_infrastructure_impl.cpp:758
SWMM_ENGINE_API int swmm_transect_set_bank_stations(SWMM_Engine engine, int idx, double x_left, double x_right)
Set the left and right bank stations for a transect.
Definition openswmm_infrastructure_impl.cpp:137
SWMM_ENGINE_API int swmm_transect_set_modifiers(SWMM_Engine engine, int idx, double x_factor, double y_factor, double length_factor)
Set the station, elevation, and meander modifiers for a transect.
Definition openswmm_infrastructure_impl.cpp:181
SWMM_ENGINE_API int swmm_transect_get_encroachment_stations(SWMM_Engine engine, int idx, double *x_left, double *x_right)
Get the left and right encroachment stations for a transect (BQ-TR-02).
Definition openswmm_infrastructure_impl.cpp:170
SWMM_ENGINE_API int swmm_transect_set_roughness(SWMM_Engine engine, int idx, double n_left, double n_right, double n_channel)
Set Manning's roughness for left overbank, right overbank, and channel.
Definition openswmm_infrastructure_impl.cpp:78
SWMM_ENGINE_API int swmm_transect_set_encroachment_stations(SWMM_Engine engine, int idx, double x_left, double x_right)
Set the left and right encroachment stations for a transect (BQ-TR-02).
Definition openswmm_infrastructure_impl.cpp:159
SWMM_ENGINE_API int swmm_inlet_set_params(SWMM_Engine engine, int idx, double length, double width, const char *grate_type, double open_area, double splash_veloc)
Set the geometric parameters for an inlet.
Definition openswmm_infrastructure_impl.cpp:483
SWMM_ENGINE_API int swmm_transect_set_comments(SWMM_Engine engine, int idx, const char *text)
Set the free-form comments / description for a transect.
Definition openswmm_infrastructure_impl.cpp:205
SWMM_ENGINE_API int swmm_lid_set_surface(SWMM_Engine engine, int idx, double storage, double roughness, double slope)
Set the surface layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:932
SWMM_ENGINE_API int swmm_inlet_get_design(SWMM_Engine engine, int idx, SWMM_InletDesign *out)
Read every field of an inlet design.
Definition openswmm_infrastructure_impl.cpp:597
SWMM_ENGINE_API const char * swmm_street_id(SWMM_Engine engine, int idx)
Get the string identifier of a street by index.
Definition openswmm_infrastructure_impl.cpp:407
SWMM_ENGINE_API int swmm_transect_get_modifiers(SWMM_Engine engine, int idx, double *x_factor, double *y_factor, double *length_factor)
Get the station, elevation, and meander modifiers for a transect.
Definition openswmm_infrastructure_impl.cpp:193
SWMM_ENGINE_API int swmm_transect_count(SWMM_Engine engine)
Get the total number of transects in the model.
Definition openswmm_infrastructure_impl.cpp:99
SWMM_InletCurveKind
Definition openswmm_infrastructure.h:534
@ SWMM_INLET_CURVE_NONE
Definition openswmm_infrastructure.h:535
@ SWMM_INLET_CURVE_RATING
Definition openswmm_infrastructure.h:537
@ SWMM_INLET_CURVE_DIVERSION
Definition openswmm_infrastructure.h:536
SWMM_ENGINE_API int swmm_lid_get_drainmat(SWMM_Engine engine, int idx, double *thick, double *void_frac, double *roughness)
Read the drainage-mat layer. Inverse of swmm_lid_set_drainmat. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1142
SWMM_ENGINE_API int swmm_lid_get_type(SWMM_Engine engine, int idx, int *type)
Read a LID control's type code. Inverse of the type argument to swmm_lid_add.
Definition openswmm_infrastructure_impl.cpp:1072
SWMM_ENGINE_API int swmm_street_count(SWMM_Engine engine)
Get the total number of street definitions in the model.
Definition openswmm_infrastructure_impl.cpp:392
SWMM_ENGINE_API int swmm_transect_get_station(SWMM_Engine engine, int idx, int station_idx, double *station, double *elevation)
Get a single station–elevation pair from a transect.
Definition openswmm_infrastructure_impl.cpp:234
SWMM_ENGINE_API int swmm_inlet_get_params(SWMM_Engine engine, int idx, double *length, double *width, char *grate_type, int grate_buflen, double *open_area, double *splash_veloc)
Read an inlet's geometric parameters. Inverse of swmm_inlet_set_params.
Definition openswmm_infrastructure_impl.cpp:539
SWMM_ENGINE_API int swmm_street_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename a street cross-section in place.
Definition openswmm_infrastructure_impl.cpp:331
SWMM_ENGINE_API int swmm_lid_usage_count(SWMM_Engine engine)
Total number of LID usage rows across all subcatchments.
Definition openswmm_infrastructure_impl.cpp:1182
SWMM_ENGINE_API int swmm_inlet_usage_remove(SWMM_Engine engine, int usage_idx)
Remove a usage row. Removing the row of an inlet junction leaves the node flagged is_inlet; the model...
Definition openswmm_infrastructure_impl.cpp:845
SWMM_ENGINE_API int swmm_street_add(SWMM_Engine engine, const char *id)
Add a new street cross-section definition.
Definition openswmm_infrastructure_impl.cpp:309
SWMM_ENGINE_API int swmm_lid_usage_remove(SWMM_Engine engine, int usage_idx)
Remove one LID usage row by global index.
Definition openswmm_infrastructure_impl.cpp:1210
SWMM_ENGINE_API int swmm_lid_get_storage(SWMM_Engine engine, int idx, double *thick, double *void_frac, double *ksat)
Read the storage layer properties. Inverse of swmm_lid_set_storage. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1105
SWMM_ENGINE_API int swmm_lid_usage_add(SWMM_Engine engine, int subcatch_idx, int lid_idx, int number, double area, double width, double init_sat, double from_imperv)
Assign a LID control to a subcatchment.
Definition openswmm_infrastructure_impl.cpp:1157
SWMM_ENGINE_API int swmm_inlet_usage_find_link(SWMM_Engine engine, int link_idx)
Definition openswmm_infrastructure_impl.cpp:753
SWMM_ENGINE_API int swmm_lid_set_storage(SWMM_Engine engine, int idx, double thick, double void_frac, double ksat)
Set the storage layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:971
SWMM_ENGINE_API int swmm_inlet_usage_get(SWMM_Engine engine, int usage_idx, SWMM_InletUsage *out)
Read a usage row.
Definition openswmm_infrastructure_impl.cpp:763
SWMM_ENGINE_API int swmm_inlet_count(SWMM_Engine engine)
Get the total number of inlet definitions in the model.
Definition openswmm_infrastructure_impl.cpp:504
SWMM_ENGINE_API int swmm_inlet_usage_set(SWMM_Engine engine, const SWMM_InletUsage *usage, int *usage_idx)
Create or replace the usage row for a host.
Definition openswmm_infrastructure_impl.cpp:785
SWMM_ENGINE_API const char * swmm_lid_id(SWMM_Engine engine, int idx)
Get the string identifier of a LID control by index.
Definition openswmm_infrastructure_impl.cpp:1056
SWMM_ENGINE_API int swmm_inlet_set_design(SWMM_Engine engine, int idx, const SWMM_InletDesign *design)
Overwrite every field of an inlet design (type may change).
Definition openswmm_infrastructure_impl.cpp:632
SWMM_ENGINE_API int swmm_lid_add(SWMM_Engine engine, const char *id, int type)
Add a new LID (Low Impact Development) control.
Definition openswmm_infrastructure_impl.cpp:878
SWMM_ENGINE_API int swmm_lid_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename an LID control in place.
Definition openswmm_infrastructure_impl.cpp:905
SWMM_ENGINE_API int swmm_street_get_params(SWMM_Engine engine, int idx, double *t_crown, double *h_curb, double *sx, double *n_road, double *gutter_depres, double *gutter_width, int *sides, double *back_width, double *back_slope, double *back_n)
Read back the geometric parameters of a street cross-section.
Definition openswmm_infrastructure_impl.cpp:414
SWMM_ENGINE_API int swmm_street_set_params(SWMM_Engine engine, int idx, double t_crown, double h_curb, double sx, double n_road, double gutter_depres, double gutter_width, int sides, double back_width, double back_slope, double back_n)
Set the geometric parameters for a street cross-section.
Definition openswmm_infrastructure_impl.cpp:369
SWMM_InletType
Definition openswmm_infrastructure.h:504
@ SWMM_INLET_CUSTOM
Definition openswmm_infrastructure.h:511
@ SWMM_INLET_DROP_GRATE
Definition openswmm_infrastructure.h:509
@ SWMM_INLET_COMBO
Definition openswmm_infrastructure.h:507
@ SWMM_INLET_DROP_CURB
Definition openswmm_infrastructure.h:510
@ SWMM_INLET_SLOTTED
Definition openswmm_infrastructure.h:508
@ SWMM_INLET_CURB
Definition openswmm_infrastructure.h:506
@ SWMM_INLET_GRATE
Definition openswmm_infrastructure.h:505
SWMM_ENGINE_API int swmm_transect_get_comments(SWMM_Engine engine, int idx, char *buf, int buflen)
Get the free-form comments / description for a transect.
Definition openswmm_infrastructure_impl.cpp:214
SWMM_ENGINE_API int swmm_lid_get_drain(SWMM_Engine engine, int idx, double *coeff, double *expon, double *offset)
Read the underdrain properties. Inverse of swmm_lid_set_drain. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1116
SWMM_ENGINE_API int swmm_transect_get_station_count(SWMM_Engine engine, int idx)
Get the number of station–elevation points stored for a transect.
Definition openswmm_infrastructure_impl.cpp:227
SWMM_ENGINE_API int swmm_inlet_set_comment(SWMM_Engine engine, int idx, const char *text)
Definition openswmm_infrastructure_impl.cpp:736
SWMM_ENGINE_API int swmm_inlet_add(SWMM_Engine engine, const char *id, const char *type)
Add a new inlet definition.
Definition openswmm_infrastructure_impl.cpp:441
SWMM_ENGINE_API int swmm_transect_clear_stations(SWMM_Engine engine, int idx)
Remove all station–elevation pairs from a transect.
Definition openswmm_infrastructure_impl.cpp:249
SWMM_ENGINE_API int swmm_transect_add(SWMM_Engine engine, const char *id)
Add a new transect for irregular cross-sections.
Definition openswmm_infrastructure_impl.cpp:44
SWMM_ENGINE_API int swmm_lid_set_soil(SWMM_Engine engine, int idx, double thick, double porosity, double fc, double wp, double ksat, double kslope)
Set the soil layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:949
SWMM_ENGINE_API int swmm_lid_get_soil(SWMM_Engine engine, int idx, double *thick, double *porosity, double *fc, double *wp, double *ksat, double *kslope)
Read the soil layer properties. Inverse of swmm_lid_set_soil. Any out-param may be null.
Definition openswmm_infrastructure_impl.cpp:1091
SWMM_ENGINE_API const char * swmm_inlet_id(SWMM_Engine engine, int idx)
Get the string identifier of an inlet by index.
Definition openswmm_infrastructure_impl.cpp:519
SWMM_ENGINE_API int swmm_lid_usage_get(SWMM_Engine engine, int usage_idx, int *subcatch_idx, int *lid_idx, int *number, double *area, double *width, double *init_sat, double *from_imperv, int *to_perv, double *from_perv)
Read one LID usage row by global index.
Definition openswmm_infrastructure_impl.cpp:1188
SWMM_ENGINE_API int swmm_street_index(SWMM_Engine engine, const char *id)
Look up a street's zero-based index by its string identifier.
Definition openswmm_infrastructure_impl.cpp:397
SWMM_ENGINE_API int swmm_inlet_usage_count(SWMM_Engine engine)
Definition openswmm_infrastructure_impl.cpp:748
SWMM_ENGINE_API int swmm_inlet_get_type(SWMM_Engine engine, int idx, char *buf, int buflen)
Read an inlet's type string (the value passed to swmm_inlet_add).
Definition openswmm_infrastructure_impl.cpp:559
SWMM_ENGINE_API int swmm_transect_remove(SWMM_Engine engine, int idx)
Remove a transect by index.
Definition openswmm_infrastructure_impl.cpp:280
SWMM_ENGINE_API const char * swmm_transect_id(SWMM_Engine engine, int idx)
Get the string identifier of a transect by index.
Definition openswmm_infrastructure_impl.cpp:114
SWMM_ENGINE_API int swmm_lid_set_drainmat(SWMM_Engine engine, int idx, double thick, double void_frac, double roughness)
Set the drainage-mat layer properties for a LID control.
Definition openswmm_infrastructure_impl.cpp:1027
SWMM_ENGINE_API int swmm_inlet_rename(SWMM_Engine engine, int idx, const char *new_id)
Rename an inlet design in place.
Definition openswmm_infrastructure_impl.cpp:450
SWMM_InletPlacement
Definition openswmm_infrastructure.h:541
@ SWMM_INLET_ON_SAG
Definition openswmm_infrastructure.h:544
@ SWMM_INLET_ON_GRADE
Definition openswmm_infrastructure.h:543
@ SWMM_INLET_AUTOMATIC
Definition openswmm_infrastructure.h:542
Complete description of an inlet design. All dimensions are in the project's display units (ft or m; ...
Definition openswmm_infrastructure.h:551
char curve_id[64]
Definition openswmm_infrastructure.h:567
double slot_length
Definition openswmm_infrastructure.h:564
int type
Definition openswmm_infrastructure.h:552
int grate_type
Definition openswmm_infrastructure.h:556
int throat
Definition openswmm_infrastructure.h:562
int curve_kind
Definition openswmm_infrastructure.h:568
double grate_width
Definition openswmm_infrastructure.h:555
double curb_length
Definition openswmm_infrastructure.h:560
double curb_height
Definition openswmm_infrastructure.h:561
double splash_veloc
Definition openswmm_infrastructure.h:558
double grate_length
Definition openswmm_infrastructure.h:554
double open_area
Definition openswmm_infrastructure.h:557
double slot_width
Definition openswmm_infrastructure.h:565
Definition openswmm_infrastructure.h:613
int capture_node_idx
Definition openswmm_infrastructure.h:617
int host_kind
Definition openswmm_infrastructure.h:614
double local_depress
Definition openswmm_infrastructure.h:621
double pct_clogged
Definition openswmm_infrastructure.h:619
int placement
Definition openswmm_infrastructure.h:623
int num_inlets
Definition openswmm_infrastructure.h:618
int design_idx
Definition openswmm_infrastructure.h:616
double local_width
Definition openswmm_infrastructure.h:622
int host_idx
Definition openswmm_infrastructure.h:615
double flow_limit
Definition openswmm_infrastructure.h:620