PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ lwgeom_calculate_gbox_cartesian()

int lwgeom_calculate_gbox_cartesian ( const LWGEOM lwgeom,
GBOX gbox 
)
extern

Calculate the 2-4D bounding box of a geometry.

Z/M coordinates are honored for this calculation, though for curves they are not included in calculations of curvature.

Definition at line 752 of file gbox.c.

753{
754 if ( ! lwgeom ) return LW_FAILURE;
755 LWDEBUGF(4, "lwgeom_calculate_gbox got type (%d) - %s", lwgeom->type, lwtype_name(lwgeom->type));
756
757 switch (lwgeom->type)
758 {
759 case POINTTYPE:
760 return lwpoint_calculate_gbox_cartesian((LWPOINT *)lwgeom, gbox);
761 case LINETYPE:
762 return lwline_calculate_gbox_cartesian((LWLINE *)lwgeom, gbox);
763 case CIRCSTRINGTYPE:
765 case POLYGONTYPE:
766 return lwpoly_calculate_gbox_cartesian((LWPOLY *)lwgeom, gbox);
767 case TRIANGLETYPE:
768 return lwtriangle_calculate_gbox_cartesian((LWTRIANGLE *)lwgeom, gbox);
769 case COMPOUNDTYPE:
770 case CURVEPOLYTYPE:
771 case MULTIPOINTTYPE:
772 case MULTILINETYPE:
773 case MULTICURVETYPE:
774 case MULTIPOLYGONTYPE:
775 case MULTISURFACETYPE:
777 case TINTYPE:
778 case COLLECTIONTYPE:
780 }
781 /* Never get here, please. */
782 lwerror("unsupported type (%d) - %s", lwgeom->type, lwtype_name(lwgeom->type));
783 return LW_FAILURE;
784}
static int lwpoint_calculate_gbox_cartesian(LWPOINT *point, GBOX *gbox)
Definition gbox.c:691
static int lwpoly_calculate_gbox_cartesian(LWPOLY *poly, GBOX *gbox)
Definition gbox.c:709
static int lwtriangle_calculate_gbox_cartesian(LWTRIANGLE *triangle, GBOX *gbox)
Definition gbox.c:703
static int lwline_calculate_gbox_cartesian(LWLINE *line, GBOX *gbox)
Definition gbox.c:697
static int lwcircstring_calculate_gbox_cartesian(LWCIRCSTRING *curve, GBOX *gbox)
Definition gbox.c:660
static int lwcollection_calculate_gbox_cartesian(LWCOLLECTION *coll, GBOX *gbox)
Definition gbox.c:717
const char * lwtype_name(uint8_t type)
Return the type name string associated with a type number (e.g.
Definition lwutil.c:216
#define COLLECTIONTYPE
Definition liblwgeom.h:108
#define COMPOUNDTYPE
Definition liblwgeom.h:110
#define LW_FAILURE
Definition liblwgeom.h:96
#define CURVEPOLYTYPE
Definition liblwgeom.h:111
#define MULTILINETYPE
Definition liblwgeom.h:106
#define MULTISURFACETYPE
Definition liblwgeom.h:113
#define LINETYPE
Definition liblwgeom.h:103
#define MULTIPOINTTYPE
Definition liblwgeom.h:105
#define POINTTYPE
LWTYPE numbers, used internally by PostGIS.
Definition liblwgeom.h:102
#define TINTYPE
Definition liblwgeom.h:116
#define MULTIPOLYGONTYPE
Definition liblwgeom.h:107
#define POLYGONTYPE
Definition liblwgeom.h:104
#define POLYHEDRALSURFACETYPE
Definition liblwgeom.h:114
#define CIRCSTRINGTYPE
Definition liblwgeom.h:109
#define MULTICURVETYPE
Definition liblwgeom.h:112
#define TRIANGLETYPE
Definition liblwgeom.h:115
#define LWDEBUGF(level, msg,...)
Definition lwgeom_log.h:106
void void lwerror(const char *fmt,...) __attribute__((format(printf
Write a notice out to the error handler.
uint8_t type
Definition liblwgeom.h:462

References CIRCSTRINGTYPE, COLLECTIONTYPE, COMPOUNDTYPE, CURVEPOLYTYPE, LINETYPE, LW_FAILURE, lwcircstring_calculate_gbox_cartesian(), lwcollection_calculate_gbox_cartesian(), LWDEBUGF, lwerror(), lwline_calculate_gbox_cartesian(), lwpoint_calculate_gbox_cartesian(), lwpoly_calculate_gbox_cartesian(), lwtriangle_calculate_gbox_cartesian(), lwtype_name(), MULTICURVETYPE, MULTILINETYPE, MULTIPOINTTYPE, MULTIPOLYGONTYPE, MULTISURFACETYPE, POINTTYPE, POLYGONTYPE, POLYHEDRALSURFACETYPE, TINTYPE, TRIANGLETYPE, and LWGEOM::type.

Referenced by lwcollection_calculate_gbox_cartesian(), lwgeom_calculate_gbox(), lwgeom_geohash(), lwgeom_to_geojson(), and test_lwgeom_calculate_gbox().

Here is the call graph for this function:
Here is the caller graph for this function: