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)
|
|
|
|
}
|