Changeset: 3c1ce68b05f3 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3c1ce68b05f3 Modified Files: Branch: default Log Message:
Merge with Apr2011 branch. diffs (truncated from 1182 to 300 lines): diff --git a/geom/lib/libgeom.mx b/geom/lib/libgeom.mx --- a/geom/lib/libgeom.mx +++ b/geom/lib/libgeom.mx @@ -43,12 +43,11 @@ #include "geos_c.h" -typedef struct mbr -{ - float xmin; - float ymin; - float xmax; - float ymax; +typedef struct mbr { + float xmin; + float ymin; + float xmax; + float ymax; } mbr; @+ @@ -97,29 +96,27 @@ */ typedef enum wkb_type { - wkbPoint = 1, - wkbLineString = 2, - wkbPolygon = 3, - wkbMultiPoint = 4, - wkbMultiLineString = 5, - wkbMultiPolygon = 6, - wkbGeometryCollection = 7, + wkbPoint = 1, + wkbLineString = 2, + wkbPolygon = 3, + wkbMultiPoint = 4, + wkbMultiLineString = 5, + wkbMultiPolygon = 6, + wkbGeometryCollection = 7, } wkb_type; -libgeom_export const char * geom_type2str(int t); +libgeom_export const char *geom_type2str(int t); -typedef struct wkb -{ - int len; +typedef struct wkb { + int len; char data[1]; } wkb; -typedef struct -{ - unsigned char type; - mbr bbox; - int SRID; - wkb wkb; +typedef struct { + unsigned char type; + mbr bbox; + int SRID; + wkb wkb; } geom_geometry; libgeom_export void libgeom_init(void); @@ -133,9 +130,9 @@ wkb_isnil((geom))? NULL: \ GEOSGeomFromWKB_buf((unsigned char *)((geom)->data), (geom)->len) -libgeom_export int wkb_isnil(wkb *wkb); -libgeom_export int getMbrGeos( mbr *mbr, const GEOSGeom geosGeometry ); -libgeom_export int getMbrGeom( mbr *res, wkb* geom ); +libgeom_export int wkb_isnil(wkb *wkbp); +libgeom_export int getMbrGeos(mbr *mbr, const GEOSGeom geosGeometry); +libgeom_export int getMbrGeom(mbr *res, wkb *geom); #endif /* LIBGEOM_H */ @c @@ -146,24 +143,24 @@ #include <math.h> void -libgeom_init(void) +libgeom_init(void) { - initGEOS((GEOSMessageHandler)GDKerror, (GEOSMessageHandler)GDKerror); - GEOS_setWKBByteOrder(1); /* NDR (little endian) */ + initGEOS((GEOSMessageHandler) GDKerror, (GEOSMessageHandler) GDKerror); + GEOS_setWKBByteOrder(1); /* NDR (little endian) */ printf("# MonetDB/GIS module loaded\n"); - fflush(stdout); /* make merovingian see this *now* */ + fflush(stdout); /* make merovingian see this *now* */ } void -libgeom_exit(void) +libgeom_exit(void) { finishGEOS(); } int -wkb_isnil(wkb *wkb) +wkb_isnil(wkb *w) { - if (!wkb || wkb->len == ~0) + if (!w ||w->len == ~0) return 1; return 0; } @@ -174,7 +171,7 @@ * of a GEOSGeom. */ int -getMbrGeos( mbr *res, const GEOSGeom geosGeometry ) +getMbrGeos(mbr *res, const GEOSGeom geosGeometry) { GEOSGeom envelope; double xmin, ymin, xmax, ymax; @@ -196,7 +193,7 @@ res->ymin = (float) ymin; res->xmax = (float) xmin; res->ymax = (float) ymin; - } else { /* GEOSGeomTypeId(envelope) == GEOS_POLYGON */ + } else { /* GEOSGeomTypeId(envelope) == GEOS_POLYGON */ #if GEOS_CAPI_VERSION_MAJOR >= 1 && GEOS_CAPI_VERSION_MINOR >= 3 const GEOSGeometry *ring = GEOSGetExteriorRing(envelope); #else @@ -206,7 +203,7 @@ #if GEOS_CAPI_VERSION_MAJOR >= 1 && GEOS_CAPI_VERSION_MINOR >= 3 const GEOSCoordSequence *coords = GEOSGeom_getCoordSeq(ring); #else - const GEOSCoordSeq coords = GEOSGeom_getCoordSeq(ring); + const GEOSCoordSeq coords = GEOSGeom_getCoordSeq(ring); #endif GEOSCoordSeq_getX(coords, 0, &xmin); GEOSCoordSeq_getY(coords, 0, &ymin); @@ -230,7 +227,7 @@ * A wrapper for getMbrGeos on a geom_geometry. */ int -getMbrGeom( mbr *res, wkb* geom ) +getMbrGeom(mbr *res, wkb *geom) { GEOSGeom geosGeometry = wkb2geos(geom); @@ -246,15 +243,20 @@ geom_type2str(int t) { switch (t) { - case wkbPoint: return "Point"; - case wkbLineString: return "Line"; - case wkbPolygon: return "Polygon"; - case wkbMultiPoint: return "MultiPoint"; - case wkbMultiLineString: return "MultiLine"; - case wkbMultiPolygon: return "MultiPolygon"; - case wkbGeometryCollection: return "GeomCollection"; + case wkbPoint: + return "Point"; + case wkbLineString: + return "Line"; + case wkbPolygon: + return "Polygon"; + case wkbMultiPoint: + return "MultiPoint"; + case wkbMultiLineString: + return "MultiLine"; + case wkbMultiPolygon: + return "MultiPolygon"; + case wkbGeometryCollection: + return "GeomCollection"; } return "unknown"; } - - diff --git a/geom/monetdb5/geom.mx b/geom/monetdb5/geom.mx --- a/geom/monetdb5/geom.mx +++ b/geom/monetdb5/geom.mx @@ -280,7 +280,7 @@ #define geom_export extern #endif -geom_export wkb * wkbNULL(void); +geom_export wkb *wkbNULL(void); #endif /* GEOM_H */ @@ -300,19 +300,17 @@ int TYPE_mbr; -geom_export bat* -geom_prelude(void); +geom_export bat *geom_prelude(void); -bat* +bat * geom_prelude(void) { libgeom_init(); TYPE_mbr = malAtomSize(sizeof(mbr), sizeof(oid), "mbr"); - return NULL; + return NULL; } -geom_export void -geom_epilogue(void); +geom_export void geom_epilogue(void); void geom_epilogue(void) @@ -324,20 +322,19 @@ * Implementation of fixed-sized atom mbr. */ static int -mbr_isnil(mbr *mbr) +mbr_isnil(mbr *m) { - if (!mbr || mbr->xmin == flt_nil || mbr->ymin == flt_nil || - mbr->xmax == flt_nil || mbr->ymax == flt_nil ) + if (!m || m->xmin == flt_nil || m->ymin == flt_nil || + m->xmax == flt_nil || m->ymax == flt_nil) return 1; return 0; } /* NULL: generic nil mbr. */ /* returns a pointer to a nil-mbr. */ -geom_export mbr* -mbrNULL(void); +geom_export mbr *mbrNULL(void); -mbr* +mbr * mbrNULL(void) { static mbr mbrNIL; @@ -350,32 +347,27 @@ /* FROMSTR: parse string to mbr. */ /* return number of parsed characters. */ -geom_export int -mbrFROMSTR( - char* src, /* IN: to-be-parsed string. */ - int* len, /* INOUT: length of area pointed to by atom [may need enlarging!] */ - mbr** atom /* INOUT: ptr to atom-ptr [may need (re-)alloc!] */ -); +geom_export int mbrFROMSTR(char *src, int *len, mbr **atom); int -mbrFROMSTR( - char* src, /* IN: to-be-parsed string. */ - int* len, /* INOUT: length of area pointed to by atom [may need enlarging!] */ - mbr** atom /* INOUT: ptr to atom-ptr [may need (re-)alloc!] */ -) +mbrFROMSTR(char *src, /* IN: to-be-parsed string. */ + int *len, /* INOUT: length of area pointed to by atom [may need enlarging!] */ + mbr **atom /* INOUT: ptr to atom-ptr [may need (re-)alloc!] */ + ) { int nil = 0; - int nchars = 0; /* The number of characters parsed; the return value. */ - GEOSGeom geosMbr = NULL; /* The geometry object that is parsed from the src string. */ - - if (strcmp(src, str_nil) == 0) + int nchars = 0; /* The number of characters parsed; the return value. */ + GEOSGeom geosMbr = NULL; /* The geometry object that is parsed from the src string. */ + + if (strcmp(src, str_nil) == 0) nil = 1; if (!nil && (geosMbr = GEOSGeomFromWKT(src)) == NULL) return 0; - if (*len < (int)sizeof(mbr)) { - if (*atom) GDKfree(*atom); + if (*len < (int) sizeof(mbr)) { + if (*atom) + GDKfree(*atom); *atom = GDKmalloc(*len = sizeof(mbr)); } if (nil) { @@ -395,37 +387,29 @@ /* TOSTR: print atom in a string. */ /* return length of resulting string. */ -geom_export int -mbrTOSTR( - char** dst, /* INOUT: dst charbuffer [maybe 0, may need realloc]*/ - int* len, /* INOUT: length of buffer */ - mbr* atom /* IN: to-be-printed mbr. */ -); +geom_export int mbrTOSTR(char **dst, int *len, mbr *atom); int -mbrTOSTR( - char** dst, /* INOUT: dst charbuffer [maybe 0, may need realloc]*/ - int* len, /* INOUT: length of buffer */ _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list