[orx-shapes] Add WIP ContourAdjuster framework

This commit is contained in:
Edwin Jakobs
2023-10-23 12:27:45 +02:00
parent 7f41c263a7
commit e7f8add84e
17 changed files with 940 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
package org.openrndr.extra.shapes.utilities
import org.openrndr.shape.ShapeContour
import org.openrndr.shape.contour
/**
* Create a contour from a list of contours
*/
fun ShapeContour.Companion.fromContours(contours: List<ShapeContour>, closed: Boolean, connectEpsilon:Double=1E-6) : ShapeContour {
val contours = contours.filter { !it.empty }
if (contours.isEmpty()) {
return EMPTY
}
return contour {
moveTo(contours.first().position(0.0))
for (c in contours.windowed(2,1,true)) {
copy(c[0])
if (c.size == 2) {
if (c[0].position(1.0).distanceTo(c[1].position(0.0)) > connectEpsilon ) {
lineTo(c[1].position(0.0))
}
}
}
if (closed) {
close()
}
}
}