Hey Adam,
thank you very much for the response.
my original polygon example was bad.
but, i tried on this polygon :
  Polygon poly { { { 10, 10 }, { 20, 10 }, { 20, 5 }, { 25, 5 }, { 25, 7 }, { 30, 7 }, { 30, 3 }, { 25, 3 }, { 25, 5 }, { 20, 5 }, { 20, 0 }, { 10, 0 }, { 10, 10 } }};

and all i get is that there are two intersection points, and both are "touch".
and when i ran on your examples i got 4 collinear. 
is it a bug? am i doing something wrong?
much appreciated,
Sergei

On Wed, May 11, 2016 at 1:19 PM, Adam Wulkiewicz <adam.wulkiewicz@gmail.com> wrote:
Hi Sergei,

Sergei Benkovich wrote:
Hey,
i have an issue where i find self intersections in a polygon.but it doesn't seem to find the method_collinear type.

this is the piece of code:


  namespace bg = boost::geometry;
  using namespace std;
  typedef bg::model::d2::point_xy<double> point_2d;
  typedef bg::model::polygon<boost::geometry::model::d2::point_xy<double> > Polygon;
  Polygon poly;
  poly.outer().push_back(point_2d(0, 10));
  poly.outer().push_back(point_2d(10, 0));


Have in mind that this polygon is invalid (too small number of points) so it may even be ignored (I don't remember).
But of course if you had a valid polygon like:

Polygon poly{ { {0, 0},{0, 10}, {10, 10}, {10, 0}, {0, 0} } };

There would be no self intersections returned because the polygon is not self-intersecting.
However if you had a (invalid) Polygons like this:

Polygon poly{ { {0, 0},{0, 10}, {10, 10}, {10, 0}, {0, 0},{ 0, 10 },{ 10, 10 },{ 10, 0 },{ 0, 0 } } };
Polygon poly{ { {0, 0},{0, 10}, {10, 10}, {10, 0}, { 10, 10 },{ 0, 10 },{ 0, 0 } } };

you'd get collinear and blocking self-intersection turns respectively.

Regards,
Adam
_______________________________________________
Geometry mailing list
Geometry@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/geometry