Karsten Schmidt<p>Still only on a feature branch, but over the past few days I've been working on updating <a href="https://thi.ng/geom" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/geom</span><span class="invisible"></span></a> to add support for polygons with holes and paths with holes (or more generally support for sub-paths, e.g. multiple curves). Since both of these shape types are containers of multiple geometries and therefore require in some situations (e.g. shape conversions) different handling than the other shapes with a single boundary/geometry, adding support for these also includes updating a dozen or so polymorphic shape operators/functions and unfortunately will involve a few of breaking changes. For instance, some of these functions are returning an array of shapes now, instead of just a single one. Also related, some of the other geom support packages (e.g. <a href="https://thi.ng/geom-axidraw" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/geom-axidraw</span><span class="invisible"></span></a>, <a href="https://thi.ng/geom-sdf" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="">thi.ng/geom-sdf</span><span class="invisible"></span></a>) will have to be refactored more and partially have been already (likely only internally, though)...</p><p>As part of this work, I've also just added example #160(!!!) to demonstrate & test out some of this new functionality:</p><p>Demo:<br><a href="https://demo.thi.ng/umbrella/geom-complex-poly/" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">demo.thi.ng/umbrella/geom-comp</span><span class="invisible">lex-poly/</span></a></p><p>Source:<br><a href="https://github.com/thi-ng/umbrella/blob/feature/geom-complex-paths/examples/geom-complex-poly/src/index.ts" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/blo</span><span class="invisible">b/feature/geom-complex-paths/examples/geom-complex-poly/src/index.ts</span></a></p><p>Commits:<br><a href="https://github.com/thi-ng/umbrella/compare/feature/geom-complex-paths" rel="nofollow noopener noreferrer" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/thi-ng/umbrella/com</span><span class="invisible">pare/feature/geom-complex-paths</span></a></p><p>I will of course send another update once this all has been merged & released...</p><p><a href="https://mastodon.thi.ng/tags/ThingUmbrella" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>ThingUmbrella</span></a> <a href="https://mastodon.thi.ng/tags/Geometry" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Geometry</span></a> <a href="https://mastodon.thi.ng/tags/Polygons" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Polygons</span></a> <a href="https://mastodon.thi.ng/tags/Shapes" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Shapes</span></a> <a href="https://mastodon.thi.ng/tags/PoissonDisk" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>PoissonDisk</span></a> <a href="https://mastodon.thi.ng/tags/TypeScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>TypeScript</span></a> <a href="https://mastodon.thi.ng/tags/JavaScript" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>JavaScript</span></a> <a href="https://mastodon.thi.ng/tags/OpenSource" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>OpenSource</span></a></p>