<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Graham,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Please do keep us posted on this with your trials and share your code.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>As a fellow member of the “not one of us” crowd, I am interested in pushing GEOS beyond the very confined geography domain.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Regina<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> geos-devel [mailto:geos-devel-bounces@lists.osgeo.org] <b>On Behalf Of </b>Graham Toal<br><b>Sent:</b> Wednesday, March 8, 2023 3:39 PM<br><b>To:</b> GEOS Development List <geos-devel@lists.osgeo.org><br><b>Subject:</b> Re: [geos-devel] Writing a wrapper around LibGEOS<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Wed, Mar 8, 2023 at 1:12 PM Martin Davis <<a href="mailto:mtnclimb@gmail.com">mtnclimb@gmail.com</a>> wrote:<o:p></o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal>As others have said on this thread, adding curve support to GEOS is likely to be a big effort.  <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>My opinion is that to consider an extension of this magnitude, there needs to be evidence that this initiative is feasible and sustainable over the long term (at least 10 years). A good way to demonstrate this is a separate project that extends GEOS with support for representing curves, and implementing a *significant* set of *native* operations on curves.  That project should have at least two developers contributing algorithmic code to it, to show that there is ability and desire to maintain such complex code over the long term.<o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>You may find it surprising, but I do appreciate this point of view, and agree in as much as if I am the only person advocating for it, it's not going to happen as frankly I'm not "one of us" - I'm not a geographer and my interest in GEOS is primarily in how far I can stretch it in the direction of being a generic domain-independent polygon package that could be used in CAD and other fields. This may not be something you're interested in and there may not be enough interest in adding curves to the package from programmers working in the geography field.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>And also I agree that a concrete demonstration in terms of a fork or pull request is a precondition to a more significant effort by the current maintainers; and I'd be happy to start that myself *if* I were a C++ programmer, but at the age of 65 I honestly do not have the enthusiasm to learn another language to the depth that I know C, which I think is a pre-requisite for working on a released codebase in any language.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>So I'll continue to potter on working on an interface layered on top of your package (which is pretty good - the best of all the ones I've looked at, that support calling from C) and if any of the GEOS developers find anything I'm working on useful in the future then maybe you'll revisit the suggestion of adding curves.  I'll drop in infrequently with status updates - and if they're not welcome or irrelevant, do say so and I'll stop. I'm pretty thick skinned and won't take offence.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Incidentally I got the code to do the inverse flattening working relatively well last night.  I thought at first it was producing more Bezier segments than were needed until I worked out the math that showed that the elliptical arcs I was reconstituting were literally not possible with a single Bezier curve. So, progress.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Regards,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Graham<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></div></body></html>