54 lines
1.5 KiB
Kotlin
Raw Normal View History

2020-03-23 22:19:52 +03:00
import hep.dataforge.context.Global
import hep.dataforge.js.Application
import hep.dataforge.js.startApplication
import hep.dataforge.names.Name
2020-08-05 22:03:47 +03:00
import hep.dataforge.vision.bootstrap.objectTree
import hep.dataforge.vision.bootstrap.visualPropertyEditor
import hep.dataforge.vision.spatial.Point3D
2020-08-05 22:22:24 +03:00
import hep.dataforge.vision.spatial.VisionGroup3D
2020-08-05 22:03:47 +03:00
import hep.dataforge.vision.spatial.box
import hep.dataforge.vision.spatial.group
import hep.dataforge.vision.spatial.three.ThreePlugin
import hep.dataforge.vision.spatial.three.threeCanvas
2020-03-23 22:19:52 +03:00
import org.w3c.dom.HTMLElement
import react.dom.div
import react.dom.render
import kotlin.browser.document
private class PlayGroundApp : Application {
private val three = Global.plugins.fetch(ThreePlugin)
override fun start(state: Map<String, Any>) {
val element =
document.getElementById("app") as? HTMLElement ?: error("Element with id 'canvas' not found on page")
2020-08-05 22:22:24 +03:00
val obj = VisionGroup3D().apply {
2020-03-23 22:37:02 +03:00
box(100, 100, 100, name = "A")
group("B") {
2020-03-23 22:19:52 +03:00
position = Point3D(120, 0, 0)
2020-03-23 22:37:02 +03:00
box(100, 100, 100, name = "C")
2020-03-23 22:19:52 +03:00
}
}
render(element) {
div("row") {
div("col-3") {
objectTree(obj)
}
div("col-6") {
threeCanvas(obj)
}
div("col-3") {
visualPropertyEditor(Name.EMPTY, obj)
}
}
}
}
}
fun main() {
startApplication(::PlayGroundApp)
}