13 #ifndef hifi_AvatarDoctor_h
14 #define hifi_AvatarDoctor_h
18 #include <QVariantMap>
19 #include "GeometryCache.h"
21 struct AvatarDiagnosticResult {
25 Q_DECLARE_METATYPE(AvatarDiagnosticResult)
26 Q_DECLARE_METATYPE(QVector<AvatarDiagnosticResult>)
28 class AvatarDoctor :
public QObject {
31 AvatarDoctor(
const QUrl& avatarFSTFileUrl);
33 Q_INVOKABLE
void startDiagnosing();
35 Q_INVOKABLE QVariantList getErrors()
const;
38 void complete(QVariantList errors);
41 void diagnoseTextures();
43 void addError(
const QString& errorMessage,
const QString& docFragment);
45 QUrl _avatarFSTFileUrl;
46 QVector<AvatarDiagnosticResult> _errors;
48 int _externalTextureCount = 0;
49 int _checkedTextureCount = 0;
50 int _missingTextureCount = 0;
51 int _unsupportedTextureCount = 0;
53 int _materialMappingCount = 0;
54 int _materialMappingLoadedCount = 0;
56 GeometryResource::Pointer _model;
58 bool _isDiagnosing =
false;