diff options
Diffstat (limited to 'src/backend/access/rtree/rtproc.c')
-rw-r--r-- | src/backend/access/rtree/rtproc.c | 209 |
1 files changed, 106 insertions, 103 deletions
diff --git a/src/backend/access/rtree/rtproc.c b/src/backend/access/rtree/rtproc.c index ac7a3abfecf..4b7a9f2a266 100644 --- a/src/backend/access/rtree/rtproc.c +++ b/src/backend/access/rtree/rtproc.c @@ -1,13 +1,13 @@ /*------------------------------------------------------------------------- * * rtproc.c-- - * pg_amproc entries for rtrees. + * pg_amproc entries for rtrees. * * Copyright (c) 1994, Regents of the University of California * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtproc.c,v 1.7 1997/04/22 17:31:23 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtproc.c,v 1.8 1997/09/07 04:39:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -17,136 +17,139 @@ #include <utils/builtins.h> #include <utils/geo_decls.h> #ifndef HAVE_MEMMOVE -# include <regex/utils.h> +#include <regex/utils.h> #else -# include <string.h> +#include <string.h> #endif BOX -*rt_box_union(BOX *a, BOX *b) +* rt_box_union(BOX * a, BOX * b) { - BOX *n; - - if ((n = (BOX *) palloc(sizeof (*n))) == (BOX *) NULL) - elog(WARN, "Cannot allocate box for union"); - - n->high.x = Max(a->high.x, b->high.x); - n->high.y = Max(a->high.y, b->high.y); - n->low.x = Min(a->low.x, b->low.x); - n->low.y = Min(a->low.y, b->low.y); - - return (n); + BOX *n; + + if ((n = (BOX *) palloc(sizeof(*n))) == (BOX *) NULL) + elog(WARN, "Cannot allocate box for union"); + + n->high.x = Max(a->high.x, b->high.x); + n->high.y = Max(a->high.y, b->high.y); + n->low.x = Min(a->low.x, b->low.x); + n->low.y = Min(a->low.y, b->low.y); + + return (n); } -BOX * -rt_box_inter(BOX *a, BOX *b) +BOX * +rt_box_inter(BOX * a, BOX * b) { - BOX *n; - - if ((n = (BOX *) palloc(sizeof (*n))) == (BOX *) NULL) - elog(WARN, "Cannot allocate box for union"); - - n->high.x = Min(a->high.x, b->high.x); - n->high.y = Min(a->high.y, b->high.y); - n->low.x = Max(a->low.x, b->low.x); - n->low.y = Max(a->low.y, b->low.y); - - if (n->high.x < n->low.x || n->high.y < n->low.y) { - pfree(n); - return ((BOX *) NULL); - } - - return (n); + BOX *n; + + if ((n = (BOX *) palloc(sizeof(*n))) == (BOX *) NULL) + elog(WARN, "Cannot allocate box for union"); + + n->high.x = Min(a->high.x, b->high.x); + n->high.y = Min(a->high.y, b->high.y); + n->low.x = Max(a->low.x, b->low.x); + n->low.y = Max(a->low.y, b->low.y); + + if (n->high.x < n->low.x || n->high.y < n->low.y) + { + pfree(n); + return ((BOX *) NULL); + } + + return (n); } void -rt_box_size(BOX *a, float *size) +rt_box_size(BOX * a, float *size) { - if (a == (BOX *) NULL || a->high.x <= a->low.x || a->high.y <= a->low.y) - *size = 0.0; - else - *size = (float) ((a->high.x - a->low.x) * (a->high.y - a->low.y)); - - return; + if (a == (BOX *) NULL || a->high.x <= a->low.x || a->high.y <= a->low.y) + *size = 0.0; + else + *size = (float) ((a->high.x - a->low.x) * (a->high.y - a->low.y)); + + return; } /* - * rt_bigbox_size() -- Compute a size for big boxes. + * rt_bigbox_size() -- Compute a size for big boxes. * - * In an earlier release of the system, this routine did something - * different from rt_box_size. We now use floats, rather than ints, - * as the return type for the size routine, so we no longer need to - * have a special return type for big boxes. + * In an earlier release of the system, this routine did something + * different from rt_box_size. We now use floats, rather than ints, + * as the return type for the size routine, so we no longer need to + * have a special return type for big boxes. */ void -rt_bigbox_size(BOX *a, float *size) +rt_bigbox_size(BOX * a, float *size) { - rt_box_size(a, size); + rt_box_size(a, size); } -POLYGON * -rt_poly_union(POLYGON *a, POLYGON *b) +POLYGON * +rt_poly_union(POLYGON * a, POLYGON * b) { - POLYGON *p; - - p = (POLYGON *)PALLOCTYPE(POLYGON); - - if (!PointerIsValid(p)) - elog(WARN, "Cannot allocate polygon for union"); - - memset((char *) p, 0, sizeof(POLYGON)); /* zero any holes */ - p->size = sizeof(POLYGON); - p->npts = 0; - p->boundbox.high.x = Max(a->boundbox.high.x, b->boundbox.high.x); - p->boundbox.high.y = Max(a->boundbox.high.y, b->boundbox.high.y); - p->boundbox.low.x = Min(a->boundbox.low.x, b->boundbox.low.x); - p->boundbox.low.y = Min(a->boundbox.low.y, b->boundbox.low.y); - return p; + POLYGON *p; + + p = (POLYGON *) PALLOCTYPE(POLYGON); + + if (!PointerIsValid(p)) + elog(WARN, "Cannot allocate polygon for union"); + + memset((char *) p, 0, sizeof(POLYGON)); /* zero any holes */ + p->size = sizeof(POLYGON); + p->npts = 0; + p->boundbox.high.x = Max(a->boundbox.high.x, b->boundbox.high.x); + p->boundbox.high.y = Max(a->boundbox.high.y, b->boundbox.high.y); + p->boundbox.low.x = Min(a->boundbox.low.x, b->boundbox.low.x); + p->boundbox.low.y = Min(a->boundbox.low.y, b->boundbox.low.y); + return p; } void -rt_poly_size(POLYGON *a, float *size) +rt_poly_size(POLYGON * a, float *size) { - double xdim, ydim; - - size = (float *) palloc(sizeof(float)); - if (a == (POLYGON *) NULL || - a->boundbox.high.x <= a->boundbox.low.x || - a->boundbox.high.y <= a->boundbox.low.y) - *size = 0.0; - else { - xdim = (a->boundbox.high.x - a->boundbox.low.x); - ydim = (a->boundbox.high.y - a->boundbox.low.y); - - *size = (float) (xdim * ydim); - } - - return; + double xdim, + ydim; + + size = (float *) palloc(sizeof(float)); + if (a == (POLYGON *) NULL || + a->boundbox.high.x <= a->boundbox.low.x || + a->boundbox.high.y <= a->boundbox.low.y) + *size = 0.0; + else + { + xdim = (a->boundbox.high.x - a->boundbox.low.x); + ydim = (a->boundbox.high.y - a->boundbox.low.y); + + *size = (float) (xdim * ydim); + } + + return; } -POLYGON * -rt_poly_inter(POLYGON *a, POLYGON *b) +POLYGON * +rt_poly_inter(POLYGON * a, POLYGON * b) { - POLYGON *p; - - p = (POLYGON *) PALLOCTYPE(POLYGON); - - if (!PointerIsValid(p)) - elog(WARN, "Cannot allocate polygon for intersection"); - - memset((char *) p, 0, sizeof(POLYGON)); /* zero any holes */ - p->size = sizeof(POLYGON); - p->npts = 0; - p->boundbox.high.x = Min(a->boundbox.high.x, b->boundbox.high.x); - p->boundbox.high.y = Min(a->boundbox.high.y, b->boundbox.high.y); - p->boundbox.low.x = Max(a->boundbox.low.x, b->boundbox.low.x); - p->boundbox.low.y = Max(a->boundbox.low.y, b->boundbox.low.y); - - if (p->boundbox.high.x < p->boundbox.low.x || p->boundbox.high.y < p->boundbox.low.y) + POLYGON *p; + + p = (POLYGON *) PALLOCTYPE(POLYGON); + + if (!PointerIsValid(p)) + elog(WARN, "Cannot allocate polygon for intersection"); + + memset((char *) p, 0, sizeof(POLYGON)); /* zero any holes */ + p->size = sizeof(POLYGON); + p->npts = 0; + p->boundbox.high.x = Min(a->boundbox.high.x, b->boundbox.high.x); + p->boundbox.high.y = Min(a->boundbox.high.y, b->boundbox.high.y); + p->boundbox.low.x = Max(a->boundbox.low.x, b->boundbox.low.x); + p->boundbox.low.y = Max(a->boundbox.low.y, b->boundbox.low.y); + + if (p->boundbox.high.x < p->boundbox.low.x || p->boundbox.high.y < p->boundbox.low.y) { - pfree(p); - return ((POLYGON *) NULL); + pfree(p); + return ((POLYGON *) NULL); } - - return (p); + + return (p); } |