Fix building with Quick 3D dev

Adjust to camera changes b74fde27@qtquick3d

Task-number: QTBUG-95932
Change-Id: Id7408541caaebb0ee18240e7bc4208ac416fb0b9
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Reviewed-by: Jonas Karlsson <jonas.karlsson@qt.io>
Reviewed-by: Knud Dollereder <knud.dollereder@qt.io>
This commit is contained in:
Kaj Grönholm
2021-08-24 16:02:08 +03:00
parent c7de2a224f
commit d1d5f47bda
2 changed files with 4 additions and 3 deletions

View File

@@ -139,7 +139,7 @@ void CameraGeometry::doUpdateGeometry()
return;
}
if (!m_camera->cameraNode()) {
if (!QQuick3DObjectPrivate::get(m_camera)->spatialNode) {
// Doing explicit viewport mapping forces cameraNode creation
m_camera->mapToViewport({}, m_viewPortRect.width(), m_viewPortRect.height());
}
@@ -171,7 +171,7 @@ void CameraGeometry::fillVertexData(QByteArray &vertexData, QByteArray &indexDat
auto indexPtr = reinterpret_cast<quint16 *>(indexData.data());
QMatrix4x4 m;
QSSGRenderCamera *camera = m_camera->cameraNode();
QSSGRenderCamera *camera = static_cast<QSSGRenderCamera *>(QQuick3DObjectPrivate::get(m_camera)->spatialNode);
if (camera) {
QRectF rect = m_viewPortRect;
if (rect.isNull())

View File

@@ -818,7 +818,8 @@ QVector3D MouseArea3D::getMousePosInPlane(const MouseArea3D *helper,
const DoubleVec3D rayPos0 = m_view3D->mapTo3DScene(mousePos1.toVec3());
DoubleVec3D rayPos1;
if (qobject_cast<QQuick3DOrthographicCamera *>(m_view3D->camera())) {
rayPos1 = rayPos0 - rayPos0.length() * DoubleVec3D(m_view3D->camera()->cameraNode()->getDirection());
if (auto cameraNode = static_cast<QSSGRenderCamera *>(QQuick3DObjectPrivate::get(m_view3D->camera())->spatialNode))
rayPos1 = rayPos0 - rayPos0.length() * DoubleVec3D(cameraNode->getDirection());
} else {
DoubleVec3D dir;
DoubleVec3D camPos = m_view3D->camera()->scenePosition();