1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QABSTRACTPHYSICSBODY_H
5#define QABSTRACTPHYSICSBODY_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 "qabstractphysicsnode_p.h"
19#include <QtQuick3DPhysics/private/qphysicsmaterial_p.h>
20#include <QtQml/QQmlEngine>
21
22QT_BEGIN_NAMESPACE
23
24class QAbstractPhysicsBody : public QAbstractPhysicsNode
25{
26 Q_OBJECT
27 Q_PROPERTY(QPhysicsMaterial *physicsMaterial READ physicsMaterial WRITE setPhysicsMaterial
28 NOTIFY physicsMaterialChanged)
29 Q_PROPERTY(bool simulationEnabled READ simulationEnabled WRITE setSimulationEnabled NOTIFY
30 simulationEnabledChanged)
31 QML_NAMED_ELEMENT(PhysicsBody)
32 QML_UNCREATABLE("abstract interface")
33
34public:
35 QAbstractPhysicsBody();
36 QPhysicsMaterial *physicsMaterial() const;
37 void setPhysicsMaterial(QPhysicsMaterial *newPhysicsMaterial);
38
39 Q_REVISION(6, 7) bool simulationEnabled() const;
40 Q_REVISION(6, 7) void setSimulationEnabled(bool newSimulationEnabled);
41
42Q_SIGNALS:
43 void physicsMaterialChanged();
44 void simulationEnabledChanged();
45
46private:
47 QPhysicsMaterial *m_physicsMaterial = nullptr;
48 bool m_simulationEnabled = true;
49};
50
51QT_END_NAMESPACE
52
53#endif // QABSTRACTPHYSICSBODY_H
54

source code of qtquick3dphysics/src/quick3dphysics/qabstractphysicsbody_p.h