Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQuick3DNode Class Reference

#include <qquick3dnode_p.h>

+ Inheritance diagram for QQuick3DNode:
+ Collaboration diagram for QQuick3DNode:

Public Types

enum  TransformSpace { LocalSpace , ParentSpace , SceneSpace }
 
enum  StaticFlags { None }
 

Public Slots

void setX (float x)
 
void setY (float y)
 
void setZ (float z)
 
void setRotation (const QQuaternion &rotation)
 
void setEulerRotation (const QVector3D &eulerRotation)
 
void setPosition (const QVector3D &position)
 
void setScale (const QVector3D &scale)
 
void setPivot (const QVector3D &pivot)
 
void setLocalOpacity (float opacity)
 
void setVisible (bool visible)
 
void setStaticFlags (int staticFlags)
 
- Public Slots inherited from QQuick3DObject
void update ()
 
void setParentItem (QQuick3DObject *parentItem)
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 

Signals

void xChanged ()
 
void yChanged ()
 
void zChanged ()
 
void rotationChanged ()
 
void eulerRotationChanged ()
 
void positionChanged ()
 
void scaleChanged ()
 
void pivotChanged ()
 
void localOpacityChanged ()
 
void visibleChanged ()
 
void forwardChanged ()
 
void upChanged ()
 
void rightChanged ()
 
void sceneTransformChanged ()
 
void scenePositionChanged ()
 
void sceneRotationChanged ()
 
void sceneScaleChanged ()
 
void staticFlagsChanged ()
 
- Signals inherited from QQuick3DObject
void parentChanged ()
 
void childrenChanged ()
 
void stateChanged ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QQuick3DNode (QQuick3DNode *parent=nullptr)
 \qmltype Node \inherits Object3D \inqmlmodule QtQuick3D
 
 ~QQuick3DNode () override
 
float x () const
 \qmlproperty real QtQuick3D::Node::x
 
float y () const
 \qmlproperty real QtQuick3D::Node::y
 
float z () const
 \qmlproperty real QtQuick3D::Node::z
 
QQuaternion rotation () const
 \qmlproperty quaternion QtQuick3D::Node::rotation
 
QVector3D eulerRotation () const
 \qmlproperty vector3d QtQuick3D::Node::eulerRotation
 
QVector3D position () const
 \qmlproperty vector3d QtQuick3D::Node::position
 
QVector3D scale () const
 \qmlproperty vector3d QtQuick3D::Node::scale
 
QVector3D pivot () const
 \qmlproperty vector3d QtQuick3D::Node::pivot
 
float localOpacity () const
 \qmlproperty real QtQuick3D::Node::opacity
 
bool visible () const
 \qmlproperty bool QtQuick3D::Node::visible
 
int staticFlags () const
 \qmlproperty int QtQuick3D::Node::staticFlags
 
QQuick3DNodeparentNode () const
 
QVector3D forward () const
 \qmlproperty vector3d QtQuick3D::Node::forward \readonly
 
QVector3D up () const
 \qmlproperty vector3d QtQuick3D::Node::up \readonly
 
QVector3D right () const
 \qmlproperty vector3d QtQuick3D::Node::right \readonly
 
QVector3D scenePosition () const
 \qmlproperty vector3d QtQuick3D::Node::scenePosition \readonly
 
QQuaternion sceneRotation () const
 \qmlproperty quaternion QtQuick3D::Node::sceneRotation \readonly
 
QVector3D sceneScale () const
 \qmlproperty vector3d QtQuick3D::Node::sceneScale \readonly
 
QMatrix4x4 sceneTransform () const
 \qmlproperty matrix4x4 QtQuick3D::Node::sceneTransform \readonly
 
Q_INVOKABLE void rotate (qreal degrees, const QVector3D &axis, QQuick3DNode::TransformSpace space)
 \qmlmethod QtQuick3D::Node::rotate(real degrees, vector3d axis, enumeration space)
 
Q_INVOKABLE QVector3D mapPositionToScene (const QVector3D &localPosition) const
 \qmlmethod vector3d QtQuick3D::Node::mapPositionToScene(vector3d localPosition)
 
Q_INVOKABLE QVector3D mapPositionFromScene (const QVector3D &scenePosition) const
 \qmlmethod vector3d QtQuick3D::Node::mapPositionFromScene(vector3d scenePosition)
 
Q_INVOKABLE QVector3D mapPositionToNode (const QQuick3DNode *node, const QVector3D &localPosition) const
 \qmlmethod vector3d QtQuick3D::Node::mapPositionToNode(QtQuick3D::Node node, vector3d localPosition)
 
Q_INVOKABLE QVector3D mapPositionFromNode (const QQuick3DNode *node, const QVector3D &localPosition) const
 \qmlmethod vector3d QtQuick3D::Node::mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition)
 
Q_INVOKABLE QVector3D mapDirectionToScene (const QVector3D &localDirection) const
 \qmlmethod vector3d QtQuick3D::Node::mapDirectionToScene(vector3d localDirection)
 
Q_INVOKABLE QVector3D mapDirectionFromScene (const QVector3D &sceneDirection) const
 \qmlmethod vector3d QtQuick3D::Node::mapDirectionFromScene(vector3d sceneDirection)
 
Q_INVOKABLE QVector3D mapDirectionToNode (const QQuick3DNode *node, const QVector3D &localDirection) const
 \qmlmethod vector3d QtQuick3D::Node::mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection)
 
Q_INVOKABLE QVector3D mapDirectionFromNode (const QQuick3DNode *node, const QVector3D &localDirection) const
 \qmlmethod vector3d QtQuick3D::Node::mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection)
 
void markAllDirty () override
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 
- Public Member Functions inherited from QQmlParserStatus
 QQmlParserStatus ()
 
virtual ~QQmlParserStatus ()
 

Protected Member Functions

void connectNotify (const QMetaMethod &signal) override
 
void disconnectNotify (const QMetaMethod &signal) override
 
void componentComplete () override
 Invoked after the root component that caused this instantiation has completed construction.
 
 QQuick3DNode (QQuick3DNodePrivate &dd, QQuick3DNode *parent=nullptr)
 
QSSGRenderGraphObjectupdateSpatialNode (QSSGRenderGraphObject *node) override
 
virtual void itemChange (ItemChange, const ItemChangeData &) override
 
- Protected Member Functions inherited from QQuick3DObject
 QQuick3DObject (QQuick3DObjectPrivate &dd, QQuick3DObject *parent=nullptr)
 
void classBegin () override
 Invoked after class creation, but before any properties have been set.
 
void componentComplete () override
 Invoked after the root component that caused this instantiation has completed construction.
 
bool isComponentComplete () const
 
virtual void preSync ()
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 

Properties

float x
 
float y
 
float z
 
QQuaternion rotation
 
QVector3D eulerRotation
 
QVector3D position
 
QVector3D scale
 
QVector3D pivot
 
float opacity
 
bool visible
 
QVector3D forward
 
QVector3D up
 
QVector3D right
 
QVector3D scenePosition
 
QQuaternion sceneRotation
 
QVector3D sceneScale
 
QMatrix4x4 sceneTransform
 
int staticFlags
 
- Properties inherited from QQuick3DObject
QQuick3DObjectparent
 \qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a 3D scene.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

Definition at line 27 of file qquick3dnode_p.h.

Member Enumeration Documentation

◆ StaticFlags

Enumerator
None 

Definition at line 59 of file qquick3dnode_p.h.

◆ TransformSpace

Enumerator
LocalSpace 
ParentSpace 
SceneSpace 

Definition at line 52 of file qquick3dnode_p.h.

Constructor & Destructor Documentation

◆ QQuick3DNode() [1/2]

QQuick3DNode::QQuick3DNode ( QQuick3DNode * parent = nullptr)
explicit

\qmltype Node \inherits Object3D \inqmlmodule QtQuick3D

The base component for an object that exists in a 3D scene.

The Node type serves as the base class for other spatial types, such as, \l Model, \l Camera, \l Light. These objects represent an entity that exists in the 3D scene, due to having a position and other properties in the 3D world. With the exception of the root node(s), all Node types are transformed relative to their parent Node, that is, in local coordinates. In many ways the Node type serves the same purpose in Qt Quick 3D scenes as \l Item does for Qt Quick scenes.

In addition to types deriving from Node, it is also possible to parent other types to a Node. This includes QObject instances, where the Node merely serves as the \l{QObject::parent()}{QObject parent}, and \l{Qt Quick 3D Scenes with 2D Content}{Qt Quick items}.

Wrapping other objects for the purpose of grouping them into components or sub-trees can be a convenient way to, for example, animated a group of nodes as a whole. This snippet shows how to use Node to animate a camera:

\qml Node { PerspectiveCamera { position: Qt.vector3d(0, 0, -600) }

SequentialAnimation on eulerRotation.y { loops: Animation.Infinite PropertyAnimation { duration: 5000 from: 0 to: 360 } } } \endqml

Node has to be used also if creating a scene outside of \l View3D, for example for the purpose of switching scenes on the fly, or showing the same scene on multiple views.

\qml Node { id: standAloneScene

DirectionalLight {}

Model { source: "#Sphere" materials: [ DefaultMaterial {} ] }

PerspectiveCamera { z: 600 } }

View3D { importScene: standAloneScene } \endqml

Definition at line 103 of file qquick3dnode.cpp.

References d.

◆ ~QQuick3DNode()

QQuick3DNode::~QQuick3DNode ( )
override

Definition at line 119 of file qquick3dnode.cpp.

◆ QQuick3DNode() [2/2]

QQuick3DNode::QQuick3DNode ( QQuick3DNodePrivate & dd,
QQuick3DNode * parent = nullptr )
protected

Definition at line 110 of file qquick3dnode.cpp.

References d, QSSGRenderGraphObject::isNodeType(), Q_ASSERT_X, and QQuick3DObjectPrivate::type.

+ Here is the call graph for this function:

Member Function Documentation

◆ componentComplete()

void QQuick3DNode::componentComplete ( )
overrideprotectedvirtual

Invoked after the root component that caused this instantiation has completed construction.

At this point all static values and binding values have been assigned to the class.

Implements QQmlParserStatus.

Reimplemented in QQuick3DRuntimeLoader, QQuick3DRepeater, QQuick3DParticleAffector, QQuick3DParticleEmitter, and QQuick3DParticleSystem.

Definition at line 522 of file qquick3dnode.cpp.

References QQuick3DObject::componentComplete(), and d.

Referenced by QQuick3DRuntimeLoader::componentComplete(), QQuick3DLoader::componentComplete(), QQuick3DRepeater::componentComplete(), QQuick3DParticleEmitter::componentComplete(), QQuick3DParticleSystem::componentComplete(), and QOpenXRItem::componentComplete().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ connectNotify()

void QQuick3DNode::connectNotify ( const QMetaMethod & signal)
overrideprotectedvirtual
Since
5.0

This virtual function is called when something has been connected to signal in this object.

If you want to compare signal with a specific signal, you can use QMetaMethod::fromSignal() as follows:

if (signal == QMetaMethod::fromSignal(&MyObject::valueChanged)) {
// signal is valueChanged
}
Warning
This function violates the object-oriented principle of modularity. However, it might be useful when you need to perform expensive initialization only if something is connected to a signal.
This function is called from the thread which performs the connection, which may be a different thread from the thread in which this object lives. This function may also be called with a QObject internal mutex locked. It is therefore not allowed to re-enter any QObject functions, including isSignalConnected(), from your reimplementation. If you lock a mutex in your reimplementation, make sure that you don't call QObject functions with that mutex held in other places or it will result in a deadlock.
See also
connect(), disconnectNotify()

Reimplemented from QObject.

Definition at line 500 of file qquick3dnode.cpp.

References d, and signal.

◆ disconnectNotify()

void QQuick3DNode::disconnectNotify ( const QMetaMethod & signal)
overrideprotectedvirtual
Since
5.0

This virtual function is called when something has been disconnected from signal in this object.

See connectNotify() for an example of how to compare signal with a specific signal.

If all signals were disconnected from this object (e.g., the signal argument to disconnect() was \nullptr), disconnectNotify() is only called once, and the signal will be an invalid QMetaMethod (QMetaMethod::isValid() returns false).

Warning
This function violates the object-oriented principle of modularity. However, it might be useful for optimizing access to expensive resources.
This function is called from the thread which performs the disconnection, which may be a different thread from the thread in which this object lives. This function may also be called with a QObject internal mutex locked. It is therefore not allowed to re-enter any QObject functions, including isSignalConnected(), from your reimplementation. If you lock a mutex in your reimplementation, make sure that you don't call QObject functions with that mutex held in other places or it will result in a deadlock.
See also
disconnect(), connectNotify()

Reimplemented from QObject.

Definition at line 513 of file qquick3dnode.cpp.

References d, and signal.

◆ eulerRotation()

QVector3D QQuick3DNode::eulerRotation ( ) const

\qmlproperty vector3d QtQuick3D::Node::eulerRotation

This property contains the rotation values for the x, y, and z axis. These values are stored as a vector3d. Rotation order is assumed to be ZXY.

See also
QQuaternion::fromEulerAngles()

Definition at line 966 of file qquick3dnode.cpp.

References d.

◆ eulerRotationChanged

void QQuick3DNode::eulerRotationChanged ( )
signal

Referenced by rotate(), setEulerRotation(), and setRotation().

+ Here is the caller graph for this function:

◆ forward()

QVector3D QQuick3DNode::forward ( ) const

\qmlproperty vector3d QtQuick3D::Node::forward \readonly

This property returns a normalized vector of the nodes forward direction in scene space.

See also
up, right, mapDirectionToScene

Definition at line 268 of file qquick3dnode.cpp.

References mapDirectionToScene(), and QVector3D::normalized().

+ Here is the call graph for this function:

◆ forwardChanged

void QQuick3DNode::forwardChanged ( )
signal

Referenced by QQuick3DNodePrivate::isDirectionRelatedSignal().

+ Here is the caller graph for this function:

◆ itemChange()

void QQuick3DNode::itemChange ( ItemChange change,
const ItemChangeData &  )
overrideprotectedvirtual

Reimplemented from QQuick3DObject.

Reimplemented in QQuick3DRepeater, QQuick3DModel, and QQuick3DReflectionProbe.

Definition at line 973 of file qquick3dnode.cpp.

References QQuick3DNodePrivate::get().

+ Here is the call graph for this function:

◆ localOpacity()

float QQuick3DNode::localOpacity ( ) const

\qmlproperty real QtQuick3D::Node::opacity

This property contains the local opacity value of the Node. Since Node objects are not necessarily visible, this value might not have any effect, but this value is inherited by all children of the Node, which might be visible.

Definition at line 221 of file qquick3dnode.cpp.

References d.

◆ localOpacityChanged

void QQuick3DNode::localOpacityChanged ( )
signal

Referenced by setLocalOpacity().

+ Here is the caller graph for this function:

◆ mapDirectionFromNode()

QVector3D QQuick3DNode::mapDirectionFromNode ( const QQuick3DNode * node,
const QVector3D & localDirection ) const

\qmlmethod vector3d QtQuick3D::Node::mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection)

Transforms localDirection from the local space of node to the local space of this node. The return value is not affected by the (inherited) scale or position of the node.

Note
the return value will have the same length as localDirection (i.e. not normalized).
If node is null, then localDirection is interpreted as it is in scene space coordinates.
See also
mapDirectionToNode, mapDirectionFromScene, mapDirectionToScene

Definition at line 942 of file qquick3dnode.cpp.

References mapDirectionFromScene(), and mapDirectionToScene().

+ Here is the call graph for this function:

◆ mapDirectionFromScene()

QVector3D QQuick3DNode::mapDirectionFromScene ( const QVector3D & sceneDirection) const

\qmlmethod vector3d QtQuick3D::Node::mapDirectionFromScene(vector3d sceneDirection)

Transforms sceneDirection from scene space to local space. The return value is not affected by the (inherited) scale or position of the node.

Note
the return value will have the same length as sceneDirection (i.e not normalized).
See also
mapDirectionToScene, mapDirectionToNode, mapDirectionFromNode

Definition at line 899 of file qquick3dnode.cpp.

References QSSGUtils::mat44::getUpper3x3(), sceneTransform, and QSSGUtils::mat33::transform().

Referenced by mapDirectionFromNode(), and mapDirectionToNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapDirectionToNode()

QVector3D QQuick3DNode::mapDirectionToNode ( const QQuick3DNode * node,
const QVector3D & localDirection ) const

\qmlmethod vector3d QtQuick3D::Node::mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection)

Transforms localDirection from this nodes local space to the local space of node. The return value is not affected by the (inherited) scale or position of the node.

Note
the return value will have the same length as localDirection (i.e. not normalized).
if node is null, then the returned direction will be transformed into scene space coordinates.
See also
mapDirectionFromNode, mapDirectionFromScene, mapDirectionToScene

Definition at line 921 of file qquick3dnode.cpp.

References mapDirectionFromScene(), and mapDirectionToScene().

+ Here is the call graph for this function:

◆ mapDirectionToScene()

QVector3D QQuick3DNode::mapDirectionToScene ( const QVector3D & localDirection) const

\qmlmethod vector3d QtQuick3D::Node::mapDirectionToScene(vector3d localDirection)

Transforms localDirection from local space to scene space. The return value is not affected by the (inherited) scale or position of the node.

Note
the return value will have the same length as localDirection (i.e. not normalized).
See also
mapDirectionFromScene, mapDirectionToNode, mapDirectionFromNode

Definition at line 881 of file qquick3dnode.cpp.

References QMatrix4x4::normalMatrix(), sceneTransform, and QSSGUtils::mat33::transform().

Referenced by forward(), mapDirectionFromNode(), mapDirectionToNode(), right(), QQuick3DPickResult::sceneNormal(), and up().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapPositionFromNode()

QVector3D QQuick3DNode::mapPositionFromNode ( const QQuick3DNode * node,
const QVector3D & localPosition ) const

\qmlmethod vector3d QtQuick3D::Node::mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition)

Transforms localPosition from the local space of node to the local space of this node.

Note
If node is null, then localPosition is interpreted as it is in scene space coordinates.
See also
mapPositionToScene, mapPositionFromScene, mapPositionToNode

Definition at line 863 of file qquick3dnode.cpp.

References mapPositionFromScene(), and mapPositionToScene().

+ Here is the call graph for this function:

◆ mapPositionFromScene()

QVector3D QQuick3DNode::mapPositionFromScene ( const QVector3D & scenePosition) const

\qmlmethod vector3d QtQuick3D::Node::mapPositionFromScene(vector3d scenePosition)

Transforms scenePosition from scene space to local space.

See also
mapPositionToScene, mapPositionToNode, mapPositionFromNode

Definition at line 832 of file qquick3dnode.cpp.

References scenePosition, sceneTransform, and QSSGUtils::mat44::transform().

Referenced by QOpenXRItem::handleVirtualTouch(), mapPositionFromNode(), mapPositionToNode(), QPhysXCharacterController::sync(), and QAbstractPhysicsNode::updateFromPhysicsTransform().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mapPositionToNode()

QVector3D QQuick3DNode::mapPositionToNode ( const QQuick3DNode * node,
const QVector3D & localPosition ) const

\qmlmethod vector3d QtQuick3D::Node::mapPositionToNode(QtQuick3D::Node node, vector3d localPosition)

Transforms localPosition from the local space of this node to the local space of node.

Note
If node is null, then localPosition will be transformed into scene space coordinates.
See also
mapPositionToScene, mapPositionFromScene, mapPositionFromNode

Definition at line 847 of file qquick3dnode.cpp.

References mapPositionFromScene(), and mapPositionToScene().

+ Here is the call graph for this function:

◆ mapPositionToScene()

QVector3D QQuick3DNode::mapPositionToScene ( const QVector3D & localPosition) const

\qmlmethod vector3d QtQuick3D::Node::mapPositionToScene(vector3d localPosition)

Transforms localPosition from local space to scene space.

Note
"Scene space" is sometimes also referred to as the "global space". But then in the meaning "global in the 3D world", and not "global to the screen or desktop" (which is usually the interpretation in other Qt APIs).
See also
mapPositionFromScene, mapPositionToNode, mapPositionFromNode

Definition at line 820 of file qquick3dnode.cpp.

References sceneTransform, and QSSGUtils::mat44::transform().

Referenced by mapPositionFromNode(), and mapPositionToNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ markAllDirty()

void QQuick3DNode::markAllDirty ( )
overridevirtual

Reimplemented from QQuick3DObject.

Reimplemented in QQuick3DReflectionProbe.

Definition at line 948 of file qquick3dnode.cpp.

References d, and QQuick3DObject::markAllDirty().

Referenced by QQuick3DAbstractLight::markAllDirty(), QQuick3DItem2D::markAllDirty(), QQuick3DJoint::markAllDirty(), QQuick3DModel::markAllDirty(), QQuick3DReflectionProbe::markAllDirty(), QQuick3DCamera::updateSpatialNode(), and updateSpatialNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parentNode()

◆ pivot()

QVector3D QQuick3DNode::pivot ( ) const

\qmlproperty vector3d QtQuick3D::Node::pivot

This property contains the pivot values for the x, y, and z axis. These values are used as the pivot points when applying rotations to the node.

Definition at line 207 of file qquick3dnode.cpp.

References d.

◆ pivotChanged

void QQuick3DNode::pivotChanged ( )
signal

Referenced by setPivot().

+ Here is the caller graph for this function:

◆ position()

QVector3D QQuick3DNode::position ( ) const

\qmlproperty vector3d QtQuick3D::Node::position

This property contains the position translation in local coordinate space.

See also
x, y, z

Definition at line 182 of file qquick3dnode.cpp.

References d.

◆ positionChanged

void QQuick3DNode::positionChanged ( )
signal

Referenced by QQuick3DParticleModelBlendParticle::setEndNode(), setPosition(), setX(), setY(), and setZ().

+ Here is the caller graph for this function:

◆ right()

QVector3D QQuick3DNode::right ( ) const

\qmlproperty vector3d QtQuick3D::Node::right \readonly

This property returns a normalized vector of the nodes right direction in scene space.

See also
forward, up, mapDirectionToScene

Definition at line 296 of file qquick3dnode.cpp.

References mapDirectionToScene(), and QVector3D::normalized().

+ Here is the call graph for this function:

◆ rightChanged

void QQuick3DNode::rightChanged ( )
signal

Referenced by QQuick3DNodePrivate::isDirectionRelatedSignal().

+ Here is the caller graph for this function:

◆ rotate()

void QQuick3DNode::rotate ( qreal degrees,
const QVector3D & axis,
QQuick3DNode::TransformSpace space )

\qmlmethod QtQuick3D::Node::rotate(real degrees, vector3d axis, enumeration space)

Rotates this node around an axis by the given degrees. The specified rotation will be added to the node's current rotation. The axis can be specified relative to different {space}s.

\value Node.LocalSpace Axis is relative to the local orientation of this node. \value Node.ParentSpace Axis is relative to the local orientation of the parent node. \value Node.SceneSpace Axis is relative to the scene.

Definition at line 721 of file qquick3dnode.cpp.

References d, emit, eulerRotationChanged(), QQuick3DNodePrivate::get(), QSSGUtils::mat44::getUpper3x3(), LocalSpace, QQuick3DObject::parent, parentNode(), ParentSpace, rotationChanged(), SceneSpace, and QQuick3DObject::update().

+ Here is the call graph for this function:

◆ rotation()

QQuaternion QQuick3DNode::rotation ( ) const

\qmlproperty quaternion QtQuick3D::Node::rotation

This property contains the rotation values for the node. These values are stored as a quaternion.

Definition at line 169 of file qquick3dnode.cpp.

References d.

◆ rotationChanged

void QQuick3DNode::rotationChanged ( )
signal

Referenced by rotate(), QQuick3DParticleModelBlendParticle::setEndNode(), setEulerRotation(), and setRotation().

+ Here is the caller graph for this function:

◆ scale()

QVector3D QQuick3DNode::scale ( ) const

\qmlproperty vector3d QtQuick3D::Node::scale

This property contains the scale values for the x, y, and z axis.

Definition at line 194 of file qquick3dnode.cpp.

References d.

◆ scaleChanged

void QQuick3DNode::scaleChanged ( )
signal

Referenced by QQuick3DParticleModelBlendParticle::setEndNode(), and setScale().

+ Here is the caller graph for this function:

◆ scenePosition()

QVector3D QQuick3DNode::scenePosition ( ) const

\qmlproperty vector3d QtQuick3D::Node::scenePosition \readonly

This property returns the position of the node in scene space.

Note
This is sometimes also referred to as the global position. But then in the meaning "global in the 3D world", and not "global to the screen or desktop" (which is usually the interpretation in other Qt APIs).
the position will be reported in the same orientation as the node.
See also
mapPositionToScene

Definition at line 313 of file qquick3dnode.cpp.

References QSSGUtils::mat44::getPosition(), and sceneTransform.

+ Here is the call graph for this function:

◆ scenePositionChanged

void QQuick3DNode::scenePositionChanged ( )
signal

◆ sceneRotation()

QQuaternion QQuick3DNode::sceneRotation ( ) const

\qmlproperty quaternion QtQuick3D::Node::sceneRotation \readonly

This property returns the rotation of the node in scene space.

Definition at line 324 of file qquick3dnode.cpp.

References d, and QSSGUtils::mat44::getUpper3x3().

+ Here is the call graph for this function:

◆ sceneRotationChanged

void QQuick3DNode::sceneRotationChanged ( )
signal

Referenced by QQuick3DAudioListener::QQuick3DAudioListener(), QQuick3DAudioRoom::QQuick3DAudioRoom(), QQuick3DSpatialSound::QQuick3DSpatialSound(), and QQuick3DNodePrivate::isSceneTransformRelatedSignal().

+ Here is the caller graph for this function:

◆ sceneScale()

QVector3D QQuick3DNode::sceneScale ( ) const

\qmlproperty vector3d QtQuick3D::Node::sceneScale \readonly

This property returns the scale of the node in scene space.

Definition at line 336 of file qquick3dnode.cpp.

References QSSGUtils::mat44::getScale(), and sceneTransform.

+ Here is the call graph for this function:

◆ sceneScaleChanged

void QQuick3DNode::sceneScaleChanged ( )
signal

Referenced by QAbstractCollisionShape::QAbstractCollisionShape(), and QQuick3DNodePrivate::isSceneTransformRelatedSignal().

+ Here is the caller graph for this function:

◆ sceneTransform()

QMatrix4x4 QQuick3DNode::sceneTransform ( ) const

\qmlproperty matrix4x4 QtQuick3D::Node::sceneTransform \readonly

This property returns the global transform matrix for this node.

Note
the return value will be in right-handed coordinates.

Definition at line 348 of file qquick3dnode.cpp.

References d.

◆ sceneTransformChanged

void QQuick3DNode::sceneTransformChanged ( )
signal

Referenced by QQuick3DNodePrivate::isSceneTransformRelatedSignal(), QQuick3DJoint::setSkeletonRoot(), and QOpenXRVirtualMouse::setSource().

+ Here is the caller graph for this function:

◆ setEulerRotation

void QQuick3DNode::setEulerRotation ( const QVector3D & eulerRotation)
slot

Definition at line 692 of file qquick3dnode.cpp.

References d, emit, eulerRotation, eulerRotationChanged(), rotationChanged(), and QQuick3DObject::update().

Referenced by QQuick3DCamera::lookAt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setLocalOpacity

void QQuick3DNode::setLocalOpacity ( float opacity)
slot

Definition at line 659 of file qquick3dnode.cpp.

References d, emit, localOpacityChanged(), opacity, qFuzzyCompare(), and QQuick3DObject::update().

+ Here is the call graph for this function:

◆ setPivot

void QQuick3DNode::setPivot ( const QVector3D & pivot)
slot

Definition at line 647 of file qquick3dnode.cpp.

References d, emit, pivot, pivotChanged(), and QQuick3DObject::update().

+ Here is the call graph for this function:

◆ setPosition

void QQuick3DNode::setPosition ( const QVector3D & position)
slot

Definition at line 611 of file qquick3dnode.cpp.

References d, emit, position, positionChanged(), qFuzzyCompare(), QQuick3DObject::update(), QVector3D::x(), xChanged(), QVector3D::y(), yChanged(), QVector3D::z(), and zChanged().

Referenced by InstanceRepeater::initDelegate(), setNodeProperties(), and QPhysXCharacterController::sync().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setRotation

void QQuick3DNode::setRotation ( const QQuaternion & rotation)
slot

Definition at line 597 of file qquick3dnode.cpp.

References d, emit, eulerRotationChanged(), rotation, rotationChanged(), and QQuick3DObject::update().

Referenced by InstanceRepeater::initDelegate(), QOpenXRController::setController(), setNodeProperties(), and QAbstractPhysicsNode::updateFromPhysicsTransform().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setScale

void QQuick3DNode::setScale ( const QVector3D & scale)
slot

Definition at line 635 of file qquick3dnode.cpp.

References d, emit, scale, scaleChanged(), and QQuick3DObject::update().

Referenced by importImp(), InstanceRepeater::initDelegate(), and setNodeProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setStaticFlags

void QQuick3DNode::setStaticFlags ( int staticFlags)
slot

Definition at line 681 of file qquick3dnode.cpp.

References d, emit, staticFlags, staticFlagsChanged(), and QQuick3DObject::update().

+ Here is the call graph for this function:

◆ setVisible

void QQuick3DNode::setVisible ( bool visible)
slot

Definition at line 670 of file qquick3dnode.cpp.

References d, emit, QQuick3DObject::update(), visible, and visibleChanged().

Referenced by QQuick3DLoader::setActive(), and QOpenXRController::setController().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setX

void QQuick3DNode::setX ( float x)
slot

Definition at line 558 of file qquick3dnode.cpp.

References d, emit, positionChanged(), qFuzzyCompare(), QQuick3DObject::update(), and xChanged().

Referenced by setNodeProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setY

void QQuick3DNode::setY ( float y)
slot

Definition at line 571 of file qquick3dnode.cpp.

References d, emit, positionChanged(), qFuzzyCompare(), QQuick3DObject::update(), and yChanged().

Referenced by setNodeProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setZ

void QQuick3DNode::setZ ( float z)
slot

Definition at line 584 of file qquick3dnode.cpp.

References d, emit, positionChanged(), qFuzzyCompare(), QQuick3DObject::update(), and zChanged().

Referenced by setNodeProperties().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ staticFlags()

int QQuick3DNode::staticFlags ( ) const

\qmlproperty int QtQuick3D::Node::staticFlags

Since
5.15

This property defines the static flags that are used to evaluate how the node is rendered. Currently doesn't do anything but act as a placeholder for a future implementation.

Definition at line 246 of file qquick3dnode.cpp.

References d.

◆ staticFlagsChanged

void QQuick3DNode::staticFlagsChanged ( )
signal

Referenced by setStaticFlags().

+ Here is the caller graph for this function:

◆ up()

QVector3D QQuick3DNode::up ( ) const

\qmlproperty vector3d QtQuick3D::Node::up \readonly

This property returns a normalized vector of the nodes up direction in scene space.

See also
forward, right, mapDirectionToScene

Definition at line 282 of file qquick3dnode.cpp.

References mapDirectionToScene(), and QVector3D::normalized().

+ Here is the call graph for this function:

◆ upChanged

void QQuick3DNode::upChanged ( )
signal

Referenced by QQuick3DNodePrivate::isDirectionRelatedSignal().

+ Here is the caller graph for this function:

◆ updateSpatialNode()

QSSGRenderGraphObject * QQuick3DNode::updateSpatialNode ( QSSGRenderGraphObject * node)
overrideprotectedvirtual

◆ visible()

bool QQuick3DNode::visible ( ) const

\qmlproperty bool QtQuick3D::Node::visible

When this property is true, the Node (and its children) can be visible.

Definition at line 233 of file qquick3dnode.cpp.

References d.

◆ visibleChanged

void QQuick3DNode::visibleChanged ( )
signal

Referenced by setVisible().

+ Here is the caller graph for this function:

◆ x()

float QQuick3DNode::x ( ) const

\qmlproperty real QtQuick3D::Node::x

This property contains the x value of the position translation in local coordinate space.

See also
position

Definition at line 129 of file qquick3dnode.cpp.

References d.

◆ xChanged

void QQuick3DNode::xChanged ( )
signal

Referenced by setPosition(), and setX().

+ Here is the caller graph for this function:

◆ y()

float QQuick3DNode::y ( ) const

\qmlproperty real QtQuick3D::Node::y

This property contains the y value of the position translation in local coordinate space.

See also
position

Definition at line 143 of file qquick3dnode.cpp.

References d.

◆ yChanged

void QQuick3DNode::yChanged ( )
signal

Referenced by setPosition(), and setY().

+ Here is the caller graph for this function:

◆ z()

float QQuick3DNode::z ( ) const

\qmlproperty real QtQuick3D::Node::z

This property contains the z value of the position translation in local coordinate space.

See also
position

Definition at line 157 of file qquick3dnode.cpp.

References d.

◆ zChanged

void QQuick3DNode::zChanged ( )
signal

Referenced by setPosition(), and setZ().

+ Here is the caller graph for this function:

Property Documentation

◆ eulerRotation

QVector3D QQuick3DNode::eulerRotation
readwrite

◆ forward

QVector3D QQuick3DNode::forward
read

Definition at line 40 of file qquick3dnode_p.h.

◆ opacity

float QQuick3DNode::opacity
readwrite

Definition at line 38 of file qquick3dnode_p.h.

Referenced by setLocalOpacity().

◆ pivot

QVector3D QQuick3DNode::pivot
readwrite

Definition at line 37 of file qquick3dnode_p.h.

Referenced by calculateKinematicNodeTransform(), and setPivot().

◆ position

◆ right

QVector3D QQuick3DNode::right
read

Definition at line 42 of file qquick3dnode_p.h.

◆ rotation

◆ scale

QVector3D QQuick3DNode::scale
readwrite

◆ scenePosition

◆ sceneRotation

◆ sceneScale

QVector3D QQuick3DNode::sceneScale
read

Definition at line 45 of file qquick3dnode_p.h.

Referenced by getPhysXLocalTransform().

◆ sceneTransform

◆ staticFlags

int QQuick3DNode::staticFlags
readwrite

Definition at line 47 of file qquick3dnode_p.h.

Referenced by setStaticFlags().

◆ up

QVector3D QQuick3DNode::up
read

Definition at line 41 of file qquick3dnode_p.h.

◆ visible

bool QQuick3DNode::visible
readwrite

Definition at line 39 of file qquick3dnode_p.h.

Referenced by setVisible(), and QQuick3DParticleSystem::updateCurrentTime().

◆ x

float QQuick3DNode::x
readwrite

Definition at line 30 of file qquick3dnode_p.h.

◆ y

float QQuick3DNode::y
readwrite

Definition at line 31 of file qquick3dnode_p.h.

◆ z

float QQuick3DNode::z
readwrite

Definition at line 32 of file qquick3dnode_p.h.

Referenced by QOpenXRItem::handleVirtualTouch().


The documentation for this class was generated from the following files: