Sur cette page

Node QML Type

Composant de base d'un objet présent dans une scène 3D. En savoir plus...

Propriétés

Méthodes

Description détaillée

Le type Node sert de classe de base à d’autres types spatiaux, tels que Model, Camera et Light. Ces objets représentent une entité qui existe dans la scène 3D, puisqu’ils possèdent une position et d’autres propriétés dans l’espace 3D. À l'exception du ou des nœuds racines, tous les types « Node » sont transformés par rapport à leur nœud parent, c'est-à-dire dans un système de coordonnées local. À bien des égards, le type « Node » remplit la même fonction dans les scènes 3D d’ Qt Quick que le type « Item » dans les scènes d’ Qt Quick.

Outre les types dérivés de `Node`, il est également possible d’associer d’autres types à un nœud. Cela inclut les instances de ` QObject `, pour lesquelles le nœud sert simplement d’ QObject parent, ainsi que les éléments de `Qt Quick `.

Envelopper d’autres objets dans le but de les regrouper en composants ou en sous-arborescences peut s’avérer pratique, par exemple pour animer un groupe de nœuds dans son ensemble. Cet extrait de code montre comment utiliser Node pour animer une caméra :

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

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

Node doit également être utilisé si l’on crée une scène en dehors de View3D, par exemple pour changer de scène à la volée ou afficher la même scène sur plusieurs vues.

Node {
    id: standAloneScene

    DirectionalLight {}

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

    PerspectiveCamera {
        z: 600
    }
}

View3D {
    importScene: standAloneScene
}

Documentation sur les propriétés

eulerRotation : vector3d

Cette propriété contient les valeurs de rotation pour les axes x, y et z. Ces valeurs sont stockées sous la forme d'un vecteur 3D. L'ordre de rotation est supposé être ZXY.

Voir également QQuaternion::fromEulerAngles().

forward : vector3d [read-only]

Cette propriété renvoie un vecteur normalisé représentant la direction vers l'avant des nœuds dans l'espace de la scène.

Voir également up, right et mapDirectionToScene.

layers : int

Cette propriété définit les calques de contenu auxquels appartient ce nœud. Les calques peuvent être utilisés pour regrouper des nœuds apparentés, par exemple pour qu’ils soient affichés ensemble ou pour qu’ils soient exclus de l’affichage. La définition de cette propriété sur la couche « Camera » active fera en sorte que la caméra n’affiche que les nœuds appartenant aux calques spécifiés. La valeur est un masque de bits, où chaque bit représente un calque.

Par défaut, les nœuds sont affectés à la couche « main », qui correspond à ContentLayer.Layer0.

Remarque : la propriété « layers » n’est pas héritée ; sa définition sur un nœud ne propage pas la valeur du parent vers le fils. Chaque nœud conserve sa propre attribution de couche et doit être défini individuellement.

Voir également ContentLayer.

opacity : real

Cette propriété contient la valeur d'opacité locale du nœud. Étant donné que les objets nœuds ne sont pas nécessairement visibles, cette valeur peut ne produire aucun effet ; toutefois, elle est héritée par tous les enfants du nœud, qui peuvent quant à eux être visibles.

pivot : vector3d

Cette propriété contient les valeurs de pivot pour les axes x, y et z. Ces valeurs servent de points de pivot lors de l'application de rotations au nœud.

position : vector3d

Cette propriété contient la translation de position dans l'espace de coordonnées local.

Voir également x, y et z.

right : vector3d [read-only]

Cette propriété renvoie un vecteur normalisé représentant la direction vers la droite des nœuds dans l'espace de la scène.

Voir également forward, up et mapDirectionToScene.

rotation : quaternion

Cette propriété contient les valeurs de rotation du nœud. Ces valeurs sont stockées sous la forme d'un quaternion.

scale : vector3d

Cette propriété contient les valeurs d'échelle pour les axes x, y et z.

scenePosition : vector3d [read-only]

Cette propriété renvoie la position du nœud dans l'espace de la scène.

Remarque : on parle parfois également de « position globale ». Mais dans ce cas, il s'agit d'une position « globale dans l'espace 3D », et non « globale par rapport à l'écran ou au bureau » (ce qui est généralement l'interprétation donnée dans d'autres API Qt).

Remarque : la position sera indiquée avec la même orientation que celle du nœud.

Voir aussi mapPositionToScene.

sceneRotation : quaternion [read-only]

Cette propriété renvoie la rotation du nœud dans l'espace de la scène.

sceneScale : vector3d [read-only]

Cette propriété renvoie l'échelle du nœud dans l'espace de la scène.

sceneTransform : matrix4x4 [read-only]

Cette propriété renvoie la matrice de transformation globale de ce nœud.

Remarque : la valeur renvoyée sera exprimée en coordonnées droitières.

staticFlags : int

Cette propriété définit les indicateurs statiques utilisés pour déterminer la manière dont le nœud est affiché. Pour l'instant, elle n'a aucune fonction particulière et sert simplement de marque-place en vue d'une implémentation future.

up : vector3d [read-only]

Cette propriété renvoie un vecteur normalisé représentant la direction vers le haut des nœuds dans l'espace de la scène.

Voir également forward, right et mapDirectionToScene.

visible : bool

Lorsque cette propriété a la valeur « true », le nœud (et ses enfants) peut être visible.

x : real

Cette propriété contient la valeur x de la translation de position dans l'espace de coordonnées local.

Voir également position.

y : real

Cette propriété contient la valeur y de la translation de position dans l'espace de coordonnées local.

Voir également position.

z : real

Cette propriété contient la valeur z de la translation de position dans l'espace de coordonnées local.

Voir également position.

Documentation des méthodes

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

Transforme localDirection de l'espace local de node vers l'espace local de ce nœud. La valeur renvoyée n'est pas affectée par l'échelle ou la position (héritée) du nœud.

Remarque : la valeur renvoyée aura la même longueur que localDirection (c'est-à-dire qu'elle ne sera pas normalisée).

Remarque : si node est nul, alors localDirection est interprété tel quel en coordonnées de l'espace de scène.

Voir également mapDirectionToNode, mapDirectionFromScene et mapDirectionToScene.

vector3d mapDirectionFromScene(vector3d sceneDirection)

Transforme sceneDirection de l'espace de scène vers l'espace local. La valeur renvoyée n'est pas affectée par l'échelle ou la position (héritée) du nœud.

Remarque : la valeur renvoyée aura la même longueur que ` sceneDirection ` (c'est-à-dire qu'elle ne sera pas normalisée).

Voir également mapDirectionToScene, mapDirectionToNode et mapDirectionFromNode.

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

Transforme localDirection de l'espace local de ce nœud vers l'espace local de node. La valeur renvoyée n'est pas affectée par l'échelle ou la position (héritée) du nœud.

Remarque : la valeur renvoyée aura la même longueur que localDirection (c'est-à-dire qu'elle ne sera pas normalisée).

Remarque : si node est nul, la direction renvoyée sera alors transformée en coordonnées de l’espace de scène.

Voir également mapDirectionFromNode, mapDirectionFromScene et mapDirectionToScene.

vector3d mapDirectionToScene(vector3d localDirection)

Transforme localDirection de l'espace local vers l'espace de scène. La valeur renvoyée n'est pas affectée par l'échelle ou la position (héritée) du nœud.

Remarque : la valeur renvoyée aura la même longueur que ` localDirection ` (c'est-à-dire qu'elle ne sera pas normalisée).

Voir également mapDirectionFromScene, mapDirectionToNode et mapDirectionFromNode.

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

Transforme la coordonnée localPosition de l'espace local de node en coordonnée de l'espace local de ce nœud.

Remarque : si node est nul, alors localPosition est interprété tel quel dans les coordonnées de l'espace de scène.

Voir également mapPositionToScene, mapPositionFromScene et mapPositionToNode.

vector3d mapPositionFromScene(vector3d scenePosition)

Transforme scenePosition de l'espace de scène vers l'espace local.

Voir également mapPositionToScene, mapPositionToNode et mapPositionFromNode.

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

Transforme localPosition de l'espace local de ce nœud vers l'espace local de node.

Remarque : si node est nul, alors localPosition sera transformé en coordonnées de l'espace de scène.

Voir également mapPositionToScene, mapPositionFromScene et mapPositionFromNode.

vector3d mapPositionToScene(vector3d localPosition)

Transforme l'localPosition e de l'espace local vers l'espace de scène.

Remarque : l’« espace de scène » est parfois également appelé « espace global ». Mais dans ce cas, il s’agit d’un espace « global dans l’univers 3D », et non d’un espace « global par rapport à l’écran ou au bureau » (ce qui est généralement l’interprétation adoptée dans d’autres API Qt).

Voir également mapPositionFromScene, mapPositionToNode et mapPositionFromNode.

void rotate(real degrees, vector3d axis, enumeration space)

Fait pivoter ce nœud autour d'un axe de rotation ( axis ) selon l'angle de rotation ( degrees) indiqué. La rotation spécifiée s'ajoutera à la rotation actuelle du nœud. L'axe peut être spécifié par rapport à différents axes de rotation ( space).

ConstanteDescription
Node.LocalSpaceL'axe est relatif à l'orientation locale de ce nœud.
Node.ParentSpaceL'axe est relatif à l'orientation locale du nœud parent.
Node.SceneSpaceL'axe est relatif à la scène.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.