Boost logo

Geometry :

Subject: Re: [geometry] point on/intersects linestring?
From: Adam Wulkiewicz (adam.wulkiewicz_at_[hidden])
Date: 2013-09-03 16:43:25


Barend Gehrels wrote:
>
>>
>>> - does it work for degenerate segments (point 1 == point 2)? Seeing
>>> the patch it will divide by zero then?
>>
>> Hmm, I probably haven't thought about this particular case, only the
>> case when the segment is parallel to the edge (the difference of
>> coordinates for this dimension is also 0), but I've just tested it
>> and it works.
>
> Because you already have this implementation ready also supporting nD,
> we can merge it later with existing code, if convenient / necessary.
> So yes, could you apply the patches you send? I can add cases to the
> unit tests this weekend or so.

I started to think about the edge cases, e.g. (p1 == p2) && they're on
the box's edge, then there is division 0/0. So I propose that first I'll
check everything and write some tests to be sure if this really works
for all cases.

Also is it defined in the C++ standard what should be the representation
of floating point numbers? Are special values like INF always available?
On some compilers it's possible to enable exception throwing for cases
like division by 0 (I remember that e.g. Borland Builder had those). Not
to mention that probably in the whole Boost.Geometry operations like
division by 0 are avoided. So maybe it would be safer to add an if-check?

Regards,
Adam


Geometry list run by mateusz at loskot.net