1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-22 03:57:45 +00:00
novus/armoury/include/fullmodelviewer.h

54 lines
1.1 KiB
C
Raw Normal View History

// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <QGroupBox>
#include <QMainWindow>
#include "gearview.h"
struct GameData;
class FileCache;
2023-10-12 23:44:48 -04:00
class FullModelViewer : public QMainWindow
{
Q_OBJECT
2023-10-12 23:44:48 -04:00
public:
2023-10-12 23:44:48 -04:00
explicit FullModelViewer(GameData *data, FileCache &cache, QWidget *parent = nullptr);
Q_SIGNALS:
void gearChanged();
void loadingChanged(bool loading);
2023-07-07 16:16:21 -04:00
public Q_SLOTS:
void clear();
2023-10-12 23:44:48 -04:00
void addGear(GearInfo &info);
2023-07-07 16:16:21 -04:00
private Q_SLOTS:
void reloadGear();
2023-07-07 16:16:21 -04:00
private:
void updateHeightScaling(float scale);
void updateBustScaling(float scale);
void updateCharacterParameters();
2023-07-07 16:29:43 -04:00
void updateSupportedSubraces();
2023-10-12 23:44:48 -04:00
QGroupBox *addFaceGroup();
QGroupBox *addHairGroup();
QGroupBox *addEarGroup();
QGroupBox *addTailGroup();
std::optional<GearInfo> topSlot;
std::optional<GearInfo> bottomSlot;
2023-10-12 23:44:48 -04:00
GearView *gearView = nullptr;
QComboBox *raceCombo = nullptr, *subraceCombo = nullptr, *genderCombo = nullptr;
2023-10-12 23:44:48 -04:00
GameData *data = nullptr;
physis_CMP cmp{};
float heightScale = 0.5f;
float bustScale = 1.0f;
};