Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qquick3dnode_p_p.h
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5
6#ifndef QQUICK3DNODE_P_P_H
7#define QQUICK3DNODE_P_P_H
8
9//
10// W A R N I N G
11// -------------
12//
13// This file is not part of the Qt API. It exists purely as an
14// implementation detail. This header file may change from version to
15// version without notice, or even be removed.
16//
17// We mean it.
18//
19
20
21#include <QtQuick3D/private/qtquick3dglobal_p.h>
22
24#include "qquick3dnode_p.h"
26
27#include <QtQuick3DUtils/private/qssgutils_p.h>
28
29#include <QtGui/QVector3D>
30#include <QtGui/QQuaternion>
31#include <QtGui/QMatrix4x4>
32
34
35class QQuick3DNode;
36
37class Q_QUICK3D_EXPORT QQuick3DNodePrivate : public QQuick3DObjectPrivate
38{
39 Q_DECLARE_PUBLIC(QQuick3DNode)
40
41public:
42
43 explicit QQuick3DNodePrivate(QQuick3DObjectPrivate::Type t,
44 QQuick3DContentLayer::LayerFlag layerFlag = QQuick3DContentLayer::Layer0);
45 ~QQuick3DNodePrivate();
46 void init();
47
48 void calculateGlobalVariables();
49 void markSceneTransformDirty();
50
51 inline QMatrix4x4 localRotationMatrix() const;
52 inline QMatrix4x4 sceneRotationMatrix() const;
53
54 void emitChangesToSceneTransform();
55 bool isSceneTransformRelatedSignal(const QMetaMethod &signal) const;
56 bool isDirectionRelatedSignal(const QMetaMethod &signal) const;
57
58 void setIsHiddenInEditor(bool isHidden);
59
60 static inline QQuick3DNodePrivate *get(QQuick3DNode *node) { return node->d_func(); }
61
62 void setLocalTransform(const QMatrix4x4 &transform);
63
64 RotationData m_rotation;
65 QVector3D m_position;
66 QVector3D m_scale{ 1.0f, 1.0f, 1.0f };
67 QVector3D m_pivot;
68 QSSGRenderNodeTag m_tag;
69 float m_opacity = 1.0f;
70 int m_staticFlags = 0;
71 bool m_visible = true;
72 QMatrix4x4 m_sceneTransform; // Right handed
73 QMatrix4x4 m_localTransform; // Right handed
74 bool m_sceneTransformDirty = true;
75 int m_sceneTransformConnectionCount = 0;
76 int m_directionConnectionCount = 0;
77 bool m_isHiddenInEditor = false;
78 bool m_hasInheritedUniformScale = true;
79 bool m_hasExplicitLocalTransform = false;
80};
81
82
83QT_END_NAMESPACE
84
85#endif // QQUICK3DNODE_P_P_H
Combined button and popup list for selecting options.