mirror of
https://git.osgeo.org/gitea/postgis/postgis
synced 2024-10-25 01:22:47 +00:00
Cut down reliance on TYPE_GETTYPE macro in favor of a function we can repoint later in the serialization change process
git-svn-id: http://svn.osgeo.org/postgis/trunk@6306 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
parent
9d0bf60c95
commit
a0b3762501
|
@ -441,11 +441,11 @@ Datum BOX3D_construct(PG_FUNCTION_ARGS)
|
|||
LWGEOM *minpoint, *maxpoint;
|
||||
POINT3DZ minp, maxp;
|
||||
|
||||
minpoint = lwgeom_deserialize(SERIALIZED_FORM(min));
|
||||
maxpoint = lwgeom_deserialize(SERIALIZED_FORM(max));
|
||||
minpoint = pglwgeom_deserialize(min);
|
||||
maxpoint = pglwgeom_deserialize(max);
|
||||
|
||||
if ( TYPE_GETTYPE(minpoint->type) != POINTTYPE ||
|
||||
TYPE_GETTYPE(maxpoint->type) != POINTTYPE )
|
||||
if ( minpoint->type != POINTTYPE ||
|
||||
maxpoint->type != POINTTYPE )
|
||||
{
|
||||
elog(ERROR, "BOX3D_construct: args must be points");
|
||||
PG_RETURN_NULL();
|
||||
|
|
|
@ -1012,7 +1012,7 @@ chip_draw_lwgeom(CHIP *chip, LWGEOM *lwgeom, PIXEL *pixel, int op)
|
|||
if ( chip->bvol.ymin > lwgeom->bbox->ymax ) return;
|
||||
}
|
||||
|
||||
switch (TYPE_GETTYPE(lwgeom->type) )
|
||||
switch (lwgeom->type)
|
||||
{
|
||||
case POINTTYPE:
|
||||
chip_draw_lwpoint(chip, (LWPOINT*)lwgeom, pixel, op);
|
||||
|
@ -1022,7 +1022,7 @@ chip_draw_lwgeom(CHIP *chip, LWGEOM *lwgeom, PIXEL *pixel, int op)
|
|||
return;
|
||||
case POLYGONTYPE:
|
||||
lwerror("%s geometry unsupported by draw operation",
|
||||
lwtype_name(TYPE_GETTYPE(lwgeom->type)));
|
||||
lwtype_name(lwgeom->type));
|
||||
case MULTIPOINTTYPE:
|
||||
case MULTILINETYPE:
|
||||
case MULTIPOLYGONTYPE:
|
||||
|
|
|
@ -16,7 +16,7 @@ lwgeom_summary(const LWGEOM *lwgeom, int offset)
|
|||
{
|
||||
char *result;
|
||||
|
||||
switch (TYPE_GETTYPE(lwgeom->type))
|
||||
switch (lwgeom->type)
|
||||
{
|
||||
case POINTTYPE:
|
||||
return lwpoint_summary((LWPOINT *)lwgeom, offset);
|
||||
|
@ -54,7 +54,7 @@ lwpoint_summary(LWPOINT *point, int offset)
|
|||
result = lwalloc(128+offset);
|
||||
|
||||
sprintf(result, "%*.s%s[%s]\n",
|
||||
offset, pad, lwtype_name(TYPE_GETTYPE(point->type)),
|
||||
offset, pad, lwtype_name(point->type),
|
||||
lwgeom_typeflags(point->type));
|
||||
return result;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ lwline_summary(LWLINE *line, int offset)
|
|||
result = lwalloc(128+offset);
|
||||
|
||||
sprintf(result, "%*.s%s[%s] with %d points\n",
|
||||
offset, pad, lwtype_name(TYPE_GETTYPE(line->type)),
|
||||
offset, pad, lwtype_name(line->type),
|
||||
lwgeom_typeflags(line->type),
|
||||
line->points->npoints);
|
||||
return result;
|
||||
|
@ -89,7 +89,7 @@ lwcollection_summary(LWCOLLECTION *col, int offset)
|
|||
result = (char *)lwalloc(size);
|
||||
|
||||
sprintf(result, "%*.s%s[%s] with %d elements\n",
|
||||
offset, pad, lwtype_name(TYPE_GETTYPE(col->type)),
|
||||
offset, pad, lwtype_name(col->type),
|
||||
lwgeom_typeflags(col->type),
|
||||
col->ngeoms);
|
||||
|
||||
|
@ -124,7 +124,7 @@ lwpoly_summary(LWPOLY *poly, int offset)
|
|||
result = lwalloc(size);
|
||||
|
||||
sprintf(result, "%*.s%s[%s] with %i rings\n",
|
||||
offset, pad, lwtype_name(TYPE_GETTYPE(poly->type)),
|
||||
offset, pad, lwtype_name(poly->type),
|
||||
lwgeom_typeflags(poly->type),
|
||||
poly->nrings);
|
||||
|
||||
|
|
|
@ -222,7 +222,7 @@ Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS)
|
|||
oldcontext = MemoryContextSwitchTo(newcontext);
|
||||
|
||||
pglwgeom = (PG_LWGEOM *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0));
|
||||
if ( TYPE_GETTYPE(pglwgeom->type) != POLYGONTYPE )
|
||||
if ( pglwgeom_get_type(pglwgeom) != POLYGONTYPE )
|
||||
{
|
||||
lwerror("Input is not a polygon");
|
||||
}
|
||||
|
|
|
@ -737,9 +737,7 @@ Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS)
|
|||
double to = PG_GETARG_FLOAT8(2);
|
||||
LWCOLLECTION *geom_out = NULL;
|
||||
LWGEOM *line_in = NULL;
|
||||
uchar type = (uchar)SERIALIZED_FORM(geom_in)[0];
|
||||
char geomtype = TYPE_GETTYPE(type);
|
||||
char hasz = TYPE_HASZ(type);
|
||||
char geomtype = pglwgeom_get_type(geom_in);
|
||||
static int ordinate = 2; /* Z */
|
||||
|
||||
if ( ! ( geomtype == LINETYPE || geomtype == MULTILINETYPE ) )
|
||||
|
@ -748,13 +746,14 @@ Datum ST_LocateBetweenElevations(PG_FUNCTION_ARGS)
|
|||
PG_RETURN_NULL();
|
||||
}
|
||||
|
||||
if ( ! hasz )
|
||||
line_in = pglwgeom_deserialize(geom_in);
|
||||
|
||||
if ( ! FLAGS_GET_Z(line_in->flags) )
|
||||
{
|
||||
elog(ERROR,"This function only accepts LINESTRING or MULTILINESTRING with Z values as arguments.");
|
||||
PG_RETURN_NULL();
|
||||
}
|
||||
|
||||
line_in = lwgeom_deserialize(SERIALIZED_FORM(geom_in));
|
||||
if ( geomtype == LINETYPE )
|
||||
{
|
||||
geom_out = lwline_clip_to_ordinate_range((LWLINE*)line_in, ordinate, from, to);
|
||||
|
@ -790,7 +789,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
|
|||
LWGEOM *olwgeom;
|
||||
POINTARRAY *ipa, *opa;
|
||||
PG_LWGEOM *ret;
|
||||
uchar type = geom->type;
|
||||
int type = pglwgeom_get_type(geom);
|
||||
|
||||
if ( from < 0 || from > 1 )
|
||||
{
|
||||
|
@ -810,11 +809,9 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
|
|||
PG_RETURN_NULL();
|
||||
}
|
||||
|
||||
if ( TYPE_GETTYPE(type) == LINETYPE )
|
||||
if ( type == LINETYPE )
|
||||
{
|
||||
LWLINE *iline;
|
||||
|
||||
iline = lwline_deserialize(SERIALIZED_FORM(geom));
|
||||
LWLINE *iline = lwgeom_as_lwline(pglwgeom_deserialize(geom));
|
||||
|
||||
if ( lwgeom_is_empty((LWGEOM*)iline) )
|
||||
{
|
||||
|
@ -834,7 +831,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
|
|||
olwgeom = (LWGEOM *)lwline_construct(iline->srid, NULL, opa);
|
||||
|
||||
}
|
||||
else if ( TYPE_GETTYPE(type) == MULTILINETYPE )
|
||||
else if ( type == MULTILINETYPE )
|
||||
{
|
||||
LWMLINE *iline;
|
||||
int i = 0, g = 0;
|
||||
|
@ -912,9 +909,9 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
|
|||
}
|
||||
/* If we got any points, we need to return a GEOMETRYCOLLECTION */
|
||||
if ( ! homogeneous )
|
||||
TYPE_SETTYPE(type,COLLECTIONTYPE);
|
||||
type = COLLECTIONTYPE;
|
||||
|
||||
olwgeom = (LWGEOM*)lwcollection_construct(TYPE_GETTYPE(type), iline->srid, NULL, g, geoms);
|
||||
olwgeom = (LWGEOM*)lwcollection_construct(type, iline->srid, NULL, g, geoms);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -923,8 +920,8 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
|
|||
}
|
||||
|
||||
ret = pglwgeom_serialize(olwgeom);
|
||||
lwgeom_free(olwgeom);
|
||||
PG_FREE_IF_COPY(geom, 0);
|
||||
lwgeom_release(olwgeom);
|
||||
PG_RETURN_POINTER(ret);
|
||||
|
||||
}
|
||||
|
|
|
@ -451,7 +451,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 ( TYPE_GETTYPE(geom->type) == COLLECTIONTYPE &&
|
||||
if ( pglwgeom_get_type(geom) == COLLECTIONTYPE &&
|
||||
TYPE_HASBBOX(geom->type) )
|
||||
{
|
||||
PG_RETURN_POINTER(geom);
|
||||
|
@ -504,7 +504,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(TYPE_GETTYPE(geom->type)) &&
|
||||
if ( lwtype_is_collection(pglwgeom_get_type(geom)) &&
|
||||
TYPE_HASBBOX(geom->type) )
|
||||
{
|
||||
PG_RETURN_POINTER(geom);
|
||||
|
@ -1126,7 +1126,7 @@ Datum LWGEOM_collect(PG_FUNCTION_ARGS)
|
|||
pglwgeom1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
pglwgeom2 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
|
||||
POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(TYPE_GETTYPE(pglwgeom1->type)), lwtype_name(TYPE_GETTYPE(pglwgeom2->type)));
|
||||
POSTGIS_DEBUGF(3, "LWGEOM_collect(%s, %s): call", lwtype_name(pglwgeom_get_type(pglwgeom1)), lwtype_name(pglwgeom_get_type(pglwgeom2)));
|
||||
|
||||
#if 0
|
||||
if ( pglwgeom_get_srid(pglwgeom1) != pglwgeom_get_srid(pglwgeom2) )
|
||||
|
@ -1389,7 +1389,7 @@ Datum LWGEOM_collect_garray(PG_FUNCTION_ARGS)
|
|||
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
|
||||
{
|
||||
PG_LWGEOM *geom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
|
||||
uint32 intype = TYPE_GETTYPE(geom->type);
|
||||
uint32 intype = pglwgeom_get_type(geom);
|
||||
|
||||
offset += INTALIGN(VARSIZE(geom));
|
||||
|
||||
|
@ -1505,7 +1505,7 @@ Datum LWGEOM_line_from_mpoint(PG_FUNCTION_ARGS)
|
|||
/* Get input PG_LWGEOM and deserialize it */
|
||||
ingeom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
|
||||
if ( TYPE_GETTYPE(ingeom->type) != MULTIPOINTTYPE )
|
||||
if ( pglwgeom_get_type(ingeom) != MULTIPOINTTYPE )
|
||||
{
|
||||
elog(ERROR, "makeline: input must be a multipoint");
|
||||
PG_RETURN_NULL(); /* input is not a multipoint */
|
||||
|
@ -1599,7 +1599,7 @@ Datum LWGEOM_makeline_garray(PG_FUNCTION_ARGS)
|
|||
PG_LWGEOM *geom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
|
||||
offset += INTALIGN(VARSIZE(geom));
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POINTTYPE ) continue;
|
||||
if ( pglwgeom_get_type(geom) != POINTTYPE ) continue;
|
||||
|
||||
lwpoints[npoints++] =
|
||||
lwpoint_deserialize(SERIALIZED_FORM(geom));
|
||||
|
@ -1670,8 +1670,8 @@ Datum LWGEOM_makeline(PG_FUNCTION_ARGS)
|
|||
pglwg1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
pglwg2 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
|
||||
if ( ! TYPE_GETTYPE(pglwg1->type) == POINTTYPE ||
|
||||
! TYPE_GETTYPE(pglwg2->type) == POINTTYPE )
|
||||
if ( ! pglwgeom_get_type(pglwg1) == POINTTYPE ||
|
||||
! pglwgeom_get_type(pglwg2) == POINTTYPE )
|
||||
{
|
||||
elog(ERROR, "Input geometries must be points");
|
||||
PG_RETURN_NULL();
|
||||
|
@ -1715,7 +1715,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
|
|||
|
||||
/* Get input shell */
|
||||
pglwg1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
if ( ! TYPE_GETTYPE(pglwg1->type) == LINETYPE )
|
||||
if ( ! pglwgeom_get_type(pglwg1) == LINETYPE )
|
||||
{
|
||||
lwerror("Shell is not a line");
|
||||
}
|
||||
|
@ -1732,7 +1732,7 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
|
|||
PG_LWGEOM *g = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
|
||||
LWLINE *hole;
|
||||
offset += INTALIGN(VARSIZE(g));
|
||||
if ( TYPE_GETTYPE(g->type) != LINETYPE )
|
||||
if ( pglwgeom_get_type(g) != LINETYPE )
|
||||
{
|
||||
lwerror("Hole %d is not a line", i);
|
||||
}
|
||||
|
@ -1975,8 +1975,8 @@ Datum LWGEOM_segmentize2d(PG_FUNCTION_ARGS)
|
|||
dist = PG_GETARG_FLOAT8(1);
|
||||
|
||||
/* Avoid deserialize/serialize steps */
|
||||
if ( (TYPE_GETTYPE(ingeom->type) == POINTTYPE) ||
|
||||
(TYPE_GETTYPE(ingeom->type) == MULTIPOINTTYPE) )
|
||||
if ( (pglwgeom_get_type(ingeom) == POINTTYPE) ||
|
||||
(pglwgeom_get_type(ingeom) == MULTIPOINTTYPE) )
|
||||
PG_RETURN_POINTER(ingeom);
|
||||
|
||||
inlwgeom = lwgeom_deserialize(SERIALIZED_FORM(ingeom));
|
||||
|
@ -2131,7 +2131,7 @@ Datum LWGEOM_same(PG_FUNCTION_ARGS)
|
|||
LWGEOM *lwg1, *lwg2;
|
||||
bool result;
|
||||
|
||||
if ( TYPE_GETTYPE(g1->type) != TYPE_GETTYPE(g2->type) )
|
||||
if ( pglwgeom_get_type(g1) != pglwgeom_get_type(g2) )
|
||||
{
|
||||
PG_FREE_IF_COPY(g1, 0);
|
||||
PG_FREE_IF_COPY(g2, 1);
|
||||
|
@ -2304,13 +2304,13 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
|
|||
where = PG_GETARG_INT32(2);
|
||||
}
|
||||
|
||||
if ( ! TYPE_GETTYPE(pglwg1->type) == LINETYPE )
|
||||
if ( ! pglwgeom_get_type(pglwg1) == LINETYPE )
|
||||
{
|
||||
elog(ERROR, "First argument must be a LINESTRING");
|
||||
PG_RETURN_NULL();
|
||||
}
|
||||
|
||||
if ( ! TYPE_GETTYPE(pglwg2->type) == POINTTYPE )
|
||||
if ( ! pglwgeom_get_type(pglwg2) == POINTTYPE )
|
||||
{
|
||||
elog(ERROR, "Second argument must be a POINT");
|
||||
PG_RETURN_NULL();
|
||||
|
@ -2357,7 +2357,7 @@ Datum LWGEOM_removepoint(PG_FUNCTION_ARGS)
|
|||
pglwg1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
which = PG_GETARG_INT32(1);
|
||||
|
||||
if ( ! TYPE_GETTYPE(pglwg1->type) == LINETYPE )
|
||||
if ( ! pglwgeom_get_type(pglwg1) == LINETYPE )
|
||||
{
|
||||
elog(ERROR, "First argument must be a LINESTRING");
|
||||
PG_RETURN_NULL();
|
||||
|
|
|
@ -532,7 +532,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 = TYPE_GETTYPE(gin->type);
|
||||
int type = pglwgeom_get_type(gin);
|
||||
|
||||
/* Raise an error if input is not a linestring or multilinestring */
|
||||
if ( type != LINETYPE && type != MULTILINETYPE )
|
||||
|
|
|
@ -419,7 +419,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
|
|||
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
|
||||
{
|
||||
PG_LWGEOM *pggeom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
|
||||
int pgtype = TYPE_GETTYPE(pggeom->type);
|
||||
int pgtype = pglwgeom_get_type(pggeom);
|
||||
offset += INTALIGN(VARSIZE(pggeom));
|
||||
if ( ! gotsrid ) /* Initialize SRID */
|
||||
{
|
||||
|
@ -475,7 +475,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
|
|||
if ((bitmap && (*bitmap & bitmask) != 0) || !bitmap)
|
||||
{
|
||||
PG_LWGEOM *pggeom = (PG_LWGEOM *)(ARR_DATA_PTR(array)+offset);
|
||||
int pgtype = TYPE_GETTYPE(pggeom->type);
|
||||
int pgtype = pglwgeom_get_type(pggeom);
|
||||
offset += INTALIGN(VARSIZE(pggeom));
|
||||
if ( pgtype == POLYGONTYPE )
|
||||
{
|
||||
|
@ -597,7 +597,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
|
|||
PG_RETURN_NULL();
|
||||
}
|
||||
srid = pglwgeom_get_srid(geom);
|
||||
POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(TYPE_GETTYPE(geom->type)));
|
||||
POSTGIS_DEBUGF(3, "first geom is a %s", lwtype_name(pglwgeom_get_type(geom)));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -613,7 +613,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(TYPE_GETTYPE(geom->type)));
|
||||
call, i, lwtype_name(pglwgeom_get_type(geom)));
|
||||
|
||||
g2 = GEOSUnion(g1, geos_result);
|
||||
if ( g2 == NULL )
|
||||
|
|
|
@ -159,7 +159,7 @@ Datum LWGEOM_to_latlon(PG_FUNCTION_ARGS)
|
|||
char * formatted_text;
|
||||
|
||||
/* Only supports points. */
|
||||
uchar geom_type = TYPE_GETTYPE(pg_lwgeom->type);
|
||||
uchar geom_type = pglwgeom_get_type(pg_lwgeom);
|
||||
if (POINTTYPE != geom_type)
|
||||
{
|
||||
lwerror("Only points are supported, you tried type %s.", lwtype_name(geom_type));
|
||||
|
@ -452,7 +452,7 @@ is_worth_caching_pglwgeom_bbox(const PG_LWGEOM *in)
|
|||
#if ! POSTGIS_AUTOCACHE_BBOX
|
||||
return false;
|
||||
#endif
|
||||
if ( TYPE_GETTYPE(in->type) == POINTTYPE ) return false;
|
||||
if ( pglwgeom_get_type(in) == POINTTYPE ) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -334,14 +334,15 @@ Datum LWGEOM_exteriorring_polygon(PG_FUNCTION_ARGS)
|
|||
|
||||
POSTGIS_DEBUG(2, "LWGEOM_exteriorring_polygon called.");
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POLYGONTYPE &&
|
||||
TYPE_GETTYPE(geom->type) != CURVEPOLYTYPE &&
|
||||
TYPE_GETTYPE(geom->type) != TRIANGLETYPE)
|
||||
if ( pglwgeom_get_type(geom) != POLYGONTYPE &&
|
||||
pglwgeom_get_type(geom) != CURVEPOLYTYPE &&
|
||||
pglwgeom_get_type(geom) != TRIANGLETYPE)
|
||||
{
|
||||
elog(ERROR, "ExteriorRing: geom is not a polygon");
|
||||
PG_RETURN_NULL();
|
||||
}
|
||||
if (lwgeom_getType((uchar)SERIALIZED_FORM(geom)[0]) == POLYGONTYPE)
|
||||
|
||||
if ( pglwgeom_get_type(geom) == POLYGONTYPE )
|
||||
{
|
||||
poly = lwpoly_deserialize(SERIALIZED_FORM(geom));
|
||||
|
||||
|
@ -455,14 +456,14 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
|
|||
|
||||
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POLYGONTYPE &&
|
||||
TYPE_GETTYPE(geom->type) != CURVEPOLYTYPE )
|
||||
if ( pglwgeom_get_type(geom) != POLYGONTYPE &&
|
||||
pglwgeom_get_type(geom) != CURVEPOLYTYPE )
|
||||
{
|
||||
PG_FREE_IF_COPY(geom, 0);
|
||||
elog(ERROR, "InteriorRingN: geom is not a polygon");
|
||||
PG_RETURN_NULL();
|
||||
}
|
||||
if ( TYPE_GETTYPE(geom->type) == POLYGONTYPE)
|
||||
if ( pglwgeom_get_type(geom) == POLYGONTYPE)
|
||||
{
|
||||
poly = lwpoly_deserialize(SERIALIZED_FORM(geom));
|
||||
|
||||
|
@ -556,7 +557,7 @@ Datum LWGEOM_x_point(PG_FUNCTION_ARGS)
|
|||
|
||||
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
|
||||
if ( pglwgeom_get_type(geom) != POINTTYPE )
|
||||
lwerror("Argument to X() must be a point");
|
||||
|
||||
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
|
||||
|
@ -581,7 +582,7 @@ Datum LWGEOM_y_point(PG_FUNCTION_ARGS)
|
|||
|
||||
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
|
||||
if ( pglwgeom_get_type(geom) != POINTTYPE )
|
||||
lwerror("Argument to Y() must be a point");
|
||||
|
||||
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
|
||||
|
@ -607,7 +608,7 @@ Datum LWGEOM_z_point(PG_FUNCTION_ARGS)
|
|||
|
||||
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
|
||||
if ( pglwgeom_get_type(geom) != POINTTYPE )
|
||||
lwerror("Argument to Z() must be a point");
|
||||
|
||||
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
|
||||
|
@ -635,7 +636,7 @@ Datum LWGEOM_m_point(PG_FUNCTION_ARGS)
|
|||
|
||||
geom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
|
||||
if ( TYPE_GETTYPE(geom->type) != POINTTYPE )
|
||||
if ( pglwgeom_get_type(geom) != POINTTYPE )
|
||||
lwerror("Argument to M() must be a point");
|
||||
|
||||
point = lwgeom_getpoint(SERIALIZED_FORM(geom), 0);
|
||||
|
|
|
@ -389,7 +389,7 @@ pglwgeom_set_srid(PG_LWGEOM *lwgeom, int32 new_srid)
|
|||
* none present => -1
|
||||
*/
|
||||
int
|
||||
pglwgeom_get_srid(PG_LWGEOM *lwgeom)
|
||||
pglwgeom_get_srid(const PG_LWGEOM *lwgeom)
|
||||
{
|
||||
uchar type = lwgeom->type;
|
||||
uchar *loc = lwgeom->data;
|
||||
|
@ -405,7 +405,7 @@ pglwgeom_get_srid(PG_LWGEOM *lwgeom)
|
|||
}
|
||||
|
||||
int
|
||||
pglwgeom_get_type(PG_LWGEOM *lwgeom)
|
||||
pglwgeom_get_type(const PG_LWGEOM *lwgeom)
|
||||
{
|
||||
return TYPE_GETTYPE(lwgeom->type);
|
||||
}
|
||||
|
|
|
@ -74,8 +74,8 @@ extern LWGEOM *pglwgeom_deserialize(PG_LWGEOM *pglwgeom);
|
|||
|
||||
/* PG_LWGEOM SRID get/set */
|
||||
extern PG_LWGEOM *pglwgeom_set_srid(PG_LWGEOM *pglwgeom, int32 newSRID);
|
||||
extern int pglwgeom_get_srid(PG_LWGEOM *pglwgeom);
|
||||
extern int pglwgeom_get_type(PG_LWGEOM *lwgeom);
|
||||
extern int pglwgeom_get_srid(const PG_LWGEOM *pglwgeom);
|
||||
extern int pglwgeom_get_type(const PG_LWGEOM *lwgeom);
|
||||
|
||||
extern Oid getGeometryOID(void);
|
||||
|
||||
|
|
|
@ -252,12 +252,12 @@ LWMLINE *findLineSegments(RTREE_NODE *root, double value)
|
|||
/* If there is a segment defined for this node, include it. */
|
||||
if (root->segment)
|
||||
{
|
||||
LWDEBUGF(3, "findLineSegments %p: adding segment %p %d.", root, root->segment, TYPE_GETTYPE(root->segment->type));
|
||||
LWDEBUGF(3, "findLineSegments %p: adding segment %p %d.", root, root->segment, root->segment->type);
|
||||
|
||||
lwgeoms = lwalloc(sizeof(LWGEOM *));
|
||||
lwgeoms[0] = (LWGEOM *)root->segment;
|
||||
|
||||
LWDEBUGF(3, "Found geom %p, type %d, dim %d", root->segment, TYPE_GETTYPE(root->segment->type), TYPE_GETZM(root->segment->type));
|
||||
LWDEBUGF(3, "Found geom %p, type %d, dim %d", root->segment, root->segment->type, FLAGS_GET_Z(root->segment->flags));
|
||||
|
||||
result = (LWMLINE *)lwcollection_construct(lwgeom_makeType_full(0, 0, 0, MULTILINETYPE, 0), -1, NULL, 1, lwgeoms);
|
||||
}
|
||||
|
@ -270,7 +270,7 @@ LWMLINE *findLineSegments(RTREE_NODE *root, double value)
|
|||
tmp = findLineSegments(root->leftNode, value);
|
||||
if (tmp)
|
||||
{
|
||||
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, TYPE_GETTYPE(tmp->type), TYPE_GETZM(tmp->type));
|
||||
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, tmp->type, FLAGS_GET_Z(tmp->flags));
|
||||
|
||||
if (result)
|
||||
result = mergeMultiLines(result, tmp);
|
||||
|
@ -287,7 +287,7 @@ LWMLINE *findLineSegments(RTREE_NODE *root, double value)
|
|||
tmp = findLineSegments(root->rightNode, value);
|
||||
if (tmp)
|
||||
{
|
||||
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, TYPE_GETTYPE(tmp->type), TYPE_GETZM(tmp->type));
|
||||
LWDEBUGF(3, "Found geom %p, type %d, dim %d", tmp, tmp->type, FLAGS_GET_Z(tmp->flags));
|
||||
|
||||
if (result)
|
||||
result = mergeMultiLines(result, tmp);
|
||||
|
@ -306,7 +306,7 @@ LWMLINE *mergeMultiLines(LWMLINE *line1, LWMLINE *line2)
|
|||
LWCOLLECTION *col;
|
||||
int i, j, ngeoms;
|
||||
|
||||
LWDEBUGF(2, "mergeMultiLines called on %p, %d, %d; %p, %d, %d", line1, line1->ngeoms, TYPE_GETTYPE(line1->type), line2, line2->ngeoms, TYPE_GETTYPE(line2->type));
|
||||
LWDEBUGF(2, "mergeMultiLines called on %p, %d, %d; %p, %d, %d", line1, line1->ngeoms, line1->type, line2, line2->ngeoms, line2->type);
|
||||
|
||||
ngeoms = line1->ngeoms + line2->ngeoms;
|
||||
geoms = lwalloc(sizeof(LWGEOM *) * ngeoms);
|
||||
|
@ -322,7 +322,7 @@ LWMLINE *mergeMultiLines(LWMLINE *line1, LWMLINE *line2)
|
|||
}
|
||||
col = lwcollection_construct(MULTILINETYPE, -1, NULL, ngeoms, geoms);
|
||||
|
||||
LWDEBUGF(3, "mergeMultiLines returning %p, %d, %d", col, col->ngeoms, TYPE_GETTYPE(col->type));
|
||||
LWDEBUGF(3, "mergeMultiLines returning %p, %d, %d", col, col->ngeoms, col->type);
|
||||
|
||||
return (LWMLINE *)col;
|
||||
}
|
||||
|
@ -353,7 +353,7 @@ Datum LWGEOM_polygon_index(PG_FUNCTION_ARGS)
|
|||
igeom = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
yval = PG_GETARG_FLOAT8(1);
|
||||
geom = lwgeom_deserialize(SERIALIZED_FORM(igeom));
|
||||
if (TYPE_GETTYPE(geom->type) != POLYGONTYPE)
|
||||
if (geom->type != POLYGONTYPE)
|
||||
{
|
||||
lwgeom_release(geom);
|
||||
PG_FREE_IF_COPY(igeom, 0);
|
||||
|
@ -365,10 +365,10 @@ Datum LWGEOM_polygon_index(PG_FUNCTION_ARGS)
|
|||
mline = findLineSegments(root, yval);
|
||||
|
||||
#if POSTGIS_DEBUG_LEVEL >= 3
|
||||
POSTGIS_DEBUGF(3, "mline returned %p %d", mline, TYPE_GETTYPE(mline->type));
|
||||
POSTGIS_DEBUGF(3, "mline returned %p %d", mline, mline->type);
|
||||
for (i = 0; i < mline->ngeoms; i++)
|
||||
{
|
||||
POSTGIS_DEBUGF(3, "geom[%d] %p %d", i, mline->geoms[i], TYPE_GETTYPE(mline->geoms[i]->type));
|
||||
POSTGIS_DEBUGF(3, "geom[%d] %p %d", i, mline->geoms[i], mline->geoms[i]->type);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -407,7 +407,7 @@ void populateCache(RTREE_POLY_CACHE *currentCache, LWGEOM *lwgeom, uchar *serial
|
|||
|
||||
LWDEBUGF(2, "populateCache called with cache %p geom %p", currentCache, lwgeom);
|
||||
|
||||
if (TYPE_GETTYPE(lwgeom->type) == MULTIPOLYGONTYPE)
|
||||
if (lwgeom->type == MULTIPOLYGONTYPE)
|
||||
{
|
||||
LWDEBUG(2, "populateCache MULTIPOLYGON");
|
||||
mpoly = (LWMPOLY *)lwgeom;
|
||||
|
@ -441,7 +441,7 @@ void populateCache(RTREE_POLY_CACHE *currentCache, LWGEOM *lwgeom, uchar *serial
|
|||
}
|
||||
}
|
||||
}
|
||||
else if ( TYPE_GETTYPE(lwgeom->type) == POLYGONTYPE )
|
||||
else if ( lwgeom->type == POLYGONTYPE )
|
||||
{
|
||||
LWDEBUG(2, "populateCache POLYGON");
|
||||
poly = (LWPOLY *)lwgeom;
|
||||
|
|
Loading…
Reference in a new issue