18QVariant QQuick3DParticleShapeDataUtils::readValue(QCborStreamReader &reader, QMetaType::Type type)
21 case QMetaType::Bool: {
22 bool b = reader.toBool();
26 case QMetaType::Int: {
27 int i = reader.toInteger();
31 case QMetaType::Float: {
32 float f = reader.toFloat();
36 case QMetaType::Double: {
37 double d = reader.toDouble();
41 case QMetaType::QString: {
42 QString s = reader.readString().data;
45 case QMetaType::QVector2D: {
47 v.setX(reader.toFloat());
49 v.setY(reader.toFloat());
53 case QMetaType::QVector3D: {
55 v.setX(reader.toFloat());
57 v.setY(reader.toFloat());
59 v.setZ(reader.toFloat());
63 case QMetaType::QVector4D: {
65 v.setX(reader.toFloat());
67 v.setY(reader.toFloat());
69 v.setZ(reader.toFloat());
71 v.setW(reader.toFloat());
75 case QMetaType::QQuaternion: {
77 q.setScalar(reader.toFloat());
79 q.setX(reader.toFloat());
81 q.setY(reader.toFloat());
83 q.setZ(reader.toFloat());
87 case QMetaType::QColor: {
89 c.setRed(reader.toInteger());
91 c.setGreen(reader.toInteger());
93 c.setBlue(reader.toInteger());
95 c.setAlpha(reader.toInteger());
99 case QMetaType::QRect: {
101 r.setX(reader.toInteger());
103 r.setY(reader.toInteger());
105 r.setWidth(reader.toInteger());
107 r.setHeight(reader.toInteger());
112 qWarning() <<
"Property type not handled:" << type;
152int QQuick3DParticleShapeDataUtils::readShapeHeader(QCborStreamReader &reader)
155 if (reader.lastError() == QCborError::NoError && reader.isArray()) {
157 reader.enterContainer();
158 if (reader.isString()) {
159 QString header = readString(reader);
160 if (header == QStringLiteral(
"QQ3D_SHAPE")) {
161 if (reader.isInteger()) {
162 version = reader.toInteger();
165 qWarning() <<
"Invalid shape version";
168 qWarning() <<
"Invalid shape header";
171 qWarning() <<
"Invalid shape container";