octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GSoC '16 - Boolean Operations on Polygons : Merge Code to geometry P


From: John Swensen
Subject: Re: GSoC '16 - Boolean Operations on Polygons : Merge Code to geometry Package
Date: Mon, 15 Aug 2016 11:57:54 -0700

> On Aug 15, 2016, at 11:31 AM, PhilipNienhuis <address@hidden> wrote:
> 
> John, 
> 
> It wasn't my intention  to blame anyone :-)  I just made the observation
> that apparently some duplicate work has been done due to less than optimal
> communications. From my side setting insufficient priority (due to lack of
> time) is also to "blame"; probably the same goes for JuanPi. Well, that is
> how it goes with volunteer projects.
> 
> However, the not-to-be-ignored upside of that is that we now have choice; we
> can select the best solutions/implementations or make a combination of the
> best ones.
> 
> I agree with what you wrote about polytri - AFAICS Matlab also suggests to
> use poly2fv rather than polycut. I just "made" polycut.m because I already
> had a similar implementation lying around. Initially I didn't even know
> about the existence of polycut in TMW's mapping toolbox, I just found that
> the use of branch cuts was one way of properly drawing of (nested) polygons
> with holes and initially my sub-function for that job was called
> "optimize_branch_cuts" (it is in shapedraw.m in the mapping package).
> 
> A remaining question for me is how to interpolate clipped Z-values. In my
> work I often have "3D"-planes (e.g., polygons of semi-3D tiles of geological
> strata) that I want to visualize in 3D views. I know that clipperlib can do
> it using callbacks.
> In a more general sense, unlike Matlab's mapping toolbox I'd like all
> polygon functions in the mapping package  to be able to handle semi-3D
> polygons (i.e.,polygons with different Z-values for each vertex). Most of
> what I have made already does so.
> 
> OK, as far as I'm concerned to be continued later this week,
> 
> Philip
> 
> 
> 
> --
> View this message in context: 
> http://octave.1599824.n4.nabble.com/GSoC-16-Boolean-Operations-on-Polygons-Merge-Code-to-geometry-Package-tp4679083p4679230.html
> Sent from the Octave - Maintainers mailing list archive at Nabble.com.
> 

I think that the Z-values for the vertices might be pretty simple with the 
Boost.Geometry solution. We can define the point model in any manner we want 
internally for use by the Boost algorithms. This could easily be adapted to 
include a Z-value. However, what you would probably need to give us is a 
specified algorithm for how to determine the Z-value of the output vertices of 
an operation, based on the Z-values of the inputs. 

For example, if you are doing a difference between two polygons A and B as A-B, 
can you assume that all the vertices of A have the same Z-value and all the 
vertices of B have the same Z-value? Should the output of the A-B operation 
have the Z-values of A, the Z-valuse of B, or the average of the Z-values of A 
and B? I think that once the logic of how resultant Z-values are determined 
that the implementation should be pretty straightforward, even if it is don’t 
as a “post” step after the Boost.Geometry polygon operation.

The nice thing about using the Z-values is that we can just modify the various 
functions we have made (polyjoin, polysplit, poly2fv, polybool) so that they 
have an optional third parameter and will only include Z-values in the output 
if it included Z-values for the input.

John




reply via email to

[Prev in Thread] Current Thread [Next in Thread]