DynamicRigidBody QML Type
Un corps physique capable de se déplacer ou d'être déplacé. En savoir plus...
| Import Statement: | import QtQuick3D.Physics |
| Since: | Qt 6.4 |
| Inherits: |
Propriétés
- angularAxisLock : AxisLock
- centerOfMassPosition : vector3d
- centerOfMassRotation : quaternion
- density : real
- gravityEnabled : bool
- inertiaMatrix : list<real>
- inertiaTensor : vector3d
- isKinematic : bool
- isSleeping : bool
(since 6.9) - kinematicEulerRotation : vector3d
(since 6.5) - kinematicPivot : vector3d
(since 6.5) - kinematicPosition : vector3d
(since 6.5) - kinematicRotation : quaternion
(since 6.5) - linearAxisLock : AxisLock
- mass : real
- massMode : MassMode
Méthodes
- void applyCentralForce(vector3d force)
- void applyCentralImpulse(vector3d impulse)
- void applyForce(vector3d force, vector3d position)
- void applyImpulse(vector3d impulse, vector3d position)
- void applyTorque(vector3d torque)
- void applyTorqueImpulse(vector3d impulse)
- void reset(vector3d position, vector3d eulerRotation)
- void setAngularVelocity(vector3d angularVelocity)
- void setLinearVelocity(vector3d linearVelocity)
Description détaillée
Ce type définit un corps rigide dynamique : un objet qui fait partie de la scène physique et se comporte comme un objet physique doté d'une masse et d'une vitesse.
Remarque : les formes géométriquestriangle mesh, height field et plane ne sont pas autorisées comme formes de collision lorsque isKinematic est défini sur false.
Documentation des propriétés
angularAxisLock : AxisLock
Cette propriété verrouille la vitesse angulaire du corps le long des axes définis par l'énumération ` DynamicRigidBody.AxisLock`. Pour verrouiller plusieurs axes, il suffit d'effectuer une opération « OU binaire » entre leurs valeurs d'énumération.
Options disponibles :
| Constante | Description |
|---|---|
DynamicRigidBody.None | Aucun verrouillage d'axe. |
DynamicRigidBody.LockX | Verrouillage de l’axe X. |
DynamicRigidBody.LockY | Verrouillage de l'axe Y. |
DynamicRigidBody.LockZ | Verrouiller l’axe Z. |
Valeur par défaut : DynamicRigidBody.None
centerOfMassPosition : vector3d
Définit la position du centre de masse par rapport au corps. Notez que cette option n'est utilisée que lorsque le paramètre « massMode » est défini sur « DynamicRigidBody.MassAndInertiaTensor ».
Valeur par défaut : (0, 0, 0)
Voir également « massMode » et « inertiaTensor ».
centerOfMassRotation : quaternion
Définit la rotation de la position du centre de masse, c'est-à-dire qu'elle spécifie l'orientation des axes d'inertie principaux du corps par rapport à celui-ci. Notez que ce paramètre n'est utilisé que lorsque l'option « massMode » est définie sur « DynamicRigidBody.MassAndInertiaTensor ».
Valeur par défaut : (1, 0, 0, 0)
Voir également « massMode » et « inertiaTensor ».
density : real
Cette propriété définit la densité du corps. Elle n'est utilisée que lorsque l'option « massMode » est définie sur « DynamicRigidBody.CustomDensity ».
Valeur par défaut : 0.001
Plage : (0, inf]
Voir également « massMode ».
gravityEnabled : bool
Cette propriété détermine si l'objet sera soumis à la gravité ou non.
Valeur par défaut : true
inertiaMatrix : list<real>
Définit la matrice du tenseur d'inertie. Il s'agit d'une matrice 3x3 dans l'ordre des colonnes. Notez que cette matrice doit pouvoir être diagonalisée. Notez également qu'elle n'est utilisée que lorsque la variable « massMode » est définie sur « DynamicRigidBody.MassAndInertiaMatrix ».
Valeur par défaut : une matrice identité 3x3
Voir également massMode et inertiaTensor.
inertiaTensor : vector3d
Définit le vecteur du tenseur d'inertie, à l'aide d'un paramètre spécifié dans les coordonnées de l'espace de masse.
Il s'agit du vecteur diagonal d'une matrice diagonale 3x3 ; si vous disposez d'un tenseur d'inertie non diagonal dans l'espace mondial ou dans l'espace de l'acteur, vous devez utiliser inertiaMatrix à la place.
Les composantes du tenseur d'inertie doivent être positives ; une valeur égale à 0 pour une composante quelconque est interprétée comme une inertie infinie selon cet axe. Notez que cela n'est utilisé que lorsque massMode est défini sur DynamicRigidBody.MassAndInertiaTensor.
Valeur par défaut : (1, 1, 1)
Voir également massMode et inertiaMatrix.
isKinematic : bool
Cette propriété définit si l'objet est cinématique ou non. Un objet cinématique n'est pas influencé par les forces externes et peut être considéré comme un objet de masse infinie. Si cette propriété est activée, à chaque image de la simulation, l'objet physique sera déplacé vers sa position cible, quelles que soient les forces externes. Notez que pour déplacer et faire pivoter l'objet cinématique, vous devez utiliser les propriétés kinematicPosition, kinematicRotation, kinematicEulerRotation et kinematicPivot.
Valeur par défaut : false
Voir également kinematicPosition, kinematicRotation, kinematicEulerRotation et kinematicPivot.
isSleeping : bool [since 6.9]
Elle est définie sur « true » si le personnage dort. Bien qu’il soit techniquement possible de modifier cette propriété, elle doit être considérée comme une propriété en lecture seule qui est définie à chaque image lors de l’exécution de la simulation physique.
Cette propriété a été introduite dans Qt 6.9.
kinematicEulerRotation : vector3d [since 6.5]
Définit la rotation d'Euler de l'objet lorsqu'il est en mode cinématique, c'est-à-dire lorsque l'option « isKinematic » est réglée sur « true ». À chaque itération de la simulation, l'objet physique sera mis à jour en fonction de cette valeur.
Valeur par défaut : (0, 0, 0)
Cette propriété a été introduite dans Qt 6.5.
Voir également « isKinematic », « kinematicPosition », « kinematicEulerRotation » et « kinematicPivot ».
kinematicPivot : vector3d [since 6.5]
Définit le pivot de l'objet lorsqu'il est cinématique, c'est-à-dire lorsque l'option « isKinematic » est définie sur « true ». À chaque itération de la simulation, l'objet physique sera mis à jour en fonction de cette valeur.
Valeur par défaut : (0, 0, 0)
Cette propriété a été introduite dans Qt 6.5.
Voir également « isKinematic », « kinematicPosition », « kinematicEulerRotation » et « kinematicRotation ».
kinematicPosition : vector3d [since 6.5]
Définit la position de l'objet lorsqu'il est en mode cinématique, c'est-à-dire lorsque l'option « isKinematic » est réglée sur « true ». À chaque itération de la simulation, l'objet physique sera mis à jour en fonction de cette valeur.
Valeur par défaut : (0, 0, 0)
Cette propriété a été introduite dans Qt 6.5.
Voir également isKinematic, kinematicRotation, kinematicEulerRotation et kinematicPivot.
kinematicRotation : quaternion [since 6.5]
Définit la rotation de l'objet lorsqu'il est en mode cinématique, c'est-à-dire lorsque l'option « isKinematic » est réglée sur « true ». À chaque itération de la simulation, l'objet physique sera mis à jour en fonction de cette valeur.
Valeur par défaut : (1, 0, 0, 0)
Cette propriété a été introduite dans Qt 6.5.
Voir également isKinematic, kinematicPosition, kinematicEulerRotation et kinematicPivot.
linearAxisLock : AxisLock
Cette propriété verrouille la vitesse linéaire du corps le long des axes définis par l'énumération ` DynamicRigidBody.AxisLock`. Pour verrouiller plusieurs axes, il suffit d'effectuer une opération « OU binaire » entre leurs valeurs d'énumération.
Options disponibles :
| Constante | Description |
|---|---|
DynamicRigidBody.None | Aucun verrouillage d'axe. |
DynamicRigidBody.LockX | Verrouillage de l'axe X. |
DynamicRigidBody.LockY | Verrouillage de l'axe Y. |
DynamicRigidBody.LockZ | Verrouiller l’axe Z. |
Valeur par défaut : DynamicRigidBody.None
mass : real
Cette propriété définit la masse du corps. Notez qu’elle n’est utilisée que lorsque « massMode » n’est ni « DynamicRigidBody.CustomDensity » ni « DynamicRigidBody.DefaultDensity ». Notez également qu’une valeur égale à 0 est interprétée comme une masse infinie et que les nombres négatifs ne sont pas autorisés.
Valeur par défaut : 1
Plage : [0, inf]
Voir également massMode.
massMode : MassMode
Cette propriété contient l'énumération qui décrit comment la masse et l'inertie sont calculées pour ce corps.
Options disponibles :
| Constante | Description |
|---|---|
DynamicRigidBody.DefaultDensity | Utilise la densité spécifiée dans la propriété « defaultDensity » de « PhysicsWorld » pour calculer la masse et l'inertie en supposant une densité uniforme. |
DynamicRigidBody.CustomDensity | Utilise la densité spécifiée dans la propriété « density » pour calculer la masse et l’inertie en supposant une densité uniforme. |
DynamicRigidBody.Mass | Utilise la masse spécifiée pour calculer l'inertie en supposant une densité uniforme. |
DynamicRigidBody.MassAndInertiaTensor | Utilise la valeur de masse spécifiée et le tenseur d'inertie. |
DynamicRigidBody.MassAndInertiaMatrix | Utiliser la valeur de masse spécifiée et calculer l’inertie à partir de la matrice d’inertie spécifiée. |
Valeur par défaut : DynamicRigidBody.DefaultDensity
Documentation de la méthode
void applyCentralForce(vector3d force)
Lance une « force » au centre du corps.
void applyCentralImpulse(vector3d impulse)
Applique une « impulse » au centre du corps.
void applyForce(vector3d force, vector3d position)
Applique une « force » à une « position » sur le corps.
void applyImpulse(vector3d impulse, vector3d position)
Applique une « impulse » à une « position » du corps.
void applyTorque(vector3d torque)
Applique un « torque » sur le corps.
void applyTorqueImpulse(vector3d impulse)
Applique une impulse de couple au corps.
void reset(vector3d position, vector3d eulerRotation)
Réinitialise l'position et l'eulerRotation de l'organisme.
void setAngularVelocity(vector3d angularVelocity)
Définit l'angularVelocity e du corps.
void setLinearVelocity(vector3d linearVelocity)
Définit l'linearVelocity e du corps.
© 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.