$include_dir="/home/hyper-archives/geometry/include"; include("$include_dir/msg-header.inc") ?>
Subject: [ggl] (spatial_)index::is_overlapping
From: Barend Gehrels (Barend.Gehrels)
Date: 2009-06-19 18:08:29
Hi Mateusz,
>>     
>>> I've simplified the function to this:
>>>
>>>     template <typename Box>
>>>     inline bool is_overlapping(Box const& b1, Box const& b2)
>>>     {
>>>         if (ggl::get<min_corner, 0>(b1) > ggl::get<max_corner, 0>(b2))
>>>             return false
>>>
>>>         if (ggl::get<max_corner, 0>(b1) < ggl::get<min_corner, 0>(b2))
>>>             return false;
>>>
>>>         if (ggl::get<min_corner, 1>(b1) > ggl::get<max_corner, 1>(b2))
>>>             return false;
>>>
>>>         if (ggl::get<max_corner, 1>(b1) < ggl::get<min_corner, 1>(b2))
>>>             return false;
>>>
>>>         return true;
>>>     }
>>>
>>>
>>> This should dramatically reduce the numbers of "get". Do you see an
>>> obvious flaw?
>>>
>>>       
>> OK and much better than what I just checked in, and somewhat faster.
>>     
>
> Barend,
>
> Just a side note, How do we know that?
>   
The speed:  In "other/dev" I've my checking program for the polygon 
"touches" algorithm. Not yet moved to "algorithms" (because the project 
didn't go through) but it is working. In that I've done some comparisons 
between spatial indexes / monotonic sections. I will write another mail 
about this later or put it on our Wiki.
However, I can check the speed of spatial indexes there, and in case of 
errors we (probably) get wrong results there. It is not yet a unit test 
but you see immediately if the index does not work.
The correctness: Actually the "intersects", what this function is, is 
just the ! disjoint. The disjoint is already implemented for box/box so 
this is another simpler version.
template <typename Box>
inline bool is_overlapping(Box const& b1, Box const& b2)
{
  return ! ggl::disjoint(b1, b2);
}
Regards, Barend
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/ggl/attachments/20090620/837b4953/attachment.html