1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-23 12:37:45 +00:00
novus/mdlviewer/include/mainwindow.h

61 lines
1.1 KiB
C
Raw Normal View History

2022-04-11 21:59:37 -04:00
#pragma once
#include <QMainWindow>
#include <unordered_map>
#include <QComboBox>
2022-04-11 21:59:37 -04:00
#include "renderer.hpp"
#include "types/slot.h"
#include "types/race.h"
#include "havokxmlparser.h"
struct ModelInfo {
int primaryID;
};
struct GearInfo {
std::string name;
Slot slot;
ModelInfo modelInfo;
};
2022-04-11 21:59:37 -04:00
class GameData;
class VulkanWindow;
class StandaloneWindow;
2022-04-11 21:59:37 -04:00
class MainWindow : public QMainWindow {
public:
MainWindow(GameData& data);
void exportModel(Model& model, Skeleton& skeleton, QString fileName);
2022-04-12 20:02:50 -04:00
2022-04-11 21:59:37 -04:00
private:
void loadInitialGearInfo(GearInfo& info);
void reloadGearModel();
void reloadGearAppearance();
std::vector<GearInfo> gears;
struct LoadedGear {
GearInfo* gearInfo;
Model model;
RenderModel renderModel;
};
LoadedGear loadedGear;
QComboBox* raceCombo, *lodCombo;
Race currentRace = Race::HyurMidlanderMale;
int currentLod = 0;
glm::vec3 currentScale = glm::vec3(1);
Bone* currentEditedBone = nullptr;
2022-04-11 21:59:37 -04:00
GameData& data;
Renderer* renderer;
VulkanWindow* vkWindow;
StandaloneWindow* standaloneWindow;
Skeleton skeleton;
2022-04-11 21:59:37 -04:00
};