}
-int
-pglwgeom_get_type(const GSERIALIZED *lwgeom)
-{
- return gserialized_get_type(lwgeom);
-}
-
int
pglwgeom_get_zm(const GSERIALIZED *lwgeom)
{
/* GSERIALIZED SRID get/set */
-extern int pglwgeom_get_type(const GSERIALIZED *lwgeom);
extern int pglwgeom_get_zm(const GSERIALIZED *lwgeom);
extern GSERIALIZED* pglwgeom_drop_bbox(GSERIALIZED *geom);
extern size_t pglwgeom_size(const GSERIALIZED *geom);
LWGEOM *lwgeom = NULL;
GSERIALIZED *g_ser = NULL;
- geography_valid_type(pglwgeom_get_type(geom));
+ geography_valid_type(gserialized_get_type(geom));
lwgeom = lwgeom_from_gserialized(geom);
oldcontext = MemoryContextSwitchTo(newcontext);
pglwgeom = (GSERIALIZED *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(pglwgeom) != POLYGONTYPE )
+ if ( gserialized_get_type(pglwgeom) != POLYGONTYPE )
{
lwerror("Input is not a polygon");
}
PG_RETURN_NULL();
}
- if ( pglwgeom_get_type(geom) != LINETYPE )
+ if ( gserialized_get_type(geom) != LINETYPE )
{
elog(ERROR,"line_interpolate_point: 1st arg isnt a line");
PG_RETURN_NULL();
error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
- type1 = pglwgeom_get_type(geom1);
- type2 = pglwgeom_get_type(geom2);
+ type1 = gserialized_get_type(geom1);
+ type2 = gserialized_get_type(geom2);
if ( type1 != LINETYPE || type2 != LINETYPE )
{
double to = PG_GETARG_FLOAT8(2);
LWCOLLECTION *geom_out = NULL;
LWGEOM *line_in = NULL;
- char geomtype = pglwgeom_get_type(geom_in);
+ char geomtype = gserialized_get_type(geom_in);
static int ordinate = 2; /* Z */
if ( ! ( geomtype == LINETYPE || geomtype == MULTILINETYPE ) )
LWGEOM *olwgeom;
POINTARRAY *ipa, *opa;
GSERIALIZED *ret;
- int type = pglwgeom_get_type(geom);
+ int type = gserialized_get_type(geom);
if ( from < 0 || from > 1 )
{
POINT2D p;
double ret;
- if ( pglwgeom_get_type(geom1) != LINETYPE )
+ if ( gserialized_get_type(geom1) != LINETYPE )
{
elog(ERROR,"line_locate_point: 1st arg isnt a line");
PG_RETURN_NULL();
}
- if ( pglwgeom_get_type(geom2) != POINTTYPE )
+ if ( gserialized_get_type(geom2) != POINTTYPE )
{
elog(ERROR,"line_locate_point: 2st arg isnt a point");
PG_RETURN_NULL();
* in input. If bbox cache is not there we'll need to handle
* automatic bbox addition FOR_COMPLEX_GEOMS.
*/
- if ( pglwgeom_get_type(geom) == COLLECTIONTYPE &&
+ if ( gserialized_get_type(geom) == COLLECTIONTYPE &&
pglwgeom_has_bbox(geom) )
{
PG_RETURN_POINTER(geom);
** in input. If bbox cache is not there we'll need to handle
** automatic bbox addition FOR_COMPLEX_GEOMS.
*/
- if ( lwtype_is_collection(pglwgeom_get_type(geom)) &&
+ if ( lwtype_is_collection(gserialized_get_type(geom)) &&
pglwgeom_has_bbox(geom) )
{
PG_RETURN_POINTER(geom);
pglwgeom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
pglwgeom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
- POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(pglwgeom_get_type(pglwgeom1)), lwtype_name(pglwgeom_get_type(pglwgeom2)));
+ POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(gserialized_get_type(pglwgeom1)), lwtype_name(gserialized_get_type(pglwgeom2)));
if ( FLAGS_GET_ZM(pglwgeom1->flags) != FLAGS_GET_ZM(pglwgeom2->flags) )
{
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
{
GSERIALIZED *geom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
- uint8_t intype = pglwgeom_get_type(geom);
+ uint8_t intype = gserialized_get_type(geom);
offset += INTALIGN(VARSIZE(geom));
/* Get input GSERIALIZED and deserialize it */
ingeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(ingeom) != MULTIPOINTTYPE )
+ if ( gserialized_get_type(ingeom) != MULTIPOINTTYPE )
{
elog(ERROR, "makeline: input must be a multipoint");
PG_RETURN_NULL(); /* input is not a multipoint */
GSERIALIZED *geom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
offset += INTALIGN(VARSIZE(geom));
- if ( pglwgeom_get_type(geom) != POINTTYPE ) continue;
+ if ( gserialized_get_type(geom) != POINTTYPE ) continue;
lwpoints[npoints++] =
lwgeom_as_lwpoint(lwgeom_from_gserialized(geom));
pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
pglwg2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
- if ( pglwgeom_get_type(pglwg1) != POINTTYPE ||
- pglwgeom_get_type(pglwg2) != POINTTYPE )
+ if ( gserialized_get_type(pglwg1) != POINTTYPE ||
+ gserialized_get_type(pglwg2) != POINTTYPE )
{
elog(ERROR, "Input geometries must be points");
PG_RETURN_NULL();
/* Get input shell */
pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(pglwg1) != LINETYPE )
+ if ( gserialized_get_type(pglwg1) != LINETYPE )
{
lwerror("Shell is not a line");
}
GSERIALIZED *g = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
LWLINE *hole;
offset += INTALIGN(VARSIZE(g));
- if ( pglwgeom_get_type(g) != LINETYPE )
+ if ( gserialized_get_type(g) != LINETYPE )
{
lwerror("Hole %d is not a line", i);
}
ingeom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
dist = PG_GETARG_FLOAT8(1);
- type = pglwgeom_get_type(ingeom);
+ type = gserialized_get_type(ingeom);
/* Avoid types we cannot segmentize. */
if ( (type == POINTTYPE) ||
LWGEOM *lwg1, *lwg2;
bool result;
- if ( pglwgeom_get_type(g1) != pglwgeom_get_type(g2) )
+ if ( gserialized_get_type(g1) != gserialized_get_type(g2) )
{
PG_FREE_IF_COPY(g1, 0);
PG_FREE_IF_COPY(g2, 1);
geom = (GSERIALIZED*)PG_DETOAST_DATUM_SLICE(PG_GETARG_DATUM(0), 0, size);
- type = pglwgeom_get_type(geom);
+ type = gserialized_get_type(geom);
PG_RETURN_BOOL(lwtype_is_collection(type));
}
where = PG_GETARG_INT32(2);
}
- if ( pglwgeom_get_type(pglwg1) != LINETYPE )
+ if ( gserialized_get_type(pglwg1) != LINETYPE )
{
elog(ERROR, "First argument must be a LINESTRING");
PG_RETURN_NULL();
}
- if ( pglwgeom_get_type(pglwg2) != POINTTYPE )
+ if ( gserialized_get_type(pglwg2) != POINTTYPE )
{
elog(ERROR, "Second argument must be a POINT");
PG_RETURN_NULL();
pglwg1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
which = PG_GETARG_INT32(1);
- if ( pglwgeom_get_type(pglwg1) != LINETYPE )
+ if ( gserialized_get_type(pglwg1) != LINETYPE )
{
elog(ERROR, "First argument must be a LINESTRING");
PG_RETURN_NULL();
* Raise an error if input is a polygon, a multipolygon
* or a collection
*/
- type = pglwgeom_get_type(gin);
+ type = gserialized_get_type(gin);
if ( type == POLYGONTYPE || type == MULTIPOLYGONTYPE || type == COLLECTIONTYPE )
{
double start_measure = PG_GETARG_FLOAT8(1);
double end_measure = PG_GETARG_FLOAT8(2);
LWGEOM *lwin, *lwout;
- int type = pglwgeom_get_type(gin);
+ int type = gserialized_get_type(gin);
/* Raise an error if input is not a linestring or multilinestring */
if ( type != LINETYPE && type != MULTILINETYPE )
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
{
GSERIALIZED *pggeom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
- int pgtype = pglwgeom_get_type(pggeom);
+ int pgtype = gserialized_get_type(pggeom);
offset += INTALIGN(VARSIZE(pggeom));
if ( ! gotsrid ) /* Initialize SRID */
{
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
{
GSERIALIZED *pggeom = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
- int pgtype = pglwgeom_get_type(pggeom);
+ int pgtype = gserialized_get_type(pggeom);
offset += INTALIGN(VARSIZE(pggeom));
if ( pgtype == POLYGONTYPE )
{
PG_RETURN_NULL();
}
srid = gserialized_get_srid(geom);
- POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(pglwgeom_get_type(geom)));
+ POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(gserialized_get_type(geom)));
}
else
{
}
POSTGIS_DEBUGF(3, "unite_garray(%d): adding geom %d to union (%s)",
- call, i, lwtype_name(pglwgeom_get_type(geom)));
+ call, i, lwtype_name(gserialized_get_type(geom)));
g2 = GEOSUnion(g1, geos_result);
if ( g2 == NULL )
*/
void errorIfGeometryCollection(GSERIALIZED *g1, GSERIALIZED *g2)
{
- int t1 = pglwgeom_get_type(g1);
- int t2 = pglwgeom_get_type(g2);
+ int t1 = gserialized_get_type(g1);
+ int t2 = gserialized_get_type(g2);
char *hintmsg;
char *hintwkt;
** short-circuit 2: if geom2 is a point and geom1 is a polygon
** call the point-in-polygon function.
*/
- type1 = pglwgeom_get_type(geom1);
- type2 = pglwgeom_get_type(geom2);
+ type1 = gserialized_get_type(geom1);
+ type2 = gserialized_get_type(geom2);
if ((type1 == POLYGONTYPE || type1 == MULTIPOLYGONTYPE) && type2 == POINTTYPE)
{
POSTGIS_DEBUG(3, "Point in Polygon test requested...short-circuiting.");
* short-circuit 2: if geom2 is a point and geom1 is a polygon
* call the point-in-polygon function.
*/
- type1 = pglwgeom_get_type(geom1);
- type2 = pglwgeom_get_type(geom2);
+ type1 = gserialized_get_type(geom1);
+ type2 = gserialized_get_type(geom2);
if ((type1 == POLYGONTYPE || type1 == MULTIPOLYGONTYPE) && type2 == POINTTYPE)
{
POSTGIS_DEBUG(3, "Point in Polygon test requested...short-circuiting.");
* short-circuit 2: if geom1 is a point and geom2 is a polygon
* call the point-in-polygon function.
*/
- type1 = pglwgeom_get_type(geom1);
- type2 = pglwgeom_get_type(geom2);
+ type1 = gserialized_get_type(geom1);
+ type2 = gserialized_get_type(geom2);
if ((type2 == POLYGONTYPE || type2 == MULTIPOLYGONTYPE) && type1 == POINTTYPE)
{
POSTGIS_DEBUG(3, "Point in Polygon test requested...short-circuiting.");
* short-circuit 2: if geom1 is a point and geom2 is a polygon
* call the point-in-polygon function.
*/
- type1 = pglwgeom_get_type(geom1);
- type2 = pglwgeom_get_type(geom2);
+ type1 = gserialized_get_type(geom1);
+ type2 = gserialized_get_type(geom2);
if ((type2 == POLYGONTYPE || type2 == MULTIPOLYGONTYPE) && type1 == POINTTYPE)
{
POSTGIS_DEBUG(3, "Point in Polygon test requested...short-circuiting.");
* short-circuit 2: if the geoms are a point and a polygon,
* call the point_outside_polygon function.
*/
- type1 = pglwgeom_get_type(geom1);
- type2 = pglwgeom_get_type(geom2);
+ type1 = gserialized_get_type(geom1);
+ type2 = gserialized_get_type(geom2);
if ( (type1 == POINTTYPE && (type2 == POLYGONTYPE || type2 == MULTIPOLYGONTYPE)) ||
(type2 == POINTTYPE && (type1 == POLYGONTYPE || type1 == MULTIPOLYGONTYPE)))
{
error_if_srid_mismatch(gserialized_get_srid(geom1), gserialized_get_srid(geom2));
/* Different types can't be equal */
- if( pglwgeom_get_type(geom1) != pglwgeom_get_type(geom2) )
+ if( gserialized_get_type(geom1) != gserialized_get_type(geom2) )
PG_RETURN_BOOL(FALSE);
/* Empty == Empty */
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if (pglwgeom_get_type(geom) != LINETYPE)
+ if (gserialized_get_type(geom) != LINETYPE)
{
elog(ERROR,"isring() should only be called on a LINE");
}
char * formatted_text;
/* Only supports points. */
- uint8_t geom_type = pglwgeom_get_type(pg_lwgeom);
+ uint8_t geom_type = gserialized_get_type(pg_lwgeom);
if (POINTTYPE != geom_type)
{
lwerror("Only points are supported, you tried type %s.", lwtype_name(geom_type));
text_ob = lwalloc(20+VARHDRSZ);
result = text_ob+VARHDRSZ;
- type = pglwgeom_get_type(lwgeom);
+ type = gserialized_get_type(lwgeom);
memset(VARDATA(text_ob), 0, 20);
/* Build up the output string */
strncat(type_str, "ST_", 32);
- strncat(type_str, lwtype_name(pglwgeom_get_type(lwgeom)), 32);
+ strncat(type_str, lwtype_name(gserialized_get_type(lwgeom)), 32);
/* Build a text type to store things in */
type_text = cstring2text(type_str);
{
GSERIALIZED *geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
GSERIALIZED *result;
- int type = pglwgeom_get_type(geom);
+ int type = gserialized_get_type(geom);
int32 idx;
LWCOLLECTION *coll;
LWGEOM *subgeom;
LWGEOM *lwgeom;
LWLINE *line;
GBOX *bbox=NULL;
- int type = pglwgeom_get_type(geom);
+ int type = gserialized_get_type(geom);
POSTGIS_DEBUG(2, "LWGEOM_exteriorring_polygon called.");
}
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- type = pglwgeom_get_type(geom);
+ type = gserialized_get_type(geom);
if ( (type != POLYGONTYPE) && (type != CURVEPOLYTYPE) )
{
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(geom) != POINTTYPE )
+ if ( gserialized_get_type(geom) != POINTTYPE )
lwerror("Argument to X() must be a point");
lwgeom = lwgeom_from_gserialized(geom);
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(geom) != POINTTYPE )
+ if ( gserialized_get_type(geom) != POINTTYPE )
lwerror("Argument to Y() must be a point");
lwgeom = lwgeom_from_gserialized(geom);
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(geom) != POINTTYPE )
+ if ( gserialized_get_type(geom) != POINTTYPE )
lwerror("Argument to Z() must be a point");
lwgeom = lwgeom_from_gserialized(geom);
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
- if ( pglwgeom_get_type(geom) != POINTTYPE )
+ if ( gserialized_get_type(geom) != POINTTYPE )
lwerror("Argument to M() must be a point");
lwgeom = lwgeom_from_gserialized(geom);
GSERIALIZED *geom1 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
GSERIALIZED *geom2 = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
SPHEROID *sphere = (SPHEROID *)PG_GETARG_POINTER(2);
- int type1 = pglwgeom_get_type(geom1);
- int type2 = pglwgeom_get_type(geom2);
+ int type1 = gserialized_get_type(geom1);
+ int type2 = gserialized_get_type(geom2);
bool use_spheroid = PG_GETARG_BOOL(3);
LWGEOM *lwgeom1, *lwgeom2;
double distance;