Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qabstractphysxnode_p.h
Go to the documentation of this file.
1
// Copyright (C) 2023 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
ABSTRACTPHYSXNODE_H
6
#
define
ABSTRACTPHYSXNODE_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
"qstaticphysxobjects_p.h"
20
21
#
include
"foundation/PxTransform.h"
22
#
include
"qtconfigmacros.h"
23
24
#
include
<
QVector
>
25
#
include
<
qobject
.
h
>
26
27
namespace
physx
{
28
class
PxMaterial;
29
class
PxShape;
30
}
31
32
QT_BEGIN_NAMESPACE
33
34
class
QAbstractPhysicsNode;
35
class
QMatrix4x4;
36
class
QQuick3DNode;
37
class
QPhysicsWorld;
38
class
QPhysicsMaterial;
39
class
QPhysXWorld
;
40
41
// Used for debug drawing
42
enum
class
DebugDrawBodyType
{
43
Static
= 0,
44
DynamicAwake
= 1,
45
DynamicSleeping
= 2,
46
Trigger
= 3,
47
Character
= 4,
48
Unknown
= 5
49
};
50
51
/*
52
NOTE
53
The inheritance hierarchy is not ideal, since both controller and rigid body have materials,
54
but trigger doesn't. AND both trigger and rigid body have actors, but controller doesn't.
55
*/
56
57
class
QAbstractPhysXNode
:
public
QObject
58
{
59
Q_OBJECT
60
public
:
61
QAbstractPhysXNode
(
QAbstractPhysicsNode
*
node
);
62
virtual
~
QAbstractPhysXNode
();
63
64
bool
cleanupIfRemoved
(
QPhysXWorld
*physX);
// TODO rename??
65
66
virtual
void
init
(QPhysicsWorld *world,
QPhysXWorld
*physX) = 0;
67
virtual
void
updateDefaultDensity
(
float
density);
68
// The material of the frontend node, if it has one
69
virtual
QPhysicsMaterial *
qtMaterial
()
const
;
70
// Moves the node to the material matching the properties of qtMaterial(), creating it if
71
// needed. Returns true if the node ended up with a different material than before.
72
bool
updateMaterial
();
73
void
releaseMaterial
();
74
virtual
void
markDirtyShapes
();
75
virtual
void
rebuildDirtyShapes
(QPhysicsWorld *,
QPhysXWorld
*);
76
virtual
void
updateFilters
();
77
78
virtual
void
sync
(
float
deltaTime, QHash<QQuick3DNode *, QMatrix4x4> &transformCache) = 0;
79
virtual
void
cleanup
(
QPhysXWorld
*);
80
virtual
bool
debugGeometryCapability
();
81
virtual
physx
::
PxTransform
getGlobalPose
();
82
83
virtual
bool
useTriggerFlag
();
84
virtual
DebugDrawBodyType
getDebugDrawBodyType
();
85
86
bool
shapesDirty
()
const
;
87
void
setShapesDirty
(
bool
dirty);
88
89
bool
filtersDirty
()
const
;
90
void
setFiltersDirty
(
bool
dirty);
91
92
virtual
void
detachFrontend
();
93
94
QVector
<
physx
::
PxShape
*>
shapes
;
95
physx
::PxMaterial *
material
=
nullptr
;
96
// The properties 'material' was created for
97
PhysicsMaterialProperties
materialProperties
=
PhysicsMaterialProperties
::
none
(
)
;
98
QAbstractPhysicsNode *
frontendNode
=
nullptr
;
99
bool
isRemoved
=
false
;
100
};
101
102
QT_END_NAMESPACE
103
104
#
endif
QAbstractPhysXNode
Definition
qabstractphysxnode_p.h:58
QAbstractPhysXNode::updateDefaultDensity
virtual void updateDefaultDensity(float density)
Definition
qabstractphysxnode.cpp:49
QAbstractPhysXNode::sync
virtual void sync(float deltaTime, QHash< QQuick3DNode *, QMatrix4x4 > &transformCache)=0
QAbstractPhysXNode::frontendNode
QAbstractPhysicsNode * frontendNode
Definition
qabstractphysxnode_p.h:98
QAbstractPhysXNode::filtersDirty
bool filtersDirty() const
Definition
qabstractphysxnode.cpp:156
QAbstractPhysXNode::shapes
QVector< physx::PxShape * > shapes
Definition
qabstractphysxnode_p.h:94
QAbstractPhysXNode::cleanup
virtual void cleanup(QPhysXWorld *)
Definition
qabstractphysxnode.cpp:118
QAbstractPhysXNode::material
physx::PxMaterial * material
Definition
qabstractphysxnode_p.h:95
QAbstractPhysXNode::rebuildDirtyShapes
virtual void rebuildDirtyShapes(QPhysicsWorld *, QPhysXWorld *)
Definition
qabstractphysxnode.cpp:114
QAbstractPhysXNode::shapesDirty
bool shapesDirty() const
Definition
qabstractphysxnode.cpp:146
QAbstractPhysXNode::materialProperties
PhysicsMaterialProperties materialProperties
Definition
qabstractphysxnode_p.h:97
QAbstractPhysXNode::setShapesDirty
void setShapesDirty(bool dirty)
Definition
qabstractphysxnode.cpp:151
QAbstractPhysXNode::debugGeometryCapability
virtual bool debugGeometryCapability()
Definition
qabstractphysxnode.cpp:126
QAbstractPhysXNode::updateFilters
virtual void updateFilters()
Definition
qabstractphysxnode.cpp:116
QAbstractPhysXNode::~QAbstractPhysXNode
virtual ~QAbstractPhysXNode()
Definition
qabstractphysxnode.cpp:29
QAbstractPhysXNode::getGlobalPose
virtual physx::PxTransform getGlobalPose()
Definition
qabstractphysxnode.cpp:131
QAbstractPhysXNode::updateMaterial
bool updateMaterial()
Definition
qabstractphysxnode.cpp:66
QAbstractPhysXNode::releaseMaterial
void releaseMaterial()
Definition
qabstractphysxnode.cpp:96
QAbstractPhysXNode::isRemoved
bool isRemoved
Definition
qabstractphysxnode_p.h:99
QAbstractPhysXNode::init
virtual void init(QPhysicsWorld *world, QPhysXWorld *physX)=0
QAbstractPhysXNode::markDirtyShapes
virtual void markDirtyShapes()
Definition
qabstractphysxnode.cpp:112
QAbstractPhysXNode::getDebugDrawBodyType
virtual DebugDrawBodyType getDebugDrawBodyType()
Definition
qabstractphysxnode.cpp:141
QAbstractPhysXNode::qtMaterial
virtual QPhysicsMaterial * qtMaterial() const
Definition
qabstractphysxnode.cpp:61
QAbstractPhysXNode::setFiltersDirty
void setFiltersDirty(bool dirty)
Definition
qabstractphysxnode.cpp:161
QAbstractPhysXNode::detachFrontend
virtual void detachFrontend()
Definition
qabstractphysxnode.cpp:167
QAbstractPhysXNode::cleanupIfRemoved
bool cleanupIfRemoved(QPhysXWorld *physX)
Definition
qabstractphysxnode.cpp:39
QAbstractPhysXNode::useTriggerFlag
virtual bool useTriggerFlag()
Definition
qabstractphysxnode.cpp:136
QD6Joint
Definition
qd6joint_p.h:26
QPhysXActorBody
Definition
qphysxactorbody_p.h:29
QPhysXActorBody::markDirtyShapes
void markDirtyShapes() override
Definition
qphysxactorbody.cpp:87
QPhysXActorBody::buildShapes
void buildShapes(QPhysXWorld *physX)
Definition
qphysxactorbody.cpp:165
QPhysXActorBody::rebuildDirtyShapes
void rebuildDirtyShapes(QPhysicsWorld *world, QPhysXWorld *physX) override
Definition
qphysxactorbody.cpp:117
QPhysXActorBody::init
void init(QPhysicsWorld *world, QPhysXWorld *physX) override
Definition
qphysxactorbody.cpp:62
QPhysXActorBody::detachFrontend
void detachFrontend() override
Definition
qphysxactorbody.cpp:125
QPhysXActorBody::debugGeometryCapability
bool debugGeometryCapability() override
Definition
qphysxactorbody.cpp:155
QPhysXActorBody::cleanup
void cleanup(QPhysXWorld *physX) override
Definition
qphysxactorbody.cpp:53
QPhysXActorBody::actor
physx::PxRigidActor * actor
Definition
qphysxactorbody_p.h:46
QPhysXActorBody::createActor
virtual void createActor(QPhysXWorld *physX)
Definition
qphysxactorbody.cpp:132
QPhysXActorBody::sync
void sync(float deltaTime, QHash< QQuick3DNode *, QMatrix4x4 > &transformCache) override
Definition
qphysxactorbody.cpp:74
QPhysXActorBody::updateFilters
void updateFilters() override
Definition
qphysxactorbody.cpp:235
QPhysXActorBody::getGlobalPose
physx::PxTransform getGlobalPose() override
Definition
qphysxactorbody.cpp:160
QPhysXWorld
Definition
qphysxworld_p.h:33
QT_BEGIN_NAMESPACE::toPxEnum
physx::PxD6Motion::Enum toPxEnum(QD6Joint::Motion val)
Definition
qd6joint.cpp:286
physx
Definition
qphysxactorbody_p.h:22
DebugDrawBodyType
DebugDrawBodyType
Definition
qabstractphysxnode_p.h:42
DebugDrawBodyType::DynamicAwake
@ DynamicAwake
Definition
qabstractphysxnode_p.h:44
DebugDrawBodyType::Character
@ Character
Definition
qabstractphysxnode_p.h:47
DebugDrawBodyType::Static
@ Static
Definition
qabstractphysxnode_p.h:43
DebugDrawBodyType::Unknown
@ Unknown
Definition
qabstractphysxnode_p.h:48
DebugDrawBodyType::DynamicSleeping
@ DynamicSleeping
Definition
qabstractphysxnode_p.h:45
DebugDrawBodyType::Trigger
@ Trigger
Definition
qabstractphysxnode_p.h:46
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
Definition
qtconfigmacros.h:161
QT_END_NAMESPACE
#define QT_END_NAMESPACE
Definition
qtconfigmacros.h:162
PhysicsMaterialProperties
Definition
qstaticphysxobjects_p.h:40
PhysicsMaterialProperties::none
static constexpr PhysicsMaterialProperties none()
Definition
qstaticphysxobjects_p.h:47
qtquick3dphysics
src
quick3dphysics
physxnode
qabstractphysxnode_p.h
Generated on
for Qt by
1.18.0