mirror of
https://git.osgeo.org/gitea/postgis/postgis
synced 2024-10-25 09:32:46 +00:00
Obsoleted getbox2d(). Use getbox2d_p() or getbox2d_internal() instead.
git-svn-id: http://svn.osgeo.org/postgis/trunk@1041 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
parent
a80935a9bf
commit
2f9b40db22
|
@ -704,7 +704,8 @@ extern BOX3D *combine_boxes(BOX3D *b1, BOX3D *b2);
|
|||
// if this has a pre-built BOX2d, then we use it,
|
||||
// otherwise we need to compute it.
|
||||
// WARNING! the EMPTY geom will result in a random BOX2D returned
|
||||
extern BOX2DFLOAT4 getbox2d(char *serialized_form);
|
||||
// OBSOLETED for this reason
|
||||
//extern BOX2DFLOAT4 getbox2d(char *serialized_form);
|
||||
|
||||
// Returns a pointer to the BBOX internal to the serialized form.
|
||||
// READ-ONLY!
|
||||
|
|
|
@ -312,8 +312,9 @@ BOX3D *combine_boxes(BOX3D *b1, BOX3D *b2)
|
|||
// returns a real entity so it doesnt leak
|
||||
// if this has a pre-built BOX2d, then we use it,
|
||||
// otherwise we need to compute it.
|
||||
// OBSOLETED!
|
||||
BOX2DFLOAT4
|
||||
getbox2d(char *serialized_form)
|
||||
__getbox2d(char *serialized_form)
|
||||
{
|
||||
int type = (unsigned char) serialized_form[0];
|
||||
char *loc;
|
||||
|
|
|
@ -10,7 +10,11 @@
|
|||
*
|
||||
**********************************************************************
|
||||
* $Log$
|
||||
* Revision 1.10 2004/10/25 17:07:09 strk
|
||||
* Obsoleted getbox2d(). Use getbox2d_p() or getbox2d_internal() instead.
|
||||
*
|
||||
* Revision 1.9 2004/10/08 13:20:54 strk
|
||||
*
|
||||
* Changed LWGEOM structure to point to an actual BOX2DFLOAT4.
|
||||
* Renamed most function to reflect a TYPE_method naming convention.
|
||||
* (you'll need a dump/reload for it to work)
|
||||
|
@ -1260,8 +1264,13 @@ Datum LWGEOM_gist_sel(PG_FUNCTION_ARGS)
|
|||
*/
|
||||
|
||||
in = (char *)PG_DETOAST_DATUM( ((Const*)other)->constvalue );
|
||||
//search_box = convert_box3d_to_box(&in->bvol);
|
||||
search_box = getbox2d(in+4);
|
||||
if ( ! getbox2d_p(in+4, &search_box) )
|
||||
{
|
||||
#if DEBUG_GEOMETRY_STATS
|
||||
elog(NOTICE, "search box is EMPTY");
|
||||
#endif
|
||||
PG_RETURN_FLOAT8(0.0);
|
||||
}
|
||||
|
||||
#if DEBUG_GEOMETRY_STATS > 1
|
||||
elog(NOTICE," requested search box is : %.15g %.15g, %.15g %.15g",search_box->xmin,search_box->ymin,search_box->xmax,search_box->ymax);
|
||||
|
@ -1425,7 +1434,14 @@ compute_geometry_stats(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfunc,
|
|||
|
||||
geom = (char *) PG_DETOAST_DATUM(datum);
|
||||
|
||||
box = getbox2d(geom+4);
|
||||
if ( ! getbox2d_p(geom+4, &box) )
|
||||
{
|
||||
// Skip empty geometry
|
||||
#if DEBUG_GEOMETRY_STATS
|
||||
elog(NOTICE, " skipped empty geometry %d", i);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* Skip infinite geoms
|
||||
|
|
|
@ -72,9 +72,14 @@ Datum LWGEOM_overlap(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
// One or both are empty geoms
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_overlap,
|
||||
|
@ -105,13 +110,19 @@ Datum LWGEOM_overleft(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
#ifdef DEBUG_CALLS
|
||||
elog(NOTICE,"GIST: LWGEOM_overleft --entry");
|
||||
#endif
|
||||
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_overleft,
|
||||
PointerGetDatum(&box1), PointerGetDatum(&box2)));
|
||||
|
||||
|
@ -127,14 +138,18 @@ Datum LWGEOM_left(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
#ifdef DEBUG_CALLS
|
||||
elog(NOTICE,"GIST: LWGEOM_left --entry");
|
||||
#endif
|
||||
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_left,
|
||||
PointerGetDatum(&box1), PointerGetDatum(&box2)));
|
||||
|
||||
|
@ -151,13 +166,18 @@ Datum LWGEOM_right(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
#ifdef DEBUG_CALLS
|
||||
elog(NOTICE,"GIST: LWGEOM_right --entry");
|
||||
#endif
|
||||
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_right,
|
||||
PointerGetDatum(&box1), PointerGetDatum(&box2)));
|
||||
|
||||
|
@ -174,14 +194,18 @@ Datum LWGEOM_overright(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
#ifdef DEBUG_CALLS
|
||||
elog(NOTICE,"GIST: LWGEOM_overright --entry");
|
||||
#endif
|
||||
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_overright,
|
||||
PointerGetDatum(&box1), PointerGetDatum(&box2)));
|
||||
|
||||
|
@ -198,13 +222,18 @@ Datum LWGEOM_contained(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
#ifdef DEBUG_CALLS
|
||||
elog(NOTICE,"GIST: LWGEOM_contained --entry");
|
||||
#endif
|
||||
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_contained,
|
||||
PointerGetDatum(&box1), PointerGetDatum(&box2)));
|
||||
|
||||
|
@ -221,14 +250,18 @@ Datum LWGEOM_contain(PG_FUNCTION_ARGS)
|
|||
char *lwgeom1 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
|
||||
char *lwgeom2 = (char *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
|
||||
bool result;
|
||||
|
||||
BOX2DFLOAT4 box1 = getbox2d(lwgeom1+4);
|
||||
BOX2DFLOAT4 box2 = getbox2d(lwgeom2+4);
|
||||
BOX2DFLOAT4 box1;
|
||||
BOX2DFLOAT4 box2;
|
||||
|
||||
#ifdef DEBUG_CALLS
|
||||
elog(NOTICE,"GIST: LWGEOM_contain --entry");
|
||||
#endif
|
||||
|
||||
if ( ! (getbox2d_p(lwgeom1+4, &box1) && getbox2d_p(lwgeom2+4, &box2)) )
|
||||
{
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
}
|
||||
|
||||
result = DatumGetBool(DirectFunctionCall2(BOX2D_contain,
|
||||
PointerGetDatum(&box1), PointerGetDatum(&box2)));
|
||||
|
||||
|
@ -383,11 +416,6 @@ Datum LWGEOM_gist_consistent(PG_FUNCTION_ARGS)
|
|||
if ( ! (DatumGetPointer(entry->key) != NULL && query) )
|
||||
PG_RETURN_BOOL(FALSE);
|
||||
|
||||
//box3d = lw_geom_getBB(query+4);
|
||||
//thebox = box3d_to_box2df(box3d);
|
||||
//pfree(box3d);
|
||||
//convert_box3d_to_box_p( &(query->bvol) , &thebox);
|
||||
//thebox = getbox2d_cache(query);
|
||||
getbox2d_p(query+4, &box);
|
||||
|
||||
if (GIST_LEAF(entry))
|
||||
|
|
Loading…
Reference in a new issue