<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Wed, 7 Dec 2016 at 07:41 Even Rouault <<a href="mailto:even.rouault@spatialys.com">even.rouault@spatialys.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">On mardi 6 décembre 2016 20:31:57 CET Michael Sumner wrote:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> Thanks Even,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> Does a TriangulatedSurface consist of separate Triangles, all with each</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> three vertices stored explicitly? I.e. is there no shared vertex pool that</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> primitives use via index?</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
</div><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg"><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">Yes, the TriangulatedSurface is a collection of separate triangles. No smart optimization here. We stick to the simple features model.</p></div><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> That seems to be what simple features dictates, but it's unclear to me how</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> applications should work with it. Is vertex de-duplication to be be done at</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> each conversion, or is there a way to carry those indexes through?</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
</div><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg"><p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">Apart from shapefile/filegdb triangle strip/fan that could be considered as a kind of vertex indexing, the WKT/WKB representation (and thus the exchanges with PostGIS) don't have that.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">Actually you could retrieve an indexed view of the TIN by using the GDALTriangulationCreateDelaunay() API</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">( <a href="http://www.gdal.org/gdal__alg_8h.html#a498205ae5f4f0ec9f43e5c65bb392060" class="gmail_msg" target="_blank">http://www.gdal.org/gdal__alg_8h.html#a498205ae5f4f0ec9f43e5c65bb392060</a> ), although it is a bit overkill to recompute a triangulation from a set of triangles... (and the triangulation it will return will generally not be the original one)</p></div><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p></div></blockquote><div><br></div><div>Thanks Even, I was thinking of preserving an indexed mesh, with (for example) a constrained triangulation. Simple features will ingest this, but once it comes back out vertex de-duplication would be enough to restore the indexing. You'd need some record of vertex identity after they are expanded out on each triangle, but there's no internal way to ID them in simple fs (except maybe by using M). </div><div><br></div><div>I feel that simple features is not particularly useful in this regard, though fine as a one-way output from triangulation sources. I think TopoJSON is similar, in that all vertices are explict, there's no index -but because they are all integer-scaled in the context of the graph, there's no numerical difficulties with uniqueness.  Interested to hear other views, though appreciate that this is pretty off-topic. </div><div><br></div><div>Cheers, Mike. </div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">Even</p></div><div style="font-family:'monospace';font-size:9pt;font-weight:400;font-style:normal" class="gmail_msg">
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> Cheers, Mike</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> On Wed, Dec 7, 2016, 03:22 Even Rouault <<a href="mailto:even.rouault@spatialys.com" class="gmail_msg" target="_blank">even.rouault@spatialys.com</a>> wrote:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > Hi,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > This is a call to discuss the proposed RFC 64: Triangle, Polyhedral</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > surface and TIN</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > <a href="https://trac.osgeo.org/gdal/wiki/rfc64_triangle_polyhedralsurface_tin" class="gmail_msg" target="_blank">https://trac.osgeo.org/gdal/wiki/rfc64_triangle_polyhedralsurface_tin</a></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > ~~~~~</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > Summary:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > As of now, the OGRGeometry class (the base class from which all the</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > subtypes are derived) is limited to OGRCompoundCurve, OGRCircularString,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > OGRLinearRing, OGRMultiLineString, OGRMultiPoint, OGRMultiPolygon,</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > OGRMultiCurve, OGRSimpleCurve, OGRCurvePolygon and OGRPolygon.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > This RFC addresses the addition of the following new geometries in</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > OGRGeometry:</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > * Triangle - A subset of polygons, the fundamental difference is that it</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > is made of 3 nodes only (actually 4, with the last one being the</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > repetition</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > of the first one) and ONLY ONE exterior boundary and NO interior polygons.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > * PolyhedralSurface - A 3D figure made exclusively of Polygons.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > * TriangulatedSurface - A subset of PolyhedralSurface; a 3D figure which</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > consists exclusively of Triangles.</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > ~~~~~</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > I've rebased and extended the work done by Avyav during last GSoc on top</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > of current trunk, where it passes our continuous integration tests. I</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > think</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > we should consider merging it soon as it can easily rot if kept longer in</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > a</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > branch (the refresh from my previous branch dating to end of August was</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > rather painful)</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > Even</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > --</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > Spatialys - Geospatial professional services</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > <a href="http://www.spatialys.com" class="gmail_msg" target="_blank">http://www.spatialys.com</a></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > _______________________________________________</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > gdal-dev mailing list</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > <a href="mailto:gdal-dev@lists.osgeo.org" class="gmail_msg" target="_blank">gdal-dev@lists.osgeo.org</a></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">> > <a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" class="gmail_msg" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a></p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"> </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">-- </p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg">Spatialys - Geospatial professional services</p>
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px" class="gmail_msg"><a href="http://www.spatialys.com" class="gmail_msg" target="_blank">http://www.spatialys.com</a></p></div></blockquote></div></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr"><span>Dr. Michael Sumner</span><br><span>Software and Database Engineer</span><br><span>Australian Antarctic Division</span><br><span>203 Channel Highway</span><br><span>Kingston Tasmania 7050 Australia</span><br><br></div></div>