2023-04-09 15:31:19 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <QWidget>
|
2023-07-08 15:29:42 -04:00
|
|
|
#include <QGroupBox>
|
2023-04-09 15:31:19 -04:00
|
|
|
|
|
|
|
#include "gearview.h"
|
|
|
|
|
|
|
|
struct GameData;
|
|
|
|
|
|
|
|
class FullModelViewer : public QWidget {
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
explicit FullModelViewer(GameData* data);
|
|
|
|
|
|
|
|
Q_SIGNALS:
|
|
|
|
void gearChanged();
|
|
|
|
|
2023-07-07 16:16:21 -04:00
|
|
|
public Q_SLOTS:
|
2023-04-09 15:31:19 -04:00
|
|
|
void clear();
|
2023-07-07 16:16:21 -04:00
|
|
|
void addGear(GearInfo& info);
|
2023-04-09 15:31:19 -04:00
|
|
|
|
2023-07-07 16:16:21 -04:00
|
|
|
private Q_SLOTS:
|
2023-04-09 15:31:19 -04:00
|
|
|
void reloadGear();
|
|
|
|
|
2023-07-07 16:16:21 -04:00
|
|
|
private:
|
2023-07-07 16:02:45 -04:00
|
|
|
void updateHeightScaling(float scale);
|
|
|
|
void updateBustScaling(float scale);
|
|
|
|
void updateCharacterParameters();
|
2023-07-07 16:29:43 -04:00
|
|
|
void updateSupportedSubraces();
|
2023-07-07 16:02:45 -04:00
|
|
|
|
2023-07-08 15:29:42 -04:00
|
|
|
QGroupBox* addFaceGroup();
|
|
|
|
QGroupBox* addHairGroup();
|
|
|
|
QGroupBox* addEarGroup();
|
|
|
|
QGroupBox* addTailGroup();
|
|
|
|
|
2023-04-09 15:31:19 -04:00
|
|
|
std::optional<GearInfo> topSlot;
|
2023-07-07 16:02:45 -04:00
|
|
|
std::optional<GearInfo> bottomSlot;
|
|
|
|
|
2023-07-07 16:16:21 -04:00
|
|
|
GearView* gearView = nullptr;
|
|
|
|
QComboBox *raceCombo, *subraceCombo, *genderCombo;
|
2023-04-09 15:31:19 -04:00
|
|
|
|
2023-07-07 16:16:21 -04:00
|
|
|
GameData* data = nullptr;
|
2023-07-07 16:02:45 -04:00
|
|
|
physis_CMP cmp;
|
2023-04-09 15:31:19 -04:00
|
|
|
|
2023-07-07 16:02:45 -04:00
|
|
|
float heightScale = 0.5f;
|
2023-07-08 15:29:42 -04:00
|
|
|
float bustScale = 1.0f;
|
2023-04-09 15:31:19 -04:00
|
|
|
};
|