93 lines · 3.4 KB · C
RawDownload
////  Created by Anthony J. Thibault 2018/08/06//  Copyright 2018 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #ifndef hifi_AnimStats_h#define hifi_AnimStats_h #include <OffscreenQmlElement.h>#include <AnimContext.h> class AnimStats : public QQuickItem {    Q_OBJECT    HIFI_QML_DECL     Q_PROPERTY(QStringList animAlphaValues READ animAlphaValues NOTIFY animAlphaValuesChanged)    Q_PROPERTY(QStringList animVars READ animVars NOTIFY animVarsChanged)    Q_PROPERTY(QStringList animStateMachines READ animStateMachines NOTIFY animStateMachinesChanged)    Q_PROPERTY(QString positionText READ positionText NOTIFY positionTextChanged)    Q_PROPERTY(QString rotationText READ rotationText NOTIFY rotationTextChanged)    Q_PROPERTY(QString velocityText READ velocityText NOTIFY velocityTextChanged)    Q_PROPERTY(QString recenterText READ recenterText NOTIFY recenterTextChanged)    Q_PROPERTY(QString sittingText READ sittingText NOTIFY sittingTextChanged)    Q_PROPERTY(QString walkingText READ walkingText NOTIFY walkingTextChanged)    Q_PROPERTY(QString overrideJointText READ overrideJointText NOTIFY overrideJointTextChanged)    Q_PROPERTY(QString flowText READ flowText NOTIFY flowTextChanged)    Q_PROPERTY(QString networkGraphText READ networkGraphText NOTIFY networkGraphTextChanged) public:    static AnimStats* getInstance();     AnimStats(QQuickItem* parent = nullptr);     void updateStats(bool force = false);     QStringList animAlphaValues() const { return _animAlphaValues; }    QStringList animVars() const { return _animVarsList; }    QStringList animStateMachines() const { return _animStateMachines; }     QString positionText() const { return _positionText; }    QString rotationText() const { return _rotationText; }    QString velocityText() const { return _velocityText; }    QString recenterText() const { return _recenterText; }    QString sittingText() const { return _sittingText; }    QString walkingText() const { return _walkingText; }    QString overrideJointText() const { return _overrideJointText; }    QString flowText() const { return _flowText; }    QString networkGraphText() const { return _networkGraphText; } public slots:    void forceUpdateStats() { updateStats(true); } signals:     void animAlphaValuesChanged();    void animVarsChanged();    void animStateMachinesChanged();    void positionTextChanged();    void rotationTextChanged();    void velocityTextChanged();    void recenterTextChanged();    void sittingTextChanged();    void walkingTextChanged();    void overrideJointTextChanged();    void flowTextChanged();    void networkGraphTextChanged(); private:    QStringList _animAlphaValues;    AnimContext::DebugAlphaMap _prevDebugAlphaMap;  // alpha values from previous frame    std::map<QString, qint64> _animAlphaValueChangedTimers; // last time alpha value has changed     QStringList _animVarsList;    std::map<QString, QString> _prevAnimVars;  // anim vars from previous frame    std::map<QString, qint64> _animVarChangedTimers; // last time animVar value has changed.     QStringList _animStateMachines;     QString _positionText;    QString _rotationText;    QString _velocityText;    QString _recenterText;    QString _sittingText;    QString _walkingText;    QString _overrideJointText;    QString _flowText;    QString _networkGraphText;}; #endif // hifi_AnimStats_h