Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qheightfieldshape_p.h
Go to the documentation of this file.
1// Copyright (C) 2022 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef HEIGHTFIELDMESHSHAPE_H
5#define HEIGHTFIELDMESHSHAPE_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#include <QtQuick3DPhysics/private/qabstractcollisionshape_p.h>
20#include <QtCore/QObject>
21#include <QtGui/QVector3D>
22#include <QtQml/QQmlEngine>
23#include <QtQuick3D/QQuick3DGeometry>
24
25namespace physx {
26class PxBoxGeometry;
27class PxTriangleMesh;
28class PxTriangleMeshGeometry;
29class PxHeightFieldGeometry;
30class PxHeightField;
31struct PxHeightFieldSample;
32}
33
35
37
39{
41 Q_PROPERTY(QVector3D extents READ extents WRITE setExtents NOTIFY extentsChanged)
42 Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged REVISION(6, 5))
43 QML_NAMED_ELEMENT(HeightFieldShape)
44public:
47
48 physx::PxGeometry *getPhysXGeometry() override;
49
50 Q_REVISION(6, 5) const QUrl &source() const;
51 Q_REVISION(6, 5) void setSource(const QUrl &newSource);
52
53 const QVector3D &hfOffset() const { return m_hfOffset; }
54
55 const QVector3D &extents() const;
56 void setExtents(const QVector3D &newExtents);
57 bool isStaticShape() const override { return true; }
58
60 Q_REVISION(6, 5) void sourceChanged();
61 void extentsChanged();
62
64 void updatePhysXGeometry();
65 void getSamples();
66 void updateExtents();
67
68 QQuick3DPhysicsHeightField *m_heightField = nullptr;
69
70 physx::PxHeightFieldGeometry *m_heightFieldGeometry = nullptr;
71 QVector3D m_hfOffset;
72 QUrl m_heightMapSource;
73 bool m_dirtyPhysx = false;
74 QVector3D m_extents = { 100, 100, 100 };
75 bool m_extentsSetExplicitly = false;
76};
77
79
80#endif // HEIGHTFIELDMESHSHAPE_H
virtual physx::PxGeometry * getPhysXGeometry()=0
bool isStaticShape() const override
Q_REVISION(6, 5) void sourceChanged()
Q_REVISION(6, 5) const QUrl &source() const
QHeightFieldShape()
\qmltype HeightFieldShape \inqmlmodule QtQuick3D.Physics \inherits CollisionShape
\inmodule QtCore
Definition qurl.h:94
The QVector3D class represents a vector or vertex in 3D space.
Definition qvectornd.h:171
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLsizei GLsizei GLchar * source
#define QML_NAMED_ELEMENT(NAME)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_REVISION(...)
#define signals
#define Q_QUICK3DPHYSICS_EXPORT