Remove pglwgeom_get_type

git-svn-id: http://svn.osgeo.org/postgis/trunk@8038 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
Paul Ramsey 2011-10-29 00:50:33 +00:00
parent 6e55225337
commit e0f79d979a
11 changed files with 57 additions and 64 deletions

View file

@ -203,12 +203,6 @@ pglwgeom_serialize(LWGEOM *in)
}
int
pglwgeom_get_type(const GSERIALIZED *lwgeom)
{
return gserialized_get_type(lwgeom);
}
int
pglwgeom_get_zm(const GSERIALIZED *lwgeom)
{

View file

@ -97,7 +97,6 @@ extern GSERIALIZED *pglwgeom_serialize(LWGEOM *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);

View file

@ -622,7 +622,7 @@ Datum geography_from_geometry(PG_FUNCTION_ARGS)
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);

View file

@ -223,7 +223,7 @@ Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS)
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");
}

View file

@ -95,7 +95,7 @@ Datum LWGEOM_line_interpolate_point(PG_FUNCTION_ARGS)
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();
@ -646,8 +646,8 @@ Datum ST_LineCrossingDirection(PG_FUNCTION_ARGS)
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 )
{
@ -675,7 +675,7 @@ Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS)
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 ) )
@ -727,7 +727,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
LWGEOM *olwgeom;
POINTARRAY *ipa, *opa;
GSERIALIZED *ret;
int type = pglwgeom_get_type(geom);
int type = gserialized_get_type(geom);
if ( from < 0 || from > 1 )
{
@ -877,12 +877,12 @@ Datum LWGEOM_line_locate_point(PG_FUNCTION_ARGS)
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();

View file

@ -432,7 +432,7 @@ Datum LWGEOM_force_collection(PG_FUNCTION_ARGS)
* 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);
@ -484,7 +484,7 @@ Datum LWGEOM_force_multi(PG_FUNCTION_ARGS)
** 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);
@ -1070,7 +1070,7 @@ Datum LWGEOM_collect(PG_FUNCTION_ARGS)
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) )
{
@ -1186,7 +1186,7 @@ Datum LWGEOM_collect_garray(PG_FUNCTION_ARGS)
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));
@ -1305,7 +1305,7 @@ Datum LWGEOM_line_from_mpoint(PG_FUNCTION_ARGS)
/* 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 */
@ -1399,7 +1399,7 @@ Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS)
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));
@ -1469,8 +1469,8 @@ Datum LWGEOM_makeline(PG_FUNCTION_ARGS)
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();
@ -1514,7 +1514,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
/* 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");
}
@ -1531,7 +1531,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
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);
}
@ -1800,7 +1800,7 @@ Datum LWGEOM_segmentize2d(PG_FUNCTION_ARGS)
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) ||
@ -1958,7 +1958,7 @@ Datum LWGEOM_same(PG_FUNCTION_ARGS)
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);
@ -2056,7 +2056,7 @@ Datum ST_IsCollection(PG_FUNCTION_ARGS)
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));
}
@ -2133,13 +2133,13 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
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();
@ -2187,7 +2187,7 @@ Datum LWGEOM_removepoint(PG_FUNCTION_ARGS)
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();

View file

@ -491,7 +491,7 @@ Datum LWGEOM_locate_between_m(PG_FUNCTION_ARGS)
* 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 )
{
@ -533,7 +533,7 @@ Datum ST_AddMeasure(PG_FUNCTION_ARGS)
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 )

View file

@ -308,7 +308,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
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 */
{
@ -364,7 +364,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
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 )
{
@ -486,7 +486,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
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
{
@ -502,7 +502,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
}
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 )
@ -1468,8 +1468,8 @@ Datum centroid(PG_FUNCTION_ARGS)
*/
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;
@ -1859,8 +1859,8 @@ Datum contains(PG_FUNCTION_ARGS)
** 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.");
@ -2101,8 +2101,8 @@ Datum covers(PG_FUNCTION_ARGS)
* 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.");
@ -2256,8 +2256,8 @@ Datum within(PG_FUNCTION_ARGS)
* 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.");
@ -2393,8 +2393,8 @@ Datum coveredby(PG_FUNCTION_ARGS)
* 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.");
@ -2598,8 +2598,8 @@ Datum intersects(PG_FUNCTION_ARGS)
* 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)))
{
@ -3031,7 +3031,7 @@ Datum geomequals(PG_FUNCTION_ARGS)
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 */
@ -3134,7 +3134,7 @@ Datum isring(PG_FUNCTION_ARGS)
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");
}

View file

@ -153,7 +153,7 @@ Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS)
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));

View file

@ -115,7 +115,7 @@ Datum LWGEOM_getTYPE(PG_FUNCTION_ARGS)
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);
@ -179,7 +179,7 @@ Datum geometry_geometrytype(PG_FUNCTION_ARGS)
/* 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);
@ -239,7 +239,7 @@ Datum LWGEOM_geometryn_collection(PG_FUNCTION_ARGS)
{
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;
@ -320,7 +320,7 @@ Datum LWGEOM_exteriorring_polygon(PG_FUNCTION_ARGS)
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.");
@ -454,7 +454,7 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
}
geom = (GSERIALIZED *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
type = pglwgeom_get_type(geom);
type = gserialized_get_type(geom);
if ( (type != POLYGONTYPE) && (type != CURVEPOLYTYPE) )
{
@ -566,7 +566,7 @@ Datum LWGEOM_x_point(PG_FUNCTION_ARGS)
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);
@ -595,7 +595,7 @@ Datum LWGEOM_y_point(PG_FUNCTION_ARGS)
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);
@ -626,7 +626,7 @@ Datum LWGEOM_z_point(PG_FUNCTION_ARGS)
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);
@ -659,7 +659,7 @@ Datum LWGEOM_m_point(PG_FUNCTION_ARGS)
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);

View file

@ -471,8 +471,8 @@ Datum geometry_distance_spheroid(PG_FUNCTION_ARGS)
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;