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
qphysicscommands_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QPHYSICSCOMMANDS_H
5#define QPHYSICSCOMMANDS_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtQuick3DPhysics/qtquick3dphysicsglobal.h>
19
20#include <QtCore/QList>
21#include <QtGui/QVector3D>
22#include <QQuaternion>
23
24namespace physx {
25class PxRigidBody;
26}
27
29
31
33{
34public:
35 virtual ~QPhysicsCommand() = default;
36 virtual void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) = 0;
37};
38
40{
41public:
43 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
44
45private:
46 QVector3D force;
47};
48
50{
51public:
52 QPhysicsCommandApplyForce(const QVector3D &inForce, const QVector3D &inPosition);
53 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
54
55private:
56 QVector3D force;
57 QVector3D position;
58};
59
61{
62public:
64 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
65
66private:
67 QVector3D torque;
68};
69
71{
72public:
74 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
75
76private:
77 QVector3D impulse;
78};
79
81{
82public:
83 QPhysicsCommandApplyImpulse(const QVector3D &inImpulse, const QVector3D &inPosition);
84 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
85
86private:
87 QVector3D impulse;
88 QVector3D position;
89};
90
92{
93public:
95 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
96
97private:
98 QVector3D impulse;
99};
100
102{
103public:
104 QPhysicsCommandSetAngularVelocity(const QVector3D &inAngularVelocity);
105 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
106
107private:
108 QVector3D angularVelocity;
109};
110
112{
113public:
114 QPhysicsCommandSetLinearVelocity(const QVector3D &inLinearVelocity);
115 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
116
117private:
118 QVector3D linearVelocity;
119};
120
122{
123public:
124 QPhysicsCommandSetMass(float inMass);
125 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
126
127private:
128 float mass;
129};
130
132{
133public:
134 QPhysicsCommandSetMassAndInertiaTensor(float inMass, const QVector3D &inInertia);
135 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
136
137private:
138 float mass;
139 QVector3D inertia;
140};
141
143{
144public:
145 QPhysicsCommandSetMassAndInertiaMatrix(float inMass, const QMatrix3x3 &inInertia);
146 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
147
148private:
149 float mass;
150 QMatrix3x3 inertia;
151};
152
154{
155public:
156 QPhysicsCommandSetDensity(float inDensity);
157 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
158
159private:
160 float density;
161};
162
164{
165public:
166 QPhysicsCommandSetIsKinematic(bool inIsKinematic);
167 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
168
169private:
170 bool isKinematic;
171};
172
174{
175public:
176 QPhysicsCommandSetGravityEnabled(bool inGravityEnabled);
177 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
178
179private:
180 bool gravityEnabled;
181};
182
184{
185public:
186 QPhysicsCommandReset(QVector3D inPosition, QVector3D inEulerRotation);
187 void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override;
188
189private:
190 QVector3D position;
191 QVector3D eulerRotation;
192};
193
195
196#endif // QPHYSICSCOMMANDS_H
QPhysicsCommandApplyCentralForce(const QVector3D &inForce)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandApplyCentralImpulse(const QVector3D &inImpulse)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandApplyForce(const QVector3D &inForce, const QVector3D &inPosition)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandApplyImpulse(const QVector3D &inImpulse, const QVector3D &inPosition)
QPhysicsCommandApplyTorqueImpulse(const QVector3D &inImpulse)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandApplyTorque(const QVector3D &inTorque)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandReset(QVector3D inPosition, QVector3D inEulerRotation)
QPhysicsCommandSetAngularVelocity(const QVector3D &inAngularVelocity)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandSetDensity(float inDensity)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandSetGravityEnabled(bool inGravityEnabled)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandSetIsKinematic(bool inIsKinematic)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandSetLinearVelocity(const QVector3D &inLinearVelocity)
QPhysicsCommandSetMassAndInertiaMatrix(float inMass, const QMatrix3x3 &inInertia)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
QPhysicsCommandSetMassAndInertiaTensor(float inMass, const QVector3D &inInertia)
QPhysicsCommandSetMass(float inMass)
void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body) override
virtual void execute(const QDynamicRigidBody &rigidBody, physx::PxRigidBody &body)=0
virtual ~QPhysicsCommand()=default
The QVector3D class represents a vector or vertex in 3D space.
Definition qvectornd.h:171
Combined button and popup list for selecting options.