I am loading a QML 3D scene from PyQT5 within an ApplicationWindow. however, I am not able to pan and rotate my custom model with the mouse.
import QtQuick.Controls 2.5
import QtQuick.Scene3D 2.12
import Qt3D.Core 2.12
import Qt3D.Render 2.12
import Qt3D.Input 2.12
import Qt3D.Extras 2.13
import QtQuick 2.12 as QQ2
ApplicationWindow{
Scene3D {
id: scene3d
anchors.fill: parent
anchors.margins: 10
focus: true
aspects: "input"
FirstPersonCameraController {
camera: camera
}
Entity {
id: sceneRoot
Camera {
id: camera
projectionType: CameraLens.PerspectiveProjection
fieldOfView: 45
nearPlane : 0.1
farPlane : 1000.0
position: Qt.vector3d( 0.0, 0.0, 40.0 )
upVector: Qt.vector3d( 0.0, 1.0, 1.0 )
viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
PointLight{
id:pl3
}
}
ObjectPicker{
id: spherePicker
onPressed:{
console.log("Sphere clicked")
}
}
components: [
RenderSettings {
activeFrameGraph: ForwardRenderer {
camera: camera
clearColor: "transparent"
}
},
InputSettings { }
]
PhongMaterial {
id: material
diffuse:Qt.rgba(0.5,0.5,0,1)
}
PointLight{
id:pl2
}
Mesh {
id: esh
source: "egg1.obj"
}
Transform {
id: torusTransform
scale3D: Qt.vector3d(5, 5, 5)
rotation: fromAxisAndAngle(Qt.vector3d(1, 1, 0), 45)
}
Entity {
id: torusEntity
components: [ esh, material, torusTransform,spherePicker ]
}
}
}
}
The model loads correctly just that I am not able to control it's rotation wit the mouse.
I am thinking this has got to do with the "FirstPersonCameraController"
I am not able to verify this myself at the moment but I assume you have to move your FirstPersonCameraController
within your root entity called sceneRoot
.
Right now it is a child of the Scene3D
. Try to move it below the Camera
node and see if that works.
By the way: I'm assuming that you mean you can't control the camera and that's what you want when you say
The model loads correctly just that I am not able to control it's rotation wit the mouse.