Ich versuche, 3D-Arbeit mit Javafx (mit der TornadoFX-Bibliothek) zu tun und kann nicht PerspectiveCamera
auf Scene
setzen, da Scene
null
zurückgibt.Warum ist meine Szene null?
ich mein Programm starten wie folgt:
class ThreeDTest : App(HomeView::class, ThreeDStyles::class) {
override fun start(stage: Stage) {
super.start(stage)
stage.show()
stage.scene.fill = Color.BLACK
val primaryScreenBounds = Screen.getPrimary().visualBounds
stage.maxWidth = 1920.0
stage.maxHeight = 1080.0
stage.minWidth = 1920.0
stage.minHeight = 1080.0
}
}
und dann in HomeView
Klasse Ich habe diese:
class HomeView : View() {
override val root = stackpane {
val axisGroup = Xform()
val world = Xform()
val camera = PerspectiveCamera(true)
val cameraXform = Xform()
val cameraXform2 = Xform()
val cameraXform3 = Xform()
val cameraInitialDistance = -450.0
val cameraInitialXAngle = 70.0
val cameraInitialYAngle = 320.0
val cameraNearClip = 0.1
val cameraFarClip = 10000.0
//just a builder class to add properties to the camera
buildCamera(this, cameraXform, cameraXform2, cameraXform3, camera, cameraNearClip, cameraFarClip, cameraInitialDistance,
cameraInitialYAngle, cameraInitialXAngle)
buildAxes(axisGroup, world)
println(scene)
//returns null
scene.camera = camera
//this does not work as scene is null
}
Gibt es etwas, was ich falsch mache? Ich habe keine Ahnung, warum meine Scene
Null ist, wie ich dachte, TornadoFX View
sollte eine neue Scene
erstellen, wenn es initialisiert wird? Muss ich es manuell in der App-Klasse erstellen? Ich versuchte, die createPrimaryScene
Funktion außer Kraft zu setzen, und bewegte auch meinen Code zu einer init
Funktion innerhalb der HomeView
Ansicht - beide mit keinem Erfolg.
Irgendwelche Ideen? Hier Haare herausziehen.
(Oh, und auf einer nicht verwandte Notiz, konnte ich nur sagen, dass mit 3D-Unterstützung in TornadoFX wäre, ehrlich gesagt, mein ganzes Leben lang machen?)
Wir werden definitiv in die Erstellung von 3D-Builder für TornadoFX :) –