Sur cette page

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:

PhysicsBody

Propriétés

Méthodes

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 :

ConstanteDescription
DynamicRigidBody.NoneAucun verrouillage d'axe.
DynamicRigidBody.LockXVerrouillage de l’axe X.
DynamicRigidBody.LockYVerrouillage de l'axe Y.
DynamicRigidBody.LockZVerrouiller 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 :

ConstanteDescription
DynamicRigidBody.NoneAucun verrouillage d'axe.
DynamicRigidBody.LockXVerrouillage de l'axe X.
DynamicRigidBody.LockYVerrouillage de l'axe Y.
DynamicRigidBody.LockZVerrouiller 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 :

ConstanteDescription
DynamicRigidBody.DefaultDensityUtilise 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.CustomDensityUtilise la densité spécifiée dans la propriété « density » pour calculer la masse et l’inertie en supposant une densité uniforme.
DynamicRigidBody.MassUtilise la masse spécifiée pour calculer l'inertie en supposant une densité uniforme.
DynamicRigidBody.MassAndInertiaTensorUtilise la valeur de masse spécifiée et le tenseur d'inertie.
DynamicRigidBody.MassAndInertiaMatrixUtiliser 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.