PostGIS  3.0.6dev-r@@SVN_REVISION@@
gserialized.c File Reference
#include "liblwgeom_internal.h"
#include "gserialized1.h"
#include "gserialized2.h"
Include dependency graph for gserialized.c:

Go to the source code of this file.

Macros

#define GFLAG_Z   0x01
 
#define GFLAG_M   0x02
 
#define GFLAG_BBOX   0x04
 
#define GFLAG_GEODETIC   0x08
 
#define GFLAG_VER_0   0x40
 
#define GFLAGS_GET_VERSION(gflags)   (((gflags) & GFLAG_VER_0)>>6)
 
#define G2FLAG_EXTENDED   0x10
 Return -1 if g1 is "less than" g2, 1 if g1 is "greater than" g2 and 0 if g1 and g2 are the "same". More...
 

Functions

lwflags_t gserialized_get_lwflags (const GSERIALIZED *g)
 Read the flags from a GSERIALIZED and return a standard lwflag integer. More...
 
GSERIALIZEDgserialized_set_gbox (GSERIALIZED *g, GBOX *gbox)
 Copy a new bounding box into an existing gserialized. More...
 
uint32_t gserialized_get_version (const GSERIALIZED *g)
 Return the serialization version. More...
 
GSERIALIZEDgserialized_drop_gbox (GSERIALIZED *g)
 Remove the bounding box from a GSERIALIZED. More...
 
int gserialized_get_gbox_p (const GSERIALIZED *g, GBOX *gbox)
 Read the box from the GSERIALIZED or calculate it if necessary. More...
 
int gserialized_fast_gbox_p (const GSERIALIZED *g, GBOX *gbox)
 Read the box from the GSERIALIZED or return #LWFAILURE if box is unavailable. More...
 
uint32_t gserialized_get_type (const GSERIALIZED *g)
 Extract the geometry type from the serialized form (it hides in the anonymous data area, so this is a handy function). More...
 
uint32_t gserialized_max_header_size (void)
 Returns the size in bytes to read from toast to get the basic information from a geometry: GSERIALIZED struct, bbox and type. More...
 
int32_t gserialized_hash (const GSERIALIZED *g)
 Returns a hash code for the srid/type/geometry information in the GSERIALIZED. More...
 
int32_t gserialized_get_srid (const GSERIALIZED *g)
 Extract the SRID from the serialized form (it is packed into three bytes so this is a handy function). More...
 
void gserialized_set_srid (GSERIALIZED *g, int32_t srid)
 Write the SRID into the serialized form (it is packed into three bytes so this is a handy function). More...
 
int gserialized_is_empty (const GSERIALIZED *g)
 Check if a GSERIALIZED is empty without deserializing first. More...
 
int gserialized_has_bbox (const GSERIALIZED *g)
 Check if a GSERIALIZED has a bounding box without deserializing first. More...
 
int gserialized_has_z (const GSERIALIZED *g)
 Check if a GSERIALIZED has a Z ordinate. More...
 
int gserialized_has_m (const GSERIALIZED *g)
 Check if a GSERIALIZED has an M ordinate. More...
 
int gserialized_is_geodetic (const GSERIALIZED *g)
 Check if a GSERIALIZED is a geography. More...
 
int gserialized_ndims (const GSERIALIZED *g)
 Return the number of dimensions (2, 3, 4) in a geometry. More...
 
GSERIALIZEDgserialized_from_lwgeom (LWGEOM *geom, size_t *size)
 Allocate a new GSERIALIZED from an LWGEOM. More...
 
size_t gserialized_from_lwgeom_size (const LWGEOM *geom)
 Return the memory size a GSERIALIZED will occupy for a given LWGEOM. More...
 
LWGEOMlwgeom_from_gserialized (const GSERIALIZED *g)
 Allocate a new LWGEOM from a GSERIALIZED. More...
 
const float * gserialized_get_float_box_p (const GSERIALIZED *g, size_t *ndims)
 Access to the float bounding box, if there is one. More...
 
int gserialized_peek_first_point (const GSERIALIZED *g, POINT4D *out_point)
 Pull the first point values of a GSERIALIZED. More...
 
static size_t gserialized_header_size (const GSERIALIZED *g)
 
static int gserialized_cmp_srid (const GSERIALIZED *g1, const GSERIALIZED *g2)
 
int gserialized_cmp (const GSERIALIZED *g1, const GSERIALIZED *g2)
 Return -1 if g1 is "less than" g2, 1 if g1 is "greater than" g2 and 0 if g1 and g2 are the "same". More...
 
uint64_t gserialized_get_sortable_hash (const GSERIALIZED *g)
 Return a sortable key based on gserialized. More...
 
void gserialized_error_if_srid_mismatch (const GSERIALIZED *g1, const GSERIALIZED *g2, const char *funcname)
 
void gserialized_error_if_srid_mismatch_reference (const GSERIALIZED *g1, const int32_t srid2, const char *funcname)