1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-22 20:17:46 +00:00
novus/mdlviewer/include/fullmodelviewer.h
Joshua Goins 47d612eb8f Add file cache and concurrent item loading to speed up mdlviewer
Instead of extracting item sheets one at a time, it's now done on
multiple threads. Loading gear is now faster since reused files are
cached, switching between races is still wasteful, but it's a good
enough improvement for now.
2023-07-09 10:54:27 -04:00

48 lines
No EOL
957 B
C++

#pragma once
#include <QWidget>
#include <QGroupBox>
#include "gearview.h"
struct GameData;
class FileCache;
class FullModelViewer : public QWidget {
Q_OBJECT
public:
explicit FullModelViewer(GameData* data, FileCache& cache);
Q_SIGNALS:
void gearChanged();
public Q_SLOTS:
void clear();
void addGear(GearInfo& info);
private Q_SLOTS:
void reloadGear();
private:
void updateHeightScaling(float scale);
void updateBustScaling(float scale);
void updateCharacterParameters();
void updateSupportedSubraces();
QGroupBox* addFaceGroup();
QGroupBox* addHairGroup();
QGroupBox* addEarGroup();
QGroupBox* addTailGroup();
std::optional<GearInfo> topSlot;
std::optional<GearInfo> bottomSlot;
GearView* gearView = nullptr;
QComboBox *raceCombo, *subraceCombo, *genderCombo;
GameData* data = nullptr;
physis_CMP cmp;
float heightScale = 0.5f;
float bustScale = 1.0f;
};