PostGIS  2.4.9dev-r@@SVN_REVISION@@
lwout_twkb.h File Reference
#include "liblwgeom_internal.h"
#include "lwgeom_log.h"
#include <limits.h>
#include "bytebuffer.h"
Include dependency graph for lwout_twkb.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  TWKB_GLOBALS
 
struct  TWKB_STATE
 

Macros

#define MAX_N_DIMS   4
 
#define MAX_BBOX_SIZE   64
 
#define MAX_SIZE_SIZE   8
 
#define FIRST_BYTE_SET_BBOXES(flag, bool)   ((flag) = ((bool) ? (flag) | 0x01 : (flag) & (~0x01)))
 Header true/false flags. More...
 
#define FIRST_BYTE_SET_SIZES(flag, bool)   ((flag) = ((bool) ? (flag) | 0x02 : (flag) & (~0x02)))
 
#define FIRST_BYTE_SET_IDLIST(flag, bool)   ((flag) = ((bool) ? (flag) | 0x04 : (flag) & (~0x04)))
 
#define FIRST_BYTE_SET_EXTENDED(flag, bool)   ((flag) = ((bool) ? (flag) | 0x08 : (flag) & (~0x08)))
 
#define FIRST_BYTE_SET_EMPTY(flag, bool)   ((flag) = ((bool) ? (flag) | 0x10 : (flag) & (~0x10)))
 
#define TYPE_PREC_SET_TYPE(flag, type)   ((flag) = ((flag) & 0xF0) | (((type) & 0x0F)))
 Macros for manipulating the 'type_precision' int. More...
 
#define TYPE_PREC_SET_PREC(flag, prec)   ((flag) = ((flag) & 0x0F) | (((prec) & 0x0F) << 4))
 
#define HIGHER_DIM_SET_HASZ(flag, bool)   ((flag) = ((bool) ? (flag) | 0x01 : (flag) & (~0x01)))
 
#define HIGHER_DIM_SET_HASM(flag, bool)   ((flag) = ((bool) ? (flag) | 0x02 : (flag) & (~0x02)))
 
#define HIGHER_DIM_SET_PRECZ(flag, prec)   ((flag) = ((flag) & 0xE3) | (((prec) & 0x07) << 2))
 
#define HIGHER_DIM_SET_PRECM(flag, prec)   ((flag) = ((flag) & 0x1F) | (((prec) & 0x07) << 5))
 

Functions

static int lwgeom_to_twkb_buf (const LWGEOM *geom, TWKB_GLOBALS *global_values, TWKB_STATE *ts)
 
static int lwpoint_to_twkb_buf (const LWPOINT *line, TWKB_GLOBALS *global_values, TWKB_STATE *ts)
 
static int lwline_to_twkb_buf (const LWLINE *line, TWKB_GLOBALS *global_values, TWKB_STATE *ts)
 
static int lwpoly_to_twkb_buf (const LWPOLY *poly, TWKB_GLOBALS *global_values, TWKB_STATE *ts)
 
static int lwcollection_to_twkb_buf (const LWCOLLECTION *col, TWKB_GLOBALS *global_values, TWKB_STATE *ts)
 
static int lwgeom_write_to_buffer (const LWGEOM *geom, TWKB_GLOBALS *global_values, TWKB_STATE *parent_state)