DynamicRigidBody QML Type
Un corps physique qui peut se déplacer ou être déplacé. Plus d'informations...
| 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 avec une masse et 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 false.
Documentation sur les propriétés
angularAxisLock : AxisLock
Cette propriété verrouille la vitesse angulaire du corps le long des axes définis par l'enum DynamicRigidBody.AxisLock. Pour verrouiller plusieurs axes, il suffit d'utiliser le bitwise-or de leurs valeurs enum.
Options disponibles :
| Constant | Description |
|---|---|
DynamicRigidBody.None | Pas de verrouillage des axes. |
DynamicRigidBody.LockX | Verrouillage de l'axe X. |
DynamicRigidBody.LockY | Verrouillage de l'axe Y. |
DynamicRigidBody.LockZ | Verrouillage de 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 ce paramètre n'est utilisé que lorsque 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 pose du centre de masse, c'est-à-dire qu'elle spécifie l'orientation des principaux axes d'inertie du corps par rapport au corps. Notez que ce paramètre n'est utilisé que lorsque massMode est défini 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 massMode est défini sur DynamicRigidBody.CustomDensity.
Valeur par défaut : 0.001
Plage de valeurs : (0, inf]
Voir également massMode.
gravityEnabled : bool
Cette propriété définit si l'objet sera affecté par 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 en ordre colonne-majeur. Notez que cette matrice doit être diagonalisable. Ce paramètre n'est utilisé que lorsque massMode est défini sur DynamicRigidBody.MassAndInertiaMatrix.
Valeur par défaut : Une matrice identité 3x3
Voir aussi massMode et inertiaTensor.
inertiaTensor : vector3d
Définit le vecteur du tenseur d'inertie, en utilisant 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 avez un tenseur d'inertie non diagonal dans l'espace monde/acteur, vous devez utiliser inertiaMatrix à la place.
Les composantes du tenseur d'inertie doivent être positives et une valeur de 0 dans n'importe quelle composante est interprétée comme une inertie infinie le long de cet axe. Notez que ceci 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 extérieures et peut être considéré comme un objet de masse infinie. Si cette propriété est activée, l'objet physique sera déplacé vers sa position cible à chaque image de simulation, indépendamment des 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]
Prend la valeur true si le corps est en train de dormir. Bien qu'il soit techniquement possible de définir cette propriété, elle doit être considérée comme une propriété en lecture seule qui est définie à chaque image 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 cinématique, c'est-à-dire lorsque isKinematic est défini 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 isKinematic est défini 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 cinématique, c'est-à-dire lorsque isKinematic est défini 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 cinématique, c'est-à-dire lorsque isKinematic est défini 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'enum DynamicRigidBody.AxisLock. Pour verrouiller plusieurs axes, il suffit d'utiliser le bitwise-or de leurs valeurs enum.
Options disponibles :
| Constant | Description |
|---|---|
DynamicRigidBody.None | Pas de verrouillage des axes. |
DynamicRigidBody.LockX | Verrouillage de l'axe X. |
DynamicRigidBody.LockY | Verrouillage de l'axe Y. |
DynamicRigidBody.LockZ | Verrouillage de l'axe Z. |
Valeur par défaut : DynamicRigidBody.None
mass : real
Cette propriété définit la masse du corps. Notez que cette propriété n'est utilisée que lorsque massMode n'est pas DynamicRigidBody.CustomDensity ou DynamicRigidBody.DefaultDensity. Notez également qu'une valeur de 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 de valeurs : [0, inf]
Voir également massMode.
massMode : MassMode
Cette propriété contient l'enum qui décrit comment la masse et l'inertie sont calculées pour ce corps.
Options disponibles :
| Constant | Description |
|---|---|
DynamicRigidBody.DefaultDensity | Utiliser 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 | Utiliser la densité spécifiée dans la propriété density pour calculer la masse et l'inertie en supposant une densité uniforme. |
DynamicRigidBody.Mass | Utilisez la masse spécifiée pour calculer l'inertie en supposant une densité uniforme. |
DynamicRigidBody.MassAndInertiaTensor | Utilisez 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)
Applique un force au centre du corps.
void applyCentralImpulse(vector3d impulse)
Applique un impulse au centre du corps.
void applyForce(vector3d force, vector3d position)
Applique un force à un position sur le corps.
void applyImpulse(vector3d impulse, vector3d position)
Applique un impulse à un position sur le corps.
void applyTorque(vector3d torque)
Applique un torque sur le corps.
void applyTorqueImpulse(vector3d impulse)
Applique un couple impulse sur le corps.
void reset(vector3d position, vector3d eulerRotation)
Réinitialise les systèmes de l'organisme position et eulerRotation.
void setAngularVelocity(vector3d angularVelocity)
Définit l'adresse angularVelocity du corps.
void setLinearVelocity(vector3d linearVelocity)
Définit l'adresse linearVelocity 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.