Aquileo | Recent changes to 208: SimplifyPolygons fails to merge horizontal edgeshttps://sourceforge.net/p/polyclipping/bugs/208/Recent changes to 208: SimplifyPolygons fails to merge horizontal edgesenTue, 03 Aug 2021 15:33:07 -0000Aquileo | SimplifyPolygons fails to merge horizontal edgeshttps://sourceforge.net/p/polyclipping/bugs/208/<div class="markdown_content"><p>Hi,</p> <p>SimplifyPolygons has a problem when processing horizontal joins. The polygon merging done for the first join modifies the polygon points in a way that the second join can not be processed afterwards (the GetOverlap no longer detects an overlap and ignores it). That's why the following examples return more than one result polygon:</p> <div class="codehilite"><pre><span></span><span class="nt">int</span> <span class="nt">main</span><span class="o">()</span> <span class="p">{</span> <span class="err">Paths</span> <span class="err">paths({</span> <span class="err">{</span> <span class="err">{110,50</span><span class="p">}</span><span class="o">,</span> <span class="p">{</span><span class="err">110,100</span><span class="p">}</span><span class="o">,</span> <span class="p">{</span><span class="err">90,100</span><span class="p">}</span> <span class="err">}</span><span class="o">,</span> <span class="p">{</span> <span class="err">{10,100</span><span class="p">}</span><span class="o">,</span> <span class="p">{</span><span class="err">100,100</span><span class="p">}</span><span class="o">,</span> <span class="p">{</span><span class="err">100,190</span><span class="p">}</span> <span class="err">}</span><span class="o">,</span> <span class="p">{</span> <span class="err">{40,50</span><span class="p">}</span><span class="o">,</span> <span class="p">{</span><span class="err">40,100</span><span class="p">}</span><span class="o">,</span> <span class="p">{</span><span class="err">20,100</span><span class="p">}</span> <span class="err">}</span><span class="o">,</span> <span class="err">}</span><span class="o">);</span> <span class="nt">Paths</span> <span class="nt">simplifiedPaths</span><span class="o">;</span> <span class="nt">SimplifyPolygons</span><span class="o">(</span><span class="nt">paths</span><span class="o">,</span> <span class="nt">simplifiedPaths</span><span class="o">,</span> <span class="nt">ClipperLib</span><span class="p">::</span><span class="nd">pftPositive</span><span class="o">);</span> <span class="nt">cout</span> <span class="o">&lt;&lt;</span> <span class="s2">"simplified:"</span> <span class="o">&lt;&lt;</span> <span class="nt">endl</span><span class="o">;</span> <span class="nt">cout</span> <span class="o">&lt;&lt;</span> <span class="nt">simplifiedPaths</span> <span class="o">&lt;&lt;</span> <span class="nt">endl</span><span class="o">;</span> <span class="err">}</span> </pre></div> <p>Second example:</p> <div class="codehilite"><pre><span></span> Paths paths({ { {90,100}, {80,100}, {85,60} }, { {10,100}, {90,100}, {50,190} }, { {110,100}, {85,100}, {97,60} }, { {105,100}, {115,100}, {110,140} } }); </pre></div> <p>I've attached two images for visualization.</p></div>Joachim GrillTue, 03 Aug 2021 15:33:07 -0000https://sourceforge.net6d2f7f6dce5a85d893abcae5c1d255a904bf7a6d