Changeset: ee51683a82eb for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ee51683a82eb
Modified Files:
        geom/lib/libgeom.h
        geom/monetdb5/geom_x3d.c
Branch: sfcgal
Log Message:

Re-activate in X3D collections and fix the assert since we might receive a CURVE


diffs (70 lines):

diff --git a/geom/lib/libgeom.h b/geom/lib/libgeom.h
--- a/geom/lib/libgeom.h
+++ b/geom/lib/libgeom.h
@@ -95,6 +95,7 @@ 16 = TIN / TRIANGULATEDSURFACE
 17 = TRIANGLE
 
 */
+#define GEOS_CURVE 2
 
 typedef enum wkb_type {
        //wkbGeometry_mbd = 0,
diff --git a/geom/monetdb5/geom_x3d.c b/geom/monetdb5/geom_x3d.c
--- a/geom/monetdb5/geom_x3d.c
+++ b/geom/monetdb5/geom_x3d.c
@@ -11,8 +11,8 @@ static size_t x3d_3_multi_size(GEOSGeom 
 static char *x3d_3_multi(GEOSGeom col, int precision, int opts, const char 
*defid);
 static char *x3d_3_psurface(GEOSGeom psur, int precision, int opts, const char 
*defid);
 static char *x3d_3_tin(GEOSGeom tin, int precision, int opts, const char 
*defid);
-/*static size_t x3d_3_collection_size(GEOSGeom col, int precision, int opts, 
const char *defid);*/
-/*static char *x3d_3_collection(GEOSGeom col, int precision, int opts, const 
char *defid);*/
+static size_t x3d_3_collection_size(GEOSGeom col, int precision, int opts, 
const char *defid);
+static char *x3d_3_collection(GEOSGeom col, int precision, int opts, const 
char *defid);
 static size_t geom_toX3D3(const GEOSGeometry *geom, char *buf, int precision, 
int opts, int is_closed);
 
 static size_t geom_X3Dsize(const GEOSGeometry *geom, int precision);
@@ -66,8 +66,8 @@ geom_to_x3d_3(GEOSGeom geom, int precisi
             return x3d_3_tin(geom, precision, opts, defid);
 
         case wkbGeometryCollection_mdb:
-            return x3d_3_psurface(geom, precision, opts, defid);
-            //return x3d_3_collection(geom, precision, opts, defid);
+            //return x3d_3_psurface(geom, precision, opts, defid);
+            return x3d_3_collection(geom, precision, opts, defid);
 
         default:
             assert(0);
@@ -599,7 +599,6 @@ x3d_3_tin(GEOSGeom tin, int precision, i
     return x3d;
 }
 
-#if 0
 static size_t
 x3d_3_collection_size(GEOSGeom col, int precision, int opts, const char *defid)
 {
@@ -699,7 +698,6 @@ x3d_3_collection(GEOSGeom col, int preci
     x3d_3_collection_buf(col, x3d, precision, opts, defid);
     return x3d;
 }
-#endif
 
 static size_t
 geom_toX3D3(const GEOSGeometry *geom, char *output, int precision, int opts, 
int is_closed)
@@ -725,7 +723,7 @@ geom_toX3D3(const GEOSGeometry *geom, ch
                 if (GEOSGeomTypeId(geom) == GEOS_POINT) {
                     point = geom;
                 } else {
-                    assert(GEOSGeomTypeId(geom) == GEOS_LINESTRING);
+                    assert(GEOSGeomTypeId(geom) == GEOS_LINESTRING || 
GEOSGeomTypeId(geom) == GEOS_CURVE);
                     point = GEOSGeomGetPointN(geom, i);
                 }
                 GEOSGeomGetX(point, &pt_x);
@@ -764,7 +762,7 @@ geom_toX3D3(const GEOSGeometry *geom, ch
                 if (GEOSGeomTypeId(geom) == GEOS_POINT) {
                     point = geom;
                 } else {
-                    assert(GEOSGeomTypeId(geom) == GEOS_LINESTRING);
+                    assert(GEOSGeomTypeId(geom) == GEOS_LINESTRING || 
GEOSGeomTypeId(geom) == GEOS_CURVE);
                     point = GEOSGeomGetPointN(geom, i);
                 }
                 GEOSGeomGetX(point, &pt_x);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to