1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QQUICK3DXRABSTRACTHAPTICACTION_H
5#define QQUICK3DXRABSTRACTHAPTICACTION_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 <QObject>
19#include <QQmlEngine>
20
21QT_BEGIN_NAMESPACE
22class QQuick3DXrSimpleHapticEffect;
23
24class QQuick3DXrAbstractHapticEffect : public QObject
25{
26 Q_OBJECT
27 QML_NAMED_ELEMENT(XrHapticEffect)
28 QML_UNCREATABLE("XrHapticEffect is an abstract base class.")
29 QML_ADDED_IN_VERSION(6, 9)
30};
31
32class QQuick3DXrSimpleHapticEffect : public QQuick3DXrAbstractHapticEffect
33{
34 Q_OBJECT
35 QML_NAMED_ELEMENT(XrSimpleHapticEffect)
36 QML_ADDED_IN_VERSION(6, 9)
37
38 Q_PROPERTY(float amplitude READ amplitude WRITE setAmplitude NOTIFY amplitudeChanged FINAL)
39 Q_PROPERTY(float duration READ duration WRITE setDuration NOTIFY durationChanged FINAL)
40 Q_PROPERTY(float frequency READ frequency WRITE setFrequency NOTIFY frequencyChanged FINAL)
41
42public:
43 float amplitude();
44 void setAmplitude(float newAmplitude);
45 float duration();
46 void setDuration(float newDuration);
47 float frequency();
48 void setFrequency(float newFrequency);
49
50signals:
51 void amplitudeChanged();
52 void durationChanged();
53 void frequencyChanged();
54
55private:
56 float m_amplitude = 0.5;
57 float m_duration = 30;
58 float m_frequency = 3000;
59};
60
61QT_END_NAMESPACE
62
63#endif
64

source code of qtquick3d/src/xr/quick3dxr/qquick3dxrabstracthapticeffect_p.h