$include_dir="/home/hyper-archives/geometry/include"; include("$include_dir/msg-header.inc") ?>
Subject: [geometry] Dissolve rescale_policy
From: Johan Doré (jdh_at_[hidden])
Date: 2016-03-04 12:43:11
Dear Boost Geometry
In version 1.60 wonder if there is an reason for the no_rescale_policy in the dissolve function:
inline void dissolve(Geometry const& geometry, Collection& output_collection)
{
  concept::check<Geometry const>();
  typedef typename boost::range_value<Collection>::type geometry_out;
  concept::check<geometry_out>();
  dispatch::dissolve
  <
    typename tag<Geometry>::type,
    typename tag<geometry_out>::type,
    Geometry,
    geometry_out
  >::apply(geometry, detail::no_rescale_policy(), std::back_inserter(output_collection));
}
Changing it to the robust policy:
inline void dissolve(Geometry const& geometry, Collection& output_collection)
{
  concept::check<Geometry const>();
  typedef typename boost::range_value<Collection>::type geometry_out;
  concept::check<geometry_out>();
  typedef typename geometry::rescale_policy_type
  <
    typename geometry::point_type<Geometry>::type
  >::type rescale_policy_type;
  rescale_policy_type robust_policy = geometry::get_rescale_policy<rescale_policy_type>(geometry);
  dispatch::dissolve
  <
    typename tag<Geometry>::type,
    typename tag<geometry_out>::type,
    Geometry,
    geometry_out
  >::apply(geometry, robust_policy, std::back_inserter(output_collection));
}
Seems to correctly dissolve a larger range of invalid polygons.
I therefore wonder if this change I recommendable and should be included?
Best regards
Johan