<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi all,<div class=""><br class=""></div><div class="">FYI: model, vertex, and edge creation operations are done and tested in SMTK for polygonal models but not merged yet. (It is in my github account on a branch named polygon.) A screenshot of the test dataset is attached and shows how a few odd conditions are handled:</div><div class=""><br class=""></div><div class="">+ the 4 vertices forming a small square near the center of the screenshot are placed into the model as model vertices;</div><div class="">+ the lower left shows how a request for 1 edge with 4 input points then gets turned into 4 edges due to self-intersection and contact with a pre-existing model vertex. 3 additional model vertices are created.</div><div class="">+ the bottom right shows how a request for 1 periodic edge with 5 input points is turned into 2 model edges. The model vertex in the output is not an input point; it is where 2 segments intersect.</div><div class="">+ the top left square shows a model edge with 5 input points and no model vertices.</div><div class=""><br class=""></div><div class="">There are some caveats:</div><div class=""><br class=""></div><div class="">+ the code used to enforce CCW-ordering of edges incident to each vertex is not numerically robust; it uses floating-point math and does not detect overflows or integer truncation due to the approximation of sqrt.</div><div class="">+ no GUI is provided for inserting points</div><div class=""><br class=""></div><div class="">The remaining operations to implement are (in rough order of priority):</div><div class=""><br class=""></div><div class="">+ create all possible, non-existent faces from a set of edges.</div><div class="">+ split an edge</div><div class="">+ merge edges</div><div class="">+ create a face given outer (and optionally inner) loops</div><div class="">+ move vertices (note that this could be very painful to do robustly when edges are attached).</div><div class="">+ booleans via boost.polygon</div><div class="">+ voronoi diagrams via boost.polygon</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>David</div><div class=""><div class=""><br class=""></div><div class=""><img apple-inline="yes" id="3F248F19-EC99-4887-8A39-9EF6E9FE5A12" height="321" width="301" apple-width="yes" apple-height="yes" src="cid:50C8E107-9AF7-4576-9140-E92E7F850BAA@kitware.com" class=""></div></div></body></html>