Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qquickvaluetypes_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKVALUETYPES_P_H
5#define QQUICKVALUETYPES_P_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 <qqml.h>
19#include <private/qtquickglobal_p.h>
20#include <private/qqmlvaluetype_p.h>
21
22#include <QtGui/QColor>
23#include <QtGui/QColorSpace>
24#include <QtGui/QVector2D>
25#include <QtGui/QVector3D>
26#include <QtGui/QVector4D>
27#include <QtGui/QQuaternion>
28#include <QtGui/QMatrix4x4>
29#include <QtGui/QFont>
30
32
33class Q_QUICK_PRIVATE_EXPORT QQuickColorValueType
34{
36 Q_PROPERTY(qreal r READ r WRITE setR FINAL)
37 Q_PROPERTY(qreal g READ g WRITE setG FINAL)
38 Q_PROPERTY(qreal b READ b WRITE setB FINAL)
39 Q_PROPERTY(qreal a READ a WRITE setA FINAL)
40 Q_PROPERTY(qreal hsvHue READ hsvHue WRITE setHsvHue FINAL)
41 Q_PROPERTY(qreal hsvSaturation READ hsvSaturation WRITE setHsvSaturation FINAL)
42 Q_PROPERTY(qreal hsvValue READ hsvValue WRITE setHsvValue FINAL)
43 Q_PROPERTY(qreal hslHue READ hslHue WRITE setHslHue FINAL)
44 Q_PROPERTY(qreal hslSaturation READ hslSaturation WRITE setHslSaturation FINAL)
45 Q_PROPERTY(qreal hslLightness READ hslLightness WRITE setHslLightness FINAL)
46 Q_PROPERTY(bool valid READ isValid FINAL)
53
54public:
55 static QVariant create(const QJSValue &params);
56
59
61 Q_INVOKABLE QVariant lighter(qreal factor = 1.5) const;
62 Q_INVOKABLE QVariant darker(qreal factor = 2.0) const;
63 Q_INVOKABLE QVariant tint(QVariant factor) const;
64
65 qreal r() const;
66 qreal g() const;
67 qreal b() const;
68 qreal a() const;
69 qreal hsvHue() const;
70 qreal hsvSaturation() const;
71 qreal hsvValue() const;
72 qreal hslHue() const;
73 qreal hslSaturation() const;
74 qreal hslLightness() const;
75 bool isValid() const;
76 void setR(qreal);
77 void setG(qreal);
78 void setB(qreal);
79 void setA(qreal);
80 void setHsvHue(qreal);
81 void setHsvSaturation(qreal);
82 void setHsvValue(qreal);
83 void setHslHue(qreal);
84 void setHslSaturation(qreal);
85 void setHslLightness(qreal);
86
87 operator QColor() const { return v; }
88};
89
90class Q_QUICK_PRIVATE_EXPORT QQuickVector2DValueType
91{
93 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
94 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
98 QML_VALUE_TYPE(vector2d)
101
102public:
103 static QVariant create(const QJSValue &params);
104
106
107 qreal x() const;
108 qreal y() const;
109 void setX(qreal);
110 void setY(qreal);
111
112 Q_INVOKABLE qreal dotProduct(const QVector2D &vec) const;
113 Q_INVOKABLE QVector2D times(const QVector2D &vec) const;
114 Q_INVOKABLE QVector2D times(qreal scalar) const;
115 Q_INVOKABLE QVector2D plus(const QVector2D &vec) const;
116 Q_INVOKABLE QVector2D minus(const QVector2D &vec) const;
118 Q_INVOKABLE qreal length() const;
119 Q_INVOKABLE QVector3D toVector3d() const;
120 Q_INVOKABLE QVector4D toVector4d() const;
121 Q_INVOKABLE bool fuzzyEquals(const QVector2D &vec, qreal epsilon) const;
122 Q_INVOKABLE bool fuzzyEquals(const QVector2D &vec) const;
123
124 operator QVector2D() const { return v; }
125};
126
127class Q_QUICK_PRIVATE_EXPORT QQuickVector3DValueType
128{
130 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
131 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
132 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
136 QML_VALUE_TYPE(vector3d)
139
140public:
141 static QVariant create(const QJSValue &params);
142
144
145 qreal x() const;
146 qreal y() const;
147 qreal z() const;
148 void setX(qreal);
149 void setY(qreal);
150 void setZ(qreal);
151
153 Q_INVOKABLE qreal dotProduct(const QVector3D &vec) const;
154 Q_INVOKABLE QVector3D times(const QMatrix4x4 &m) const;
155 Q_INVOKABLE QVector3D times(const QVector3D &vec) const;
156 Q_INVOKABLE QVector3D times(qreal scalar) const;
157 Q_INVOKABLE QVector3D plus(const QVector3D &vec) const;
158 Q_INVOKABLE QVector3D minus(const QVector3D &vec) const;
160 Q_INVOKABLE qreal length() const;
161 Q_INVOKABLE QVector2D toVector2d() const;
162 Q_INVOKABLE QVector4D toVector4d() const;
163 Q_INVOKABLE bool fuzzyEquals(const QVector3D &vec, qreal epsilon) const;
164 Q_INVOKABLE bool fuzzyEquals(const QVector3D &vec) const;
165
166 operator QVector3D() const { return v; }
167};
168
169class Q_QUICK_PRIVATE_EXPORT QQuickVector4DValueType
170{
172 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
173 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
174 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
175 Q_PROPERTY(qreal w READ w WRITE setW FINAL)
179 QML_VALUE_TYPE(vector4d)
182
183public:
184 static QVariant create(const QJSValue &params);
185
187
188 qreal x() const;
189 qreal y() const;
190 qreal z() const;
191 qreal w() const;
192 void setX(qreal);
193 void setY(qreal);
194 void setZ(qreal);
195 void setW(qreal);
196
197 Q_INVOKABLE qreal dotProduct(const QVector4D &vec) const;
198 Q_INVOKABLE QVector4D times(const QVector4D &vec) const;
199 Q_INVOKABLE QVector4D times(const QMatrix4x4 &m) const;
200 Q_INVOKABLE QVector4D times(qreal scalar) const;
201 Q_INVOKABLE QVector4D plus(const QVector4D &vec) const;
202 Q_INVOKABLE QVector4D minus(const QVector4D &vec) const;
204 Q_INVOKABLE qreal length() const;
205 Q_INVOKABLE QVector2D toVector2d() const;
206 Q_INVOKABLE QVector3D toVector3d() const;
207 Q_INVOKABLE bool fuzzyEquals(const QVector4D &vec, qreal epsilon) const;
208 Q_INVOKABLE bool fuzzyEquals(const QVector4D &vec) const;
209
210 operator QVector4D() const { return v; }
211};
212
213class Q_QUICK_PRIVATE_EXPORT QQuickQuaternionValueType
214{
216 Q_PROPERTY(qreal scalar READ scalar WRITE setScalar FINAL)
217 Q_PROPERTY(qreal x READ x WRITE setX FINAL)
218 Q_PROPERTY(qreal y READ y WRITE setY FINAL)
219 Q_PROPERTY(qreal z READ z WRITE setZ FINAL)
223 QML_VALUE_TYPE(quaternion)
226
227public:
228 static QVariant create(const QJSValue &params);
229
231
232 qreal scalar() const;
233 qreal x() const;
234 qreal y() const;
235 qreal z() const;
236 void setScalar(qreal);
237 void setX(qreal);
238 void setY(qreal);
239 void setZ(qreal);
240
242 Q_INVOKABLE QQuaternion times(const QQuaternion &q) const;
243 Q_INVOKABLE QVector3D times(const QVector3D &vec) const;
244 Q_INVOKABLE QQuaternion times(qreal factor) const;
245 Q_INVOKABLE QQuaternion plus(const QQuaternion &q) const;
246 Q_INVOKABLE QQuaternion minus(const QQuaternion &q) const;
247
249 Q_INVOKABLE QQuaternion inverted() const;
250 Q_INVOKABLE QQuaternion conjugated() const;
251 Q_INVOKABLE qreal length() const;
252
253 Q_INVOKABLE QVector3D toEulerAngles() const;
254 Q_INVOKABLE QVector4D toVector4d() const;
255
256 Q_INVOKABLE bool fuzzyEquals(const QQuaternion &q, qreal epsilon) const;
257 Q_INVOKABLE bool fuzzyEquals(const QQuaternion &q) const;
258
259 operator QQuaternion() const { return v; }
260};
261
262class Q_QUICK_PRIVATE_EXPORT QQuickMatrix4x4ValueType
263{
265 Q_PROPERTY(qreal m11 READ m11 WRITE setM11 FINAL)
266 Q_PROPERTY(qreal m12 READ m12 WRITE setM12 FINAL)
267 Q_PROPERTY(qreal m13 READ m13 WRITE setM13 FINAL)
268 Q_PROPERTY(qreal m14 READ m14 WRITE setM14 FINAL)
269 Q_PROPERTY(qreal m21 READ m21 WRITE setM21 FINAL)
270 Q_PROPERTY(qreal m22 READ m22 WRITE setM22 FINAL)
271 Q_PROPERTY(qreal m23 READ m23 WRITE setM23 FINAL)
272 Q_PROPERTY(qreal m24 READ m24 WRITE setM24 FINAL)
273 Q_PROPERTY(qreal m31 READ m31 WRITE setM31 FINAL)
274 Q_PROPERTY(qreal m32 READ m32 WRITE setM32 FINAL)
275 Q_PROPERTY(qreal m33 READ m33 WRITE setM33 FINAL)
276 Q_PROPERTY(qreal m34 READ m34 WRITE setM34 FINAL)
277 Q_PROPERTY(qreal m41 READ m41 WRITE setM41 FINAL)
278 Q_PROPERTY(qreal m42 READ m42 WRITE setM42 FINAL)
279 Q_PROPERTY(qreal m43 READ m43 WRITE setM43 FINAL)
280 Q_PROPERTY(qreal m44 READ m44 WRITE setM44 FINAL)
284 QML_VALUE_TYPE(matrix4x4)
287
288public:
289 static QVariant create(const QJSValue &params);
290
291 qreal m11() const { return v(0, 0); }
292 qreal m12() const { return v(0, 1); }
293 qreal m13() const { return v(0, 2); }
294 qreal m14() const { return v(0, 3); }
295 qreal m21() const { return v(1, 0); }
296 qreal m22() const { return v(1, 1); }
297 qreal m23() const { return v(1, 2); }
298 qreal m24() const { return v(1, 3); }
299 qreal m31() const { return v(2, 0); }
300 qreal m32() const { return v(2, 1); }
301 qreal m33() const { return v(2, 2); }
302 qreal m34() const { return v(2, 3); }
303 qreal m41() const { return v(3, 0); }
304 qreal m42() const { return v(3, 1); }
305 qreal m43() const { return v(3, 2); }
306 qreal m44() const { return v(3, 3); }
307
308 void setM11(qreal value) { v(0, 0) = value; }
309 void setM12(qreal value) { v(0, 1) = value; }
310 void setM13(qreal value) { v(0, 2) = value; }
311 void setM14(qreal value) { v(0, 3) = value; }
312 void setM21(qreal value) { v(1, 0) = value; }
313 void setM22(qreal value) { v(1, 1) = value; }
314 void setM23(qreal value) { v(1, 2) = value; }
315 void setM24(qreal value) { v(1, 3) = value; }
316 void setM31(qreal value) { v(2, 0) = value; }
317 void setM32(qreal value) { v(2, 1) = value; }
318 void setM33(qreal value) { v(2, 2) = value; }
319 void setM34(qreal value) { v(2, 3) = value; }
320 void setM41(qreal value) { v(3, 0) = value; }
321 void setM42(qreal value) { v(3, 1) = value; }
322 void setM43(qreal value) { v(3, 2) = value; }
323 void setM44(qreal value) { v(3, 3) = value; }
324
325 Q_INVOKABLE void translate(const QVector3D &t) { v.translate(t); }
326 Q_INVOKABLE void rotate(float angle, const QVector3D &axis) { v.rotate(angle, axis); }
327 Q_INVOKABLE void rotate(const QQuaternion &q) { v.rotate(q); }
328 Q_INVOKABLE void scale(float s) { v.scale(s); }
329 Q_INVOKABLE void scale(float sx, float sy, float sz) { v.scale(sx, sy, sz); }
330 Q_INVOKABLE void scale(const QVector3D &s) { v.scale(s); }
331 Q_INVOKABLE void lookAt(const QVector3D &eye, const QVector3D &center, const QVector3D &up) { v.lookAt(eye, center, up); }
332
333 Q_INVOKABLE QMatrix4x4 times(const QMatrix4x4 &m) const;
334 Q_INVOKABLE QVector4D times(const QVector4D &vec) const;
335 Q_INVOKABLE QVector3D times(const QVector3D &vec) const;
336 Q_INVOKABLE QMatrix4x4 times(qreal factor) const;
337 Q_INVOKABLE QMatrix4x4 plus(const QMatrix4x4 &m) const;
338 Q_INVOKABLE QMatrix4x4 minus(const QMatrix4x4 &m) const;
339
340 Q_INVOKABLE QVector4D row(int n) const;
341 Q_INVOKABLE QVector4D column(int m) const;
342
343 Q_INVOKABLE qreal determinant() const;
344 Q_INVOKABLE QMatrix4x4 inverted() const;
345 Q_INVOKABLE QMatrix4x4 transposed() const;
346
347 Q_INVOKABLE QPointF map(const QPointF p) const;
348 Q_INVOKABLE QRectF mapRect(const QRectF r) const;
349
350 Q_INVOKABLE bool fuzzyEquals(const QMatrix4x4 &m, qreal epsilon) const;
351 Q_INVOKABLE bool fuzzyEquals(const QMatrix4x4 &m) const;
352
353 operator QMatrix4x4() const { return v; }
354};
355
357{
358Q_NAMESPACE_EXPORT(Q_QUICK_PRIVATE_EXPORT)
359
362
379
387};
388
389class Q_QUICK_PRIVATE_EXPORT QQuickFontValueType
390{
393
394 Q_PROPERTY(QString family READ family WRITE setFamily FINAL)
395 Q_PROPERTY(QString styleName READ styleName WRITE setStyleName FINAL)
396 Q_PROPERTY(bool bold READ bold WRITE setBold FINAL)
397 Q_PROPERTY(int weight READ weight WRITE setWeight FINAL)
398 Q_PROPERTY(bool italic READ italic WRITE setItalic FINAL)
399 Q_PROPERTY(bool underline READ underline WRITE setUnderline FINAL)
400 Q_PROPERTY(bool overline READ overline WRITE setOverline FINAL)
401 Q_PROPERTY(bool strikeout READ strikeout WRITE setStrikeout FINAL)
402 Q_PROPERTY(qreal pointSize READ pointSize WRITE setPointSize FINAL)
403 Q_PROPERTY(int pixelSize READ pixelSize WRITE setPixelSize FINAL)
404 Q_PROPERTY(QQuickFontEnums::Capitalization capitalization READ capitalization WRITE setCapitalization FINAL)
405 Q_PROPERTY(qreal letterSpacing READ letterSpacing WRITE setLetterSpacing FINAL)
406 Q_PROPERTY(qreal wordSpacing READ wordSpacing WRITE setWordSpacing FINAL)
407 Q_PROPERTY(QQuickFontEnums::HintingPreference hintingPreference READ hintingPreference WRITE setHintingPreference FINAL)
408 Q_PROPERTY(bool kerning READ kerning WRITE setKerning FINAL)
409 Q_PROPERTY(bool preferShaping READ preferShaping WRITE setPreferShaping FINAL)
410 Q_PROPERTY(QVariantMap features READ features WRITE setFeatures FINAL)
411
417
418public:
419 static QVariant create(const QJSValue &value);
420
422
423 QString family() const;
424 void setFamily(const QString &);
425
426 QString styleName() const;
427 void setStyleName(const QString &);
428
429 bool bold() const;
430 void setBold(bool b);
431
432 int weight() const;
433 void setWeight(int);
434
435 bool italic() const;
436 void setItalic(bool b);
437
438 bool underline() const;
439 void setUnderline(bool b);
440
441 bool overline() const;
442 void setOverline(bool b);
443
444 bool strikeout() const;
445 void setStrikeout(bool b);
446
447 qreal pointSize() const;
448 void setPointSize(qreal size);
449
450 int pixelSize() const;
451 void setPixelSize(int size);
452
453 QQuickFontEnums::Capitalization capitalization() const;
454 void setCapitalization(QQuickFontEnums::Capitalization);
455
456 qreal letterSpacing() const;
457 void setLetterSpacing(qreal spacing);
458
459 qreal wordSpacing() const;
460 void setWordSpacing(qreal spacing);
461
462 QQuickFontEnums::HintingPreference hintingPreference() const;
463 void setHintingPreference(QQuickFontEnums::HintingPreference);
464
465 bool kerning() const;
466 void setKerning(bool b);
467
468 bool preferShaping() const;
469 void setPreferShaping(bool b);
470
471 QVariantMap features() const;
472 void setFeatures(const QVariantMap &features);
473
474 operator QFont() const { return v; }
475};
476
478{
479Q_NAMESPACE_EXPORT(Q_QUICK_PRIVATE_EXPORT)
482Q_CLASSINFO("RegisterEnumClassesUnscoped", "false")
483
493
494enum class Primaries {
495 Custom = 0,
496 SRgb,
497 AdobeRgb,
498 DciP3D65,
500};
503 Custom = 0,
504 Linear,
505 Gamma,
506 SRgb,
508};
510}
511
512class Q_QUICK_PRIVATE_EXPORT QQuickColorSpaceValueType
513{
516
517 Q_PROPERTY(QQuickColorSpaceEnums::NamedColorSpace namedColorSpace READ namedColorSpace WRITE setNamedColorSpace FINAL)
518 Q_PROPERTY(QQuickColorSpaceEnums::Primaries primaries READ primaries WRITE setPrimaries FINAL)
519 Q_PROPERTY(QQuickColorSpaceEnums::TransferFunction transferFunction READ transferFunction WRITE setTransferFunction FINAL)
520 Q_PROPERTY(float gamma READ gamma WRITE setGamma FINAL)
521
527
528public:
529 static QVariant create(const QJSValue &params);
530
531 QQuickColorSpaceEnums::NamedColorSpace namedColorSpace() const noexcept;
532 void setNamedColorSpace(QQuickColorSpaceEnums::NamedColorSpace namedColorSpace);
533 QQuickColorSpaceEnums::Primaries primaries() const noexcept;
534 void setPrimaries(QQuickColorSpaceEnums::Primaries primariesId);
535 QQuickColorSpaceEnums::TransferFunction transferFunction() const noexcept;
536 void setTransferFunction(QQuickColorSpaceEnums::TransferFunction transferFunction);
537 float gamma() const noexcept;
538 void setGamma(float gamma);
539
540 operator QColorSpace() const { return v; }
541};
542
544
545#endif // QQUICKVALUETYPES_P_H
The QColorSpace class provides a color space abstraction.
Definition qcolorspace.h:21
The QColor class provides colors based on RGB, HSV or CMYK values.
Definition qcolor.h:31
\reentrant
Definition qfont.h:20
@ AllLowercase
Definition qfont.h:97
@ AllUppercase
Definition qfont.h:96
@ Capitalize
Definition qfont.h:99
@ MixedCase
Definition qfont.h:95
@ SmallCaps
Definition qfont.h:98
@ PreferNoHinting
Definition qfont.h:54
@ PreferFullHinting
Definition qfont.h:56
@ PreferVerticalHinting
Definition qfont.h:55
@ PreferDefaultHinting
Definition qfont.h:53
@ DemiBold
Definition qfont.h:66
@ Thin
Definition qfont.h:61
@ ExtraBold
Definition qfont.h:68
@ Black
Definition qfont.h:69
@ Bold
Definition qfont.h:67
@ ExtraLight
Definition qfont.h:62
@ Normal
Definition qfont.h:64
@ Light
Definition qfont.h:63
@ Medium
Definition qfont.h:65
The QJSValue class acts as a container for Qt/JavaScript data types.
Definition qjsvalue.h:31
The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space.
Definition qmatrix4x4.h:25
\inmodule QtCore\reentrant
Definition qpoint.h:214
The QQuaternion class represents a quaternion consisting of a vector and scalar.
Definition qquaternion.h:21
Q_INVOKABLE void rotate(const QQuaternion &q)
Q_INVOKABLE void scale(float s)
Q_INVOKABLE void rotate(float angle, const QVector3D &axis)
Q_INVOKABLE void scale(float sx, float sy, float sz)
Q_INVOKABLE void translate(const QVector3D &t)
Q_INVOKABLE void scale(const QVector3D &s)
Q_INVOKABLE void lookAt(const QVector3D &eye, const QVector3D &center, const QVector3D &up)
\inmodule QtCore\reentrant
Definition qrect.h:483
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qvariant.h:64
The QVector2D class represents a vector or vertex in 2D space.
Definition qvectornd.h:31
The QVector3D class represents a vector or vertex in 3D space.
Definition qvectornd.h:171
The QVector4D class represents a vector or vertex in 4D space.
Definition qvectornd.h:330
QMap< QString, QString > map
[6]
qreal spacing
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
static QFixed kerning(int left, int right, const QFontEngine::KernPair *pairs, int numPairs)
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * v
[13]
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat z
GLint GLint GLint GLint GLint x
[0]
const GLfloat * m
GLfloat GLfloat GLfloat w
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLboolean r
[2]
GLenum GLuint GLenum GLsizei length
GLuint GLuint GLfloat weight
GLfloat angle
GLboolean GLboolean g
GLfloat n
GLint y
void ** params
GLenum GLenum GLsizei void GLsizei void * column
GLdouble GLdouble t
Definition qopenglext.h:243
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
GLenum GLenum GLsizei void * row
GLint GLenum GLboolean normalized
Definition qopenglext.h:752
GLdouble s
[6]
Definition qopenglext.h:235
GLfloat GLfloat p
[1]
GLfloat GLfloat GLfloat alpha
Definition qopenglext.h:418
static bool fuzzyEquals(const physx::PxTransform &a, const physx::PxTransform &b)
#define QML_ANONYMOUS
#define QML_EXTENDED(EXTENDED_TYPE)
#define QML_VALUE_TYPE(NAME)
#define QML_NAMED_ELEMENT(NAME)
#define QML_STRUCTURED_VALUE
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
#define QML_FOREIGN(FOREIGN_TYPE)
static const qreal epsilon
static float crossProduct(const QVector2D &sp, const QVector2D &p, const QVector2D &ep)
#define Q_PROPERTY(...)
#define Q_CLASSINFO(name, value)
#define Q_INVOKABLE
#define Q_GADGET
#define Q_ENUM_NS(x)
#define Q_NAMESPACE_EXPORT(...)
double qreal
Definition qtypes.h:92
p setX(p.x()+1)
view create()
char * toString(const MyType &t)
[31]