geometry_ptr read() { geometry_ptr geom; int type=read_integer(); switch (type) { case wkbPoint: geom = read_point(); break; case wkbLineString: geom = read_linestring(); break; case wkbPolygon: geom = read_polygon(); break; case wkbMultiPoint: geom = read_multipoint(); break; case wkbMultiLineString: geom = read_multilinestring(); break; case wkbMultiPolygon: geom=read_multipolygon(); break; case wkbGeometryCollection: break; default: break; } return geom; }
void read_multilinestring(boost::ptr_vector<geometry_type> & paths) { int num_lines = read_integer(); for (int i = 0; i < num_lines; ++i) { pos_ += 5; read_linestring(paths); } }
void read(boost::ptr_vector<geometry_type> & paths) { int type = read_integer(); #ifdef MAPNIK_LOG MAPNIK_LOG_DEBUG(wkb_reader) << "wkb_reader: Read=" << wkb_geometry_type_string(type) << "," << type; #endif switch (type) { case wkbPoint: read_point(paths); break; case wkbLineString: read_linestring(paths); break; case wkbPolygon: read_polygon(paths); break; case wkbMultiPoint: read_multipoint(paths); break; case wkbMultiLineString: read_multilinestring(paths); break; case wkbMultiPolygon: read_multipolygon(paths); break; case wkbGeometryCollection: read_collection(paths); break; case wkbPointZ: read_point_xyz(paths); break; case wkbLineStringZ: read_linestring_xyz(paths); break; case wkbPolygonZ: read_polygon_xyz(paths); break; case wkbMultiPointZ: read_multipoint_xyz(paths); break; case wkbMultiLineStringZ: read_multilinestring_xyz(paths); break; case wkbMultiPolygonZ: read_multipolygon_xyz(paths); break; case wkbGeometryCollectionZ: read_collection(paths); break; default: break; } }
void read(boost::ptr_vector<geometry_type> & paths) { int type = read_integer(); switch (type) { case wkbPoint: read_point(paths); break; case wkbLineString: read_linestring(paths); break; case wkbPolygon: read_polygon(paths); break; case wkbMultiPoint: read_multipoint(paths); break; case wkbMultiLineString: read_multilinestring(paths); break; case wkbMultiPolygon: read_multipolygon(paths); break; case wkbGeometryCollection: read_collection(paths); break; case wkbPointZ: read_point_xyz(paths); break; case wkbLineStringZ: read_linestring_xyz(paths); break; case wkbPolygonZ: read_polygon_xyz(paths); break; case wkbMultiPointZ: read_multipoint_xyz(paths); break; case wkbMultiLineStringZ: read_multilinestring_xyz(paths); break; case wkbMultiPolygonZ: read_multipolygon_xyz(paths); break; case wkbGeometryCollectionZ: read_collection(paths); break; default: break; } }
mapnik::geometry::geometry<double> read() { mapnik::geometry::geometry<double> geom = mapnik::geometry::geometry_empty(); int type = read_integer(); switch (type) { case wkbPoint: geom = std::move(read_point()); break; case wkbLineString: geom = std::move(read_linestring()); break; case wkbPolygon: geom = std::move(read_polygon()); break; case wkbMultiPoint: geom = std::move(read_multipoint()); break; case wkbMultiLineString: geom = std::move(read_multilinestring()); break; case wkbMultiPolygon: geom = std::move(read_multipolygon()); break; case wkbGeometryCollection: geom = std::move(read_collection()); break; case wkbPointZ: case wkbPointM: geom = std::move(read_point<true>()); break; case wkbPointZM: geom = std::move(read_point<true,true>()); break; case wkbLineStringZ: case wkbLineStringM: geom = std::move(read_linestring<true>()); break; case wkbLineStringZM: geom = std::move(read_linestring<true,true>()); break; case wkbPolygonZ: case wkbPolygonM: geom = std::move(read_polygon<true>()); break; case wkbPolygonZM: geom = std::move(read_polygon<true,true>()); break; case wkbMultiPointZ: case wkbMultiPointM: geom = std::move(read_multipoint<true>()); break; case wkbMultiPointZM: geom = std::move(read_multipoint<true,true>()); break; case wkbMultiLineStringZ: case wkbMultiLineStringM: geom = std::move(read_multilinestring<true>()); break; case wkbMultiLineStringZM: geom = std::move(read_multilinestring<true,true>()); break; case wkbMultiPolygonZ: case wkbMultiPolygonM: geom = std::move(read_multipolygon<true>()); break; case wkbMultiPolygonZM: geom = std::move(read_multipolygon<true,true>()); break; case wkbGeometryCollectionZ: case wkbGeometryCollectionM: case wkbGeometryCollectionZM: geom = std::move(read_collection()); break; default: break; } return geom; }