<div dir="ltr">Further thoughts on this: <div><br></div><div>- it would be nice if Vertex provided a userData field to carry references to user node objects.  That would avoid the need to subclass Vertex.</div><div>- Would it be nice to have a method to extract all the triangles around a given Vertex (or Coordinate)?  </div><div><br></div><div>Also, obviously I am specifying algorithms in a Java/JTS context.  Hopefully there are obvious C++/GEOS equivalents.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 4, 2017 at 10:51 AM, Martin Davis <span dir="ltr"><<a href="mailto:mtnclimb@gmail.com" target="_blank">mtnclimb@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">There is a "logic" to the ordering of the returned triangles, but it's not useful for associating triangles with their coordinates.  In fact, i can't think of how a ordered list could do this, given the many-to-many relationship between triangles and vertices.<div><br></div><div>So, there's two ways you can determine a mapping from triangles to nodes:</div><div><br></div><div>1. Build a TreeMap from the node Coordinate to the originating node object.  Then the nodes can be looked up for each triangle coordinate.</div><div><br></div><div>2. Use the lower-level methods of QuadEdgeSubdivision:</div><div>2.1 build explicit Vertex objects from node coordinates.  You will probably need to make your own subclass of Vertex to carry any extra information you need (such as a reference back to your original node objects)</div><div>2.2 create a QuadEdgeSubdivision</div><div>2.3 triangulate the vertices using  <wbr>IncrementalDelaunayTriangulato<wbr>r  (for an example see [1] )</div><div>2.4 use QuadEdgeSubdivision#<wbr>getTriangleVertices to get the triangles as arrays of Vertex objects. ( [2] )</div><div><br></div><div>Some feedback to confirm whether #2 works would be welcome.</div><div><br></div><div>[1] <a href="https://github.com/locationtech/jts/blob/master/modules/core/src/main/java/org/locationtech/jts/triangulate/DelaunayTriangulationBuilder.java#L144" target="_blank">https://github.com/<wbr>locationtech/jts/blob/master/<wbr>modules/core/src/main/java/<wbr>org/locationtech/jts/<wbr>triangulate/<wbr>DelaunayTriangulationBuilder.<wbr>java#L144</a></div><div>[2] <a href="https://github.com/locationtech/jts/blob/master/modules/core/src/main/java/org/locationtech/jts/triangulate/quadedge/QuadEdgeSubdivision.java#L746" target="_blank">https://github.com/<wbr>locationtech/jts/blob/master/<wbr>modules/core/src/main/java/<wbr>org/locationtech/jts/<wbr>triangulate/quadedge/<wbr>QuadEdgeSubdivision.java#L746</a></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 4, 2017 at 2:23 AM, Sandro Santilli <span dir="ltr"><<a href="mailto:strk@kbt.io" target="_blank">strk@kbt.io</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Sep 04, 2017 at 07:10:27PM +1000, Nyall Dawson wrote:<br>
> On 4 September 2017 at 17:31, Sandro Santilli <<a href="mailto:strk@kbt.io" target="_blank">strk@kbt.io</a>> wrote:<br>
> > On Mon, Sep 04, 2017 at 04:33:28PM +1000, Nyall Dawson wrote:<br>
> >> Hi list,<br>
> >><br>
> >> Quick question - is there any logic to the order of geometries in the<br>
> >> collection returned by calling GEOSDelaunayTriangulation?<br>
> >><br>
> >> I'm looking for a way to reliably associate the parts of the returned<br>
> >> collection with the original input nodes. Ideally I'd like to avoid<br>
> >> having to test for intersection for each of them.<br>
> ><br>
> > I don't think there's any promise about output order, so even if you<br>
> > find one now it won't necessarely remain.<br>
><br>
> That's what I suspected. How about geometry user data, could that<br>
> potentially be used here?<br>
<br>
I'm afraid you'll have to test. And same precautions apply:<br>
is it documented as being supported ?<br>
<br>
I'm adding Martin Davis in Cc as that class is ported from JTS.<br>
<br>
--strk;<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>