Boost-Geometry-Utils
view release on metacpan or search on metacpan
src/boost/geometry/io/dsv/write.hpp view on Meta::CPAN
struct dsv<segment_tag, Segment>
: detail::dsv::dsv_indexed<Segment>
{};
template <typename Ring>
struct dsv<ring_tag, Ring>
: detail::dsv::dsv_range<Ring>
{};
template <typename Polygon>
struct dsv<polygon_tag, Polygon>
: detail::dsv::dsv_poly<Polygon>
{};
} // namespace dispatch
#endif // DOXYGEN_NO_DISPATCH
#ifndef DOXYGEN_NO_DETAIL
namespace detail { namespace dsv
{
// FIXME: This class is not copyable/assignable but it is used as such --mloskot
template <typename Geometry>
class dsv_manipulator
{
public:
inline dsv_manipulator(Geometry const& g,
dsv_settings const& settings)
: m_geometry(g)
, m_settings(settings)
{}
template <typename Char, typename Traits>
inline friend std::basic_ostream<Char, Traits>& operator<<(
std::basic_ostream<Char, Traits>& os,
dsv_manipulator const& m)
{
dispatch::dsv
<
typename tag_cast
<
typename tag<Geometry>::type,
multi_tag
>::type,
Geometry
>::apply(os, m.m_geometry, m.m_settings);
os.flush();
return os;
}
private:
Geometry const& m_geometry;
dsv_settings m_settings;
};
}} // namespace detail::dsv
#endif // DOXYGEN_NO_DETAIL
/*!
\brief Main DSV-streaming function
\details DSV stands for Delimiter Separated Values. Geometries can be streamed
as DSV. There are defaults for all separators.
\note Useful for examples and testing purposes
\note With this function GeoJSON objects can be created, using the right
delimiters
\ingroup utility
*/
template <typename Geometry>
inline detail::dsv::dsv_manipulator<Geometry> dsv(Geometry const& geometry
, std::string const& coordinate_separator = ", "
, std::string const& point_open = "("
, std::string const& point_close = ")"
, std::string const& point_separator = ", "
, std::string const& list_open = "("
, std::string const& list_close = ")"
, std::string const& list_separator = ", "
)
{
concept::check<Geometry const>();
return detail::dsv::dsv_manipulator<Geometry>(geometry,
detail::dsv::dsv_settings(coordinate_separator,
point_open, point_close, point_separator,
list_open, list_close, list_separator));
}
}} // namespace boost::geometry
#endif // BOOST_GEOMETRY_IO_DSV_WRITE_HPP
( run in 1.533 second using v1.01-cache-2.11-cpan-140bd7fdf52 )