Boost logo

Geometry :

Subject: Re: [geometry] "covered_by" for polygons
From: Volker Schöch (vschoech_at_[hidden])
Date: 2012-02-16 04:45:15


Barend,

> > Any pros or cons for A.covered_by(B) := area(A-B)==0 vs. A.covered_by(B) := (A&B)==A ?
>
> The difference and intersection do have the same complexity and precision.

Thanks, that's what I expected.

> The equals-test will cost you more than the area-test.

That's a detail I wasn't aware of. I'll prefer the A-B implementation then. Given that A and B are multi-polygons, and based on your reply to my earlier post < http://lists.boost.org/geometry/2012/02/1818.php> I assume that I can simply check for empty() and skip the area test altogether. In other words: Is there a guarantee that if A is covered by B, (A-B) will be an empty container, rather than a container that contains one or more empty polygons?

> But area(A-B)==0 is not always a good test. Suppose A is empty. Than A-B = empty as well. But A is not covered by B

Sure. We will have to decide what we need in these corner cases and treat them explicitly if need be. What is your approach? Will an empty (multi-)polygon be a valid input to a (currently hypothetical) implementation of covered_by?
 
> > Do you think there are any optimization opportunities in a dedicated covered_by algorithm?
>
> The intersection or difference operations are not necessary. Getting intersection points and some additional logic should be enough.

Ok then, I'm looking forward to a dedicated implementation some day! :-)
Thanks again
   Volker

--
Volker Schöch | vschoech_at_[hidden]
Senior Software Engineer
think-cell Software GmbH | Chausseestr. 8/E | 10115 Berlin | Germany
http://www.think-cell.com | phone +49 30 666473-10 | US phone +1 800 891 8091
Amtsgericht Berlin-Charlottenburg, HRB 85229 | European Union VAT Id DE813474306
Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl

Geometry list run by mateusz at loskot.net