Loading...
Searching...
No Matches
ValueTypes.Qt6.hpp
1#pragma once
2#include <JS/Qml/Metatypes.hpp>
3
4#include <ossia/dataflow/graph_node.hpp>
5#include <ossia/dataflow/token_request.hpp>
6
7#include <ossia-qt/time.hpp>
8
9#include <QMatrix4x4>
10#include <QObject>
11#include <QVector2D>
12#include <QVector3D>
13#include <QVector4D>
14#include <QtQml/qqmlregistration.h>
15
16#include <verdigris>
17
18namespace JS
19{
20
22{
23 QVector2D v;
24 Q_GADGET
25public:
26 Q_INVOKABLE
27 QString toString() const;
28
29 qreal x() const;
30 qreal y() const;
31 void setX(qreal);
32 void setY(qreal);
33
34 Q_INVOKABLE
35 qreal dotProduct(const QVector2D& vec) const;
36
37 Q_INVOKABLE
38 QVector2D times(const QVector2D& vec) const;
39 Q_INVOKABLE
40 QVector2D times(qreal scalar) const;
41
42 Q_INVOKABLE
43 QVector2D plus(const QVector2D& vec) const;
44 Q_INVOKABLE
45 QVector2D minus(const QVector2D& vec) const;
46 Q_INVOKABLE
47 QVector2D normalized() const;
48 Q_INVOKABLE
49 qreal length() const;
50
51 Q_INVOKABLE
52 QVector3D toVector3d() const;
53 Q_INVOKABLE
54 QVector4D toVector4d() const;
55
56 Q_INVOKABLE
57 bool fuzzyEquals(const QVector2D& vec, qreal epsilon) const;
58 Q_INVOKABLE
59 bool fuzzyEquals(const QVector2D& vec) const;
60
61 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
62 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
63};
64
66{
67 QVector3D v;
68 Q_GADGET
69public:
70 Q_INVOKABLE
71 QString toString() const;
72
73 qreal x() const;
74 qreal y() const;
75 qreal z() const;
76 void setX(qreal);
77 void setY(qreal);
78 void setZ(qreal);
79
80 Q_INVOKABLE
81 QVector3D crossProduct(const QVector3D& vec) const;
82 Q_INVOKABLE
83 qreal dotProduct(const QVector3D& vec) const;
84
85 Q_INVOKABLE
86 QVector3D times(const QVector3D& vec) const;
87 Q_INVOKABLE
88 QVector3D times(const QMatrix4x4& m) const;
89 Q_INVOKABLE
90 QVector3D times(qreal scalar) const;
91
92 Q_INVOKABLE
93 QVector3D plus(const QVector3D& vec) const;
94 Q_INVOKABLE
95 QVector3D minus(const QVector3D& vec) const;
96 Q_INVOKABLE
97 QVector3D normalized() const;
98 Q_INVOKABLE
99 qreal length() const;
100
101 Q_INVOKABLE
102 QVector2D toVector2d() const;
103 Q_INVOKABLE
104 QVector4D toVector4d() const;
105
106 Q_INVOKABLE
107 bool fuzzyEquals(const QVector3D& vec, qreal epsilon) const;
108 Q_INVOKABLE
109 bool fuzzyEquals(const QVector3D& vec) const;
110
111 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
112 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
113 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
114};
115
117{
118 QVector4D v;
119 Q_GADGET
120public:
121 Q_INVOKABLE
122 QString toString() const;
123
124 qreal x() const;
125 qreal y() const;
126 qreal z() const;
127 qreal w() const;
128 void setX(qreal);
129 void setY(qreal);
130 void setZ(qreal);
131 void setW(qreal);
132
133 Q_INVOKABLE
134 qreal dotProduct(const QVector4D& vec) const;
135
136 Q_INVOKABLE
137 QVector4D times(const QVector4D& vec) const;
138 Q_INVOKABLE
139 QVector4D times(const QMatrix4x4& m) const;
140 Q_INVOKABLE
141 QVector4D times(qreal scalar) const;
142
143 Q_INVOKABLE
144 QVector4D plus(const QVector4D& vec) const;
145 Q_INVOKABLE
146 QVector4D minus(const QVector4D& vec) const;
147 Q_INVOKABLE
148 QVector4D normalized() const;
149 Q_INVOKABLE
150 qreal length() const;
151
152 Q_INVOKABLE
153 QVector2D toVector2d() const;
154 Q_INVOKABLE
155 QVector3D toVector3d() const;
156
157 Q_INVOKABLE
158 bool fuzzyEquals(const QVector4D& vec, qreal epsilon) const;
159 Q_INVOKABLE
160 bool fuzzyEquals(const QVector4D& vec) const;
161
162 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
163 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
164 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
165 Q_PROPERTY(qreal w READ w WRITE setW FINAL)
166};
167
169{
170 Q_GADGET
171public:
172 ossia::token_request req;
173
174 double previous_date() const noexcept;
175 double date() const noexcept;
176 double parent_duration() const noexcept;
177 double offset() const noexcept;
178 double speed() const noexcept;
179 double tempo() const noexcept;
180
181 double musical_start_last_signature() const noexcept;
182 double musical_start_last_bar() const noexcept;
183 double musical_start_position() const noexcept;
184 double musical_end_last_bar() const noexcept;
185 double musical_end_position() const noexcept;
186
187 double signature_upper() const noexcept;
188 double signature_lower() const noexcept;
189
190 Q_INVOKABLE
191 double model_read_duration() const noexcept;
192 Q_INVOKABLE
193 double physical_start(double ratio) const noexcept;
194 Q_INVOKABLE
195 double physical_read_duration(double ratio) const noexcept;
196 Q_INVOKABLE
197 double physical_write_duration(double ratio) const noexcept;
198 Q_INVOKABLE
199 bool in_range(double time) const noexcept;
200 Q_INVOKABLE
201 double to_physical_time_in_tick(double time, double ratio) const noexcept;
202 Q_INVOKABLE
203 double from_physical_time_in_tick(double time, double ratio) const noexcept;
204
205 Q_INVOKABLE
206 double position() const noexcept;
207 Q_INVOKABLE
208 bool forward() const noexcept;
209 Q_INVOKABLE
210 bool backward() const noexcept;
211 Q_INVOKABLE
212 bool paused() const noexcept;
213
214 Q_INVOKABLE
215 double get_quantification_date(double ratio) const noexcept;
216
217 Q_INVOKABLE
218 double get_physical_quantification_date(double rate, double ratio) const noexcept;
219
220 Q_INVOKABLE
221 void set_end_time(double time) noexcept;
222 Q_INVOKABLE
223 void set_start_time(double time) noexcept;
224
225 Q_INVOKABLE
226 bool unexpected_bar_change() const noexcept;
227
228 Q_PROPERTY(double previous_date READ previous_date FINAL)
229 Q_PROPERTY(double date READ date FINAL)
230 Q_PROPERTY(double parent_duration READ parent_duration FINAL)
231 Q_PROPERTY(double offset READ offset FINAL)
232 Q_PROPERTY(double speed READ speed FINAL)
233 Q_PROPERTY(double tempo READ tempo FINAL)
234
235 Q_PROPERTY(double musical_start_last_signature READ musical_start_last_signature FINAL)
236 Q_PROPERTY(double musical_start_last_bar READ musical_start_last_bar FINAL)
237 Q_PROPERTY(double musical_start_position READ musical_start_position FINAL)
238 Q_PROPERTY(double musical_end_last_bar READ musical_end_last_bar FINAL)
239 Q_PROPERTY(double musical_end_position READ musical_end_position FINAL)
240
241 Q_PROPERTY(double signature_upper READ signature_upper FINAL)
242 Q_PROPERTY(double signature_lower READ signature_lower FINAL)
243};
244
246{
247 Q_GADGET
248 QML_VALUE_TYPE(SampleTimings)
249public:
250 ossia::exec_state_facade::sample_timings tm{};
251
252 int start_sample() const noexcept;
253 int length() const noexcept;
254
255 Q_PROPERTY(int start_sample READ start_sample FINAL)
256 Q_PROPERTY(int length READ length FINAL)
257};
258
260{
261 Q_GADGET
262 QML_VALUE_TYPE(ExecutionStateValueType)
263
264public:
265 ossia::exec_state_facade req;
266 int sample_rate() const noexcept;
267 int buffer_size() const noexcept;
268 double model_to_physical() const noexcept;
269 double physical_to_model() const noexcept;
270 double physical_date() const noexcept;
271 double start_date_ns() const noexcept;
272 double current_date_ns() const noexcept;
273
274 Q_INVOKABLE
275 SampleTimings timings(TokenRequestValueType tk) const noexcept;
276
277 Q_PROPERTY(int sample_rate READ sample_rate FINAL)
278 Q_PROPERTY(int buffer_size READ buffer_size FINAL)
279 Q_PROPERTY(double model_to_physical READ model_to_physical FINAL)
280 Q_PROPERTY(double physical_to_model READ physical_to_model FINAL)
281 Q_PROPERTY(double physical_date READ physical_date FINAL)
282 Q_PROPERTY(double start_date_ns READ start_date_ns FINAL)
283 Q_PROPERTY(double current_date_ns READ current_date_ns FINAL)
284};
285}
286
287Q_DECLARE_METATYPE(JS::TokenRequestValueType)
288Q_DECLARE_METATYPE(JS::SampleTimings)
Definition ValueTypes.Qt6.hpp:260
Definition ValueTypes.Qt6.hpp:246
Definition ValueTypes.Qt6.hpp:169
Definition ValueTypes.Qt6.hpp:22
Definition ValueTypes.Qt6.hpp:66
Definition ValueTypes.Qt6.hpp:117