diff --git a/include/mapnik/util/geometry_to_svg.hpp b/include/mapnik/util/geometry_to_svg.hpp new file mode 100644 index 000000000..fd18e3e97 --- /dev/null +++ b/include/mapnik/util/geometry_to_svg.hpp @@ -0,0 +1,65 @@ +/***************************************************************************** + * + * This file is part of Mapnik (c++ mapping toolkit) + * + * Copyright (C) 2011 Artem Pavlenko + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + * + *****************************************************************************/ + +//$Id$ + +#ifndef MAPNIK_GEOMETRY_TO_SVG_HPP +#define MAPNIK_GEOMETRY_TO_SVG_HPP + +// mapnik +#include +#include +#include +#include + +// boost +#include +#include +#include +#include +#include +#include + +//#define BOOST_SPIRIT_USE_PHOENIX_V3 1 + +namespace mapnik { namespace util { + +namespace karma = boost::spirit::karma; +namespace phoenix = boost::phoenix; + +template +bool generate_svg (OutputIterator sink, mapnik::geometry_type const& geom) +{ + using boost::spirit::karma::double_; + using boost::spirit::karma::uint_; + using boost::spirit::karma::generate; + return generate (sink, + // begin grammar + ((&uint_(mapnik::SEG_MOVETO) << 'M' | 'L') + << " " << double_ << " " << double_) % ' ' + // end grammar + , geom); +} + +}} + +#endif // MAPNIK_GEOMETRY_TO_SVG_HPP