[orx-delegate-magic] Add more magic
This commit is contained in:
40
orx-delegate-magic/src/jvmDemo/kotlin/DemoDifferencing01.kt
Normal file
40
orx-delegate-magic/src/jvmDemo/kotlin/DemoDifferencing01.kt
Normal file
@@ -0,0 +1,40 @@
|
||||
import difference.differencing
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.extra.delegatemagic.aggregation.aggregating
|
||||
import org.openrndr.extra.delegatemagic.aggregation.maxMag
|
||||
import org.openrndr.extra.delegatemagic.tracking.tracking
|
||||
import org.openrndr.extra.gui.GUI
|
||||
import org.openrndr.extra.parameters.DoubleParameter
|
||||
import org.openrndr.math.Vector2
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
val gui = GUI()
|
||||
|
||||
val state = object {
|
||||
@DoubleParameter("radius", 0.0, 200.0)
|
||||
var radius = 100.0
|
||||
|
||||
val difference by differencing(::radius)
|
||||
val differenceHistory by tracking(::difference)
|
||||
val differenceMax by aggregating(::differenceHistory) {
|
||||
it.maxMag()
|
||||
}
|
||||
}
|
||||
|
||||
gui.add(state, "state")
|
||||
|
||||
extend(gui)
|
||||
extend {
|
||||
drawer.circle(drawer.bounds.center, state.radius)
|
||||
drawer.stroke = ColorRGBa.GREEN
|
||||
drawer.lineSegment(drawer.bounds.center, drawer.bounds.center + Vector2(state.difference, 0.0))
|
||||
drawer.translate(0.0, 4.0)
|
||||
drawer.stroke = ColorRGBa.BLUE
|
||||
drawer.lineSegment(drawer.bounds.center, drawer.bounds.center + Vector2(state.differenceMax, 0.0))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user