import org.openrndr.application
import org.openrndr.extensions.SingleScreenshot
import org.openrndr.extra.keyframer.Keyframer
import org.openrndr.resourceUrl
import java.net.URL

fun main() = application {
    program {
        class Animation : Keyframer() {
            val position by Vector2Channel(arrayOf("x", "y"))
            val radius by DoubleChannel("x")
        }

        val animation = Animation()
        animation.loadFromJson(URL(resourceUrl("/demo-simple-expressions-01.json")),
                parameters = mapOf("cycleDuration" to 2.0))
        if (System.getProperty("takeScreenshot") == "true") {
            extend(SingleScreenshot()) {
                this.outputFile = System.getProperty("screenshotPath")
            }
        }
        extend {
            animation(seconds)
            drawer.circle(animation.position, animation.radius)
        }
    }
}