20QVariant QQuick3DParticleShapeDataUtils::readValue(QCborStreamReader &reader, QMetaType::Type type)
23 case QMetaType::Bool: {
24 bool b = reader.toBool();
28 case QMetaType::Int: {
29 int i = reader.toInteger();
33 case QMetaType::Float: {
34 float f = reader.toFloat();
38 case QMetaType::Double: {
39 double d = reader.toDouble();
43 case QMetaType::QString: {
44 QString s = reader.readString().data;
47 case QMetaType::QVector2D: {
49 v.setX(reader.toFloat());
51 v.setY(reader.toFloat());
55 case QMetaType::QVector3D: {
57 v.setX(reader.toFloat());
59 v.setY(reader.toFloat());
61 v.setZ(reader.toFloat());
65 case QMetaType::QVector4D: {
67 v.setX(reader.toFloat());
69 v.setY(reader.toFloat());
71 v.setZ(reader.toFloat());
73 v.setW(reader.toFloat());
77 case QMetaType::QQuaternion: {
79 q.setScalar(reader.toFloat());
81 q.setX(reader.toFloat());
83 q.setY(reader.toFloat());
85 q.setZ(reader.toFloat());
89 case QMetaType::QColor: {
91 c.setRed(reader.toInteger());
93 c.setGreen(reader.toInteger());
95 c.setBlue(reader.toInteger());
97 c.setAlpha(reader.toInteger());
101 case QMetaType::QRect: {
103 r.setX(reader.toInteger());
105 r.setY(reader.toInteger());
107 r.setWidth(reader.toInteger());
109 r.setHeight(reader.toInteger());
114 qWarning() <<
"Property type not handled:" << type;
154int QQuick3DParticleShapeDataUtils::readShapeHeader(QCborStreamReader &reader)
157 if (reader.lastError() == QCborError::NoError && reader.isArray()) {
159 reader.enterContainer();
160 if (reader.isString()) {
161 QString header = readString(reader);
162 if (header == QStringLiteral(
"QQ3D_SHAPE")) {
163 if (reader.isInteger()) {
164 version = reader.toInteger();
167 qWarning() <<
"Invalid shape version";
170 qWarning() <<
"Invalid shape header";
173 qWarning() <<
"Invalid shape container";