HydroCouple  2.0.0
HydroCouple Interface Definitions
Loading...
Searching...
No Matches
hydrocouplespatialwkb.h File Reference

Well-Known Binary (WKB) structures for OGC Simple Features Access geometry serialization. More...

#include <stdint.h>
#include <type_traits>
Include dependency graph for hydrocouplespatialwkb.h:

Go to the source code of this file.

Classes

struct  Point
 A 2D point with x and y coordinates. More...
 
struct  PointZ
 A 3D point with x, y, and z coordinates. More...
 
struct  PointM
 A 2D point with x, y, and an associated measure (m) value. More...
 
struct  PointZM
 A 3D point with x, y, z coordinates and an associated measure (m) value. More...
 
struct  LinearRing
 A closed sequence of 2D Points forming a ring boundary. More...
 
struct  LinearRingZ
 A closed sequence of 3D PointZ values forming a ring boundary. More...
 
struct  LinearRingM
 A closed sequence of PointM values forming a ring boundary with measures. More...
 
struct  LinearRingZM
 A closed sequence of PointZM values forming a ring boundary with z and measure. More...
 
struct  WKBPoint
 WKB-encoded 2D point geometry (type code 1). More...
 
struct  WKBPointZ
 WKB-encoded 3D point geometry with z-coordinate (type code 1001). More...
 
struct  WKBPointM
 WKB-encoded 2D point geometry with measure (type code 2001). More...
 
struct  WKBPointZM
 WKB-encoded 3D point geometry with z-coordinate and measure (type code 3001). More...
 
struct  WKBLineString
 WKB-encoded 2D line string geometry (type code 2). More...
 
struct  WKBLineStringZ
 WKB-encoded 3D line string geometry with z-coordinates (type code 1002). More...
 
struct  WKBLineStringM
 WKB-encoded 2D line string geometry with measures (type code 2002). More...
 
struct  WKBLineStringZM
 WKB-encoded 3D line string geometry with z-coordinates and measures (type code 3002). More...
 
struct  WKBPolygon
 WKB-encoded 2D polygon geometry defined by linear rings (type code 3). More...
 
struct  WKBPolygonZ
 WKB-encoded 3D polygon geometry with z-coordinates (type code 1003). More...
 
struct  WKBPolygonM
 WKB-encoded 2D polygon geometry with measures (type code 2003). More...
 
struct  WKBPolygonZM
 WKB-encoded 3D polygon geometry with z-coordinates and measures (type code 3003). More...
 
struct  WKBTriangle
 WKB-encoded 2D triangle geometry with exactly one exterior ring of four points (type code 17). More...
 
struct  WKBTriangleZ
 WKB-encoded 3D triangle geometry with z-coordinates (type code 1017). More...
 
struct  WKBTriangleM
 WKB-encoded 2D triangle geometry with measures (type code 2017). More...
 
struct  WKBTriangleZM
 WKB-encoded 3D triangle geometry with z-coordinates and measures (type code 3017). More...
 
struct  WKBPolyhedralSurface
 WKB-encoded 2D polyhedral surface as a collection of polygons (type code 15). More...
 
struct  WKBPolyhedralSurfaceZ
 WKB-encoded 3D polyhedral surface with z-coordinates (type code 1015). More...
 
struct  WKBPolyhedralSurfaceM
 WKB-encoded 2D polyhedral surface with measures (type code 2015). More...
 
struct  WKBPolyhedralSurfaceZM
 WKB-encoded 3D polyhedral surface with z-coordinates and measures (type code 3015). More...
 
struct  WKBTIN
 WKB-encoded 2D Triangulated Irregular Network (type code 16). More...
 
struct  WKBTINZ
 WKB-encoded 3D Triangulated Irregular Network with z-coordinates (type code 1016). More...
 
struct  WKBTINM
 WKB-encoded 2D Triangulated Irregular Network with measures (type code 2016). More...
 
struct  WKBTINZM
 WKB-encoded 3D Triangulated Irregular Network with z-coordinates and measures (type code 3016). More...
 
struct  WKBMultiPoint
 WKB-encoded 2D multi-point collection (type code 4). More...
 
struct  WKBMultiPointZ
 WKB-encoded 3D multi-point collection with z-coordinates (type code 1004). More...
 
struct  WKBMultiPointM
 WKB-encoded 2D multi-point collection with measures (type code 2004). More...
 
struct  WKBMultiPointZM
 WKB-encoded 3D multi-point collection with z-coordinates and measures (type code 3004). More...
 
struct  WKBMultiLineString
 WKB-encoded 2D multi-line-string collection (type code 5). More...
 
struct  WKBMultiLineStringZ
 WKB-encoded 3D multi-line-string collection with z-coordinates (type code 1005). More...
 
struct  WKBMultiLineStringM
 WKB-encoded 2D multi-line-string collection with measures (type code 2005). More...
 
struct  WKBMultiLineStringZM
 WKB-encoded 3D multi-line-string collection with z-coordinates and measures (type code 3005). More...
 
struct  WKBMultiPolygon
 WKB-encoded 2D multi-polygon collection (type code 6). More...
 
struct  WKBMultiPolygonZ
 WKB-encoded 3D multi-polygon collection with z-coordinates (type code 1006). More...
 
struct  WKBMultiPolygonM
 WKB-encoded 2D multi-polygon collection with measures (type code 2006). More...
 
struct  WKBMultiPolygonZM
 WKB-encoded 3D multi-polygon collection with z-coordinates and measures (type code 3006). More...
 
struct  WKBGeometryCollection
 WKB-encoded heterogeneous 2D geometry collection (type code 7). More...
 
struct  WKBGeometryCollectionZ
 WKB-encoded heterogeneous 3D geometry collection with z-coordinates (type code 1007). More...
 
struct  WKBGeometryCollectionM
 WKB-encoded heterogeneous 2D geometry collection with measures (type code 2007). More...
 
struct  WKBGeometryCollectionZM
 WKB-encoded heterogeneous 3D geometry collection with z-coordinates and measures (type code 3007). More...
 
union  WKBGeometry
 Type-punning union over all 2D WKB geometry structs. More...
 
union  WKBGeometryZ
 Type-punning union over all 3D (Z) WKB geometry structs. More...
 
union  WKBGeometryM
 Type-punning union over all 2D+M WKB geometry structs. More...
 
union  WKBGeometryZM
 Type-punning union over all 3D+M WKB geometry structs. More...
 
struct  CoordinateBuffer2D
 Non-owning SoA view over 2D coordinate data (x, y stored in separate arrays). More...
 
struct  CoordinateBuffer3D
 Non-owning SoA view over 3D coordinate data (x, y, z stored in separate arrays). More...
 
struct  CoordinateBufferM
 Non-owning SoA view over 2D+M coordinate data (x, y, m stored in separate arrays). More...
 
struct  CoordinateBuffer3DM
 Non-owning SoA view over 3D+M coordinate data (x, y, z, m stored in separate arrays). More...
 

Enumerations

enum class  WKBByteOrder : uint8_t {
  wkbXDR = 0 ,
  wkbNDR = 1
}
 The WKBByteOrder enum class indicates the byte order of serialized WKB data. More...
 
enum class  WKBGeometryType : uint32_t {
  wkbPoint = 1 ,
  wkbLineString = 2 ,
  wkbPolygon = 3 ,
  wkbTriangle = 17 ,
  wkbMultiPoint = 4 ,
  wkbMultiLineString = 5 ,
  wkbMultiPolygon = 6 ,
  wkbGeometryCollection = 7 ,
  wkbPolyhedralSurface = 15 ,
  wkbTIN = 16 ,
  wkbPointZ = 1001 ,
  wkbLineStringZ = 1002 ,
  wkbPolygonZ = 1003 ,
  wkbTriangleZ = 1017 ,
  wkbMultiPointZ = 1004 ,
  wkbMultiLineStringZ = 1005 ,
  wkbMultiPolygonZ = 1006 ,
  wkbGeometryCollectionZ = 1007 ,
  wkbPolyhedralSurfaceZ = 1015 ,
  wkbTINZ = 1016 ,
  wkbPointM = 2001 ,
  wkbLineStringM = 2002 ,
  wkbPolygonM = 2003 ,
  wkbTriangleM = 2017 ,
  wkbMultiPointM = 2004 ,
  wkbMultiLineStringM = 2005 ,
  wkbMultiPolygonM = 2006 ,
  wkbGeometryCollectionM = 2007 ,
  wkbPolyhedralSurfaceM = 2015 ,
  wkbTINM = 2016 ,
  wkbPointZM = 3001 ,
  wkbLineStringZM = 3002 ,
  wkbPolygonZM = 3003 ,
  wkbTriangleZM = 3017 ,
  wkbMultiPointZM = 3004 ,
  wkbMultiLineStringZM = 3005 ,
  wkbMultiPolygonZM = 3006 ,
  wkbGeometryCollectionZM = 3007 ,
  wkbPolyhedralSurfaceZM = 3015 ,
  wkbTinZM = 3016
}
 The WKBGeometryType enum class enumerates OGC WKB geometry type codes. More...
 

Detailed Description

Well-Known Binary (WKB) structures for OGC Simple Features Access geometry serialization.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
Version
2.0.0

This header file contains the C-compatible structures for parsing and constructing OGC WKB (Well-Known Binary) geometry representations as defined by the Simple Features Access (SFA) specification. It includes Point, LineString, Polygon, Triangle, PolyhedralSurface, TIN, and collection types with 2D, Z, M, and ZM coordinate variants, as well as Structure-of-Arrays coordinate buffers for efficient batch processing.

License\n
This file and its associated files and libraries are free software. You can redistribute it and/or modify it under the terms of the MIT License as published by the Free Software Foundation. This file and its associated files are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MIT License for details.
Date
2014-2025

Enumeration Type Documentation

◆ WKBByteOrder

enum class WKBByteOrder : uint8_t
strong

The WKBByteOrder enum class indicates the byte order of serialized WKB data.

Enumerator
wkbXDR 

Big Endian.

wkbNDR 

Little Endian.

◆ WKBGeometryType

enum class WKBGeometryType : uint32_t
strong

The WKBGeometryType enum class enumerates OGC WKB geometry type codes.

Enumerator
wkbPoint 
wkbLineString 
wkbPolygon 
wkbTriangle 
wkbMultiPoint 
wkbMultiLineString 
wkbMultiPolygon 
wkbGeometryCollection 
wkbPolyhedralSurface 
wkbTIN 
wkbPointZ 
wkbLineStringZ 
wkbPolygonZ 
wkbTriangleZ 
wkbMultiPointZ 
wkbMultiLineStringZ 
wkbMultiPolygonZ 
wkbGeometryCollectionZ 
wkbPolyhedralSurfaceZ 
wkbTINZ 
wkbPointM 
wkbLineStringM 
wkbPolygonM 
wkbTriangleM 
wkbMultiPointM 
wkbMultiLineStringM 
wkbMultiPolygonM 
wkbGeometryCollectionM 
wkbPolyhedralSurfaceM 
wkbTINM 
wkbPointZM 
wkbLineStringZM 
wkbPolygonZM 
wkbTriangleZM 
wkbMultiPointZM 
wkbMultiLineStringZM 
wkbMultiPolygonZM 
wkbGeometryCollectionZM 
wkbPolyhedralSurfaceZM 
wkbTinZM