map overlay of planar subdivisions

classic Classic list List threaded Threaded
4 messages Options
ant
Reply | Threaded
Open this post in threaded view
|

map overlay of planar subdivisions

ant
Hi,

I would like to compute the overlay of two planar subdivisions (polygonal meshes) such that the result is the maximal connected subset of the polygon face intersections.  Ideally it would also provide the reference information from the new polygons to the containing faces from the originating subdivisions.

This looks like similar functionality to Boost.Geometry's union_: return all constituent sub-polygons rather than just the outlined union.  Could you tell me if detail::overlay as called by union_ is intended for public use since I can't find documentation for it, and provide some guidance on how to achieve the above?

I should add that I am new to GGL and am only familiar with a small subset of boost.

thanks,
Rob
Reply | Threaded
Open this post in threaded view
|

Re: map overlay of planar subdivisions

Barend
Hi Rob,


> I would like to compute the overlay of two planar subdivisions (polygonal
> meshes) such that the result is the maximal connected subset of the polygon
> face intersections.  Ideally it would also provide the reference information
> from the new polygons to the containing faces from the originating
> subdivisions.
>
> This looks like similar functionality to Boost.Geometry's union_: return all
> constituent sub-polygons rather than just the outlined union.  Could you
> tell me if detail::overlay as called by union_ is intended for public use
> since I can't find documentation for it, and provide some guidance on how to
> achieve the above?

Basically all Boost.Geometry functions work (as OGC does) per object, or
per pair of objects.

You can see your planar subdivision as a multi-polygon (one object), but
then you run into a problem: it is not valid. Because multi-polygons may
only touch tangentially, not side-by-side. Besides this, you will loose
the reference information.

So the way to go is to match all polygons of set A with all polygons of
set B. You can do that quadratically, but better is use the partition
algorithm, with which you can speed the process up. If you do it polygon
per polygon, you can keep track of the information yourself.

Note that this is quite similar to the question of Vishnu asked before
on this list, see this thread:
<http://boost-geometry.203548.n3.nabble.com/intersection-of-two-vectors-of-polygons-td2875513.html>

including samples (search for codepad).

detail:: functions are not intended for public usage, they are not (yet)
documented and (more important) the interface might change.


Regards, Barend

_______________________________________________
ggl mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/ggl
ant
Reply | Threaded
Open this post in threaded view
|

Re: map overlay of planar subdivisions

ant
Hi Barend,

Thanks for your explanation.  That thread is very interesting the code examples very useful (apologies for not finding it myself...).

Rob
Reply | Threaded
Open this post in threaded view
|

Re: map overlay of planar subdivisions

Barend
Hi Rob,

On 20-7-2011 11:59, ant wrote:
> Hi Barend,
>
> Thanks for your explanation.  That thread is very interesting the code
> examples very useful (apologies for not finding it myself...).

OK, you are welcome, no problem.

Regards, Barend


_______________________________________________
ggl mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/ggl