OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm_spatial.h
Go to the documentation of this file.
1
16#ifndef OPENSWMM_SPATIAL_H
17#define OPENSWMM_SPATIAL_H
18
19#include "openswmm_engine.h"
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/* =========================================================================
26 * CRS (Coordinate Reference System)
27 * ========================================================================= */
28
40SWMM_ENGINE_API int swmm_spatial_set_crs(SWMM_Engine engine, const char* crs);
41
49SWMM_ENGINE_API int swmm_spatial_get_crs(SWMM_Engine engine, char* buf, int buflen);
50
51/* =========================================================================
52 * Node coordinates
53 * ========================================================================= */
54
63SWMM_ENGINE_API int swmm_spatial_set_node_coord(SWMM_Engine engine, int idx, double x, double y);
64
73SWMM_ENGINE_API int swmm_spatial_get_node_coord(SWMM_Engine engine, int idx, double* x, double* y);
74
83SWMM_ENGINE_API int swmm_spatial_get_node_coords_bulk(SWMM_Engine engine, double* x_buf, double* y_buf, int count);
84
93SWMM_ENGINE_API int swmm_spatial_set_node_coords_bulk(SWMM_Engine engine, const double* x_buf, const double* y_buf, int count);
94
95/* =========================================================================
96 * Link coordinates (centroid or midpoint)
97 * ========================================================================= */
98
107SWMM_ENGINE_API int swmm_spatial_set_link_coord(SWMM_Engine engine, int idx, double x, double y);
108
117SWMM_ENGINE_API int swmm_spatial_get_link_coord(SWMM_Engine engine, int idx, double* x, double* y);
118
119/* =========================================================================
120 * Link vertices (polyline)
121 * ========================================================================= */
122
136SWMM_ENGINE_API int swmm_spatial_set_link_vertices(SWMM_Engine engine, int idx, const double* x, const double* y, int count);
137
145SWMM_ENGINE_API int swmm_spatial_get_link_vertex_count(SWMM_Engine engine, int idx, int* count);
146
156SWMM_ENGINE_API int swmm_spatial_get_link_vertices(SWMM_Engine engine, int idx, double* x, double* y, int max_count);
157
158/* =========================================================================
159 * Subcatchment coordinates (centroid)
160 * ========================================================================= */
161
170SWMM_ENGINE_API int swmm_spatial_set_subcatch_coord(SWMM_Engine engine, int idx, double x, double y);
171
180SWMM_ENGINE_API int swmm_spatial_get_subcatch_coord(SWMM_Engine engine, int idx, double* x, double* y);
181
182/* =========================================================================
183 * Subcatchment polygon
184 * ========================================================================= */
185
195SWMM_ENGINE_API int swmm_spatial_set_subcatch_polygon(SWMM_Engine engine, int idx, const double* x, const double* y, int count);
196
205
215SWMM_ENGINE_API int swmm_spatial_get_subcatch_polygon(SWMM_Engine engine, int idx, double* x, double* y, int max_count);
216
217/* =========================================================================
218 * Gage coordinates
219 * ========================================================================= */
220
229SWMM_ENGINE_API int swmm_spatial_set_gage_coord(SWMM_Engine engine, int idx, double x, double y);
230
239SWMM_ENGINE_API int swmm_spatial_get_gage_coord(SWMM_Engine engine, int idx, double* x, double* y);
240
241#ifdef __cplusplus
242} /* extern "C" */
243#endif
244
245#endif /* OPENSWMM_SPATIAL_H */
double * y
Definition odesolve.c:28
void * SWMM_Engine
Opaque handle to an OpenSWMM Engine instance.
Definition openswmm_callbacks.h:35
OpenSWMM Engine — primary transparent C API (master header).
#define SWMM_ENGINE_API
Definition openswmm_engine.h:87
SWMM_ENGINE_API int swmm_spatial_get_link_coord(SWMM_Engine engine, int idx, double *x, double *y)
Get the centroid/midpoint X/Y coordinate for a link.
Definition openswmm_spatial_impl.cpp:99
SWMM_ENGINE_API int swmm_spatial_get_subcatch_coord(SWMM_Engine engine, int idx, double *x, double *y)
Get the centroid X/Y coordinate for a subcatchment.
Definition openswmm_spatial_impl.cpp:160
SWMM_ENGINE_API int swmm_spatial_set_gage_coord(SWMM_Engine engine, int idx, double x, double y)
Set the X/Y coordinate for a rain gage.
Definition openswmm_spatial_impl.cpp:211
SWMM_ENGINE_API int swmm_spatial_get_subcatch_polygon_count(SWMM_Engine engine, int idx, int *count)
Get the number of polygon vertices for a subcatchment.
Definition openswmm_spatial_impl.cpp:185
SWMM_ENGINE_API int swmm_spatial_get_link_vertex_count(SWMM_Engine engine, int idx, int *count)
Get the number of polyline vertices for a link.
Definition openswmm_spatial_impl.cpp:124
SWMM_ENGINE_API int swmm_spatial_get_subcatch_polygon(SWMM_Engine engine, int idx, double *x, double *y, int max_count)
Get the polygon boundary vertices for a subcatchment.
Definition openswmm_spatial_impl.cpp:193
SWMM_ENGINE_API int swmm_spatial_get_link_vertices(SWMM_Engine engine, int idx, double *x, double *y, int max_count)
Get the polyline vertices for a link.
Definition openswmm_spatial_impl.cpp:132
SWMM_ENGINE_API int swmm_spatial_set_link_coord(SWMM_Engine engine, int idx, double x, double y)
Set the centroid/midpoint X/Y coordinate for a link.
Definition openswmm_spatial_impl.cpp:89
SWMM_ENGINE_API int swmm_spatial_get_node_coords_bulk(SWMM_Engine engine, double *x_buf, double *y_buf, int count)
Get X/Y coordinates for all nodes in a single call.
Definition openswmm_spatial_impl.cpp:65
SWMM_ENGINE_API int swmm_spatial_set_subcatch_polygon(SWMM_Engine engine, int idx, const double *x, const double *y, int count)
Set the polygon boundary vertices for a subcatchment.
Definition openswmm_spatial_impl.cpp:174
SWMM_ENGINE_API int swmm_spatial_set_link_vertices(SWMM_Engine engine, int idx, const double *x, const double *y, int count)
Set the polyline vertices for a link.
Definition openswmm_spatial_impl.cpp:113
SWMM_ENGINE_API int swmm_spatial_get_gage_coord(SWMM_Engine engine, int idx, double *x, double *y)
Get the X/Y coordinate for a rain gage.
Definition openswmm_spatial_impl.cpp:221
SWMM_ENGINE_API int swmm_spatial_set_subcatch_coord(SWMM_Engine engine, int idx, double x, double y)
Set the centroid X/Y coordinate for a subcatchment.
Definition openswmm_spatial_impl.cpp:150
SWMM_ENGINE_API int swmm_spatial_get_node_coord(SWMM_Engine engine, int idx, double *x, double *y)
Get the X/Y coordinates for a node.
Definition openswmm_spatial_impl.cpp:55
SWMM_ENGINE_API int swmm_spatial_set_node_coord(SWMM_Engine engine, int idx, double x, double y)
Set the X/Y coordinates for a node.
Definition openswmm_spatial_impl.cpp:45
SWMM_ENGINE_API int swmm_spatial_get_crs(SWMM_Engine engine, char *buf, int buflen)
Get the coordinate reference system string.
Definition openswmm_spatial_impl.cpp:30
SWMM_ENGINE_API int swmm_spatial_set_crs(SWMM_Engine engine, const char *crs)
Set the coordinate reference system string for the model.
Definition openswmm_spatial_impl.cpp:22
SWMM_ENGINE_API int swmm_spatial_set_node_coords_bulk(SWMM_Engine engine, const double *x_buf, const double *y_buf, int count)
Set X/Y coordinates for all nodes in a single call.
Definition openswmm_spatial_impl.cpp:75