mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-17 15:38:11 +08:00
Add logger class for noticing
This commit is contained in:
parent
7aef374f9b
commit
647edbbc7a
@ -99,6 +99,7 @@
|
||||
<ItemGroup>
|
||||
<ClCompile Include="camera.cpp" />
|
||||
<ClCompile Include="ebo.cpp" />
|
||||
<ClCompile Include="logger.cpp" />
|
||||
<ClCompile Include="mesh.cpp" />
|
||||
<ClCompile Include="model.cpp" />
|
||||
<ClCompile Include="modelselectable.cpp" />
|
||||
@ -122,6 +123,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="camera.h" />
|
||||
<ClInclude Include="logger.h" />
|
||||
<ClInclude Include="mesh.h" />
|
||||
<ClInclude Include="model.h" />
|
||||
<ClInclude Include="texture.h" />
|
||||
|
||||
@ -36,6 +36,9 @@
|
||||
<Filter Include="Source Files\Qt Widgets">
|
||||
<UniqueIdentifier>{1d6b02e9-c670-43ed-a367-a56924bb1a90}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Source Files\Utils">
|
||||
<UniqueIdentifier>{602fc1ed-84a6-4d4a-ad71-5e7415d8d429}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtRcc Include="mainwindow.qrc">
|
||||
@ -94,6 +97,9 @@
|
||||
<ClCompile Include="modelsetter.cpp">
|
||||
<Filter>Source Files\Qt Widgets</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="logger.cpp">
|
||||
<Filter>Source Files\Utils</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="camera.h">
|
||||
@ -138,6 +144,9 @@
|
||||
<ClInclude Include="modelselectable.h">
|
||||
<Filter>Header Files\Qt Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="logger.h">
|
||||
<Filter>Header Files\Utils</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="sceneviewer.h">
|
||||
|
||||
44
FinalProject/logger.cpp
Normal file
44
FinalProject/logger.cpp
Normal file
@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include "logger.h"
|
||||
|
||||
Logger::LogLevel Logger::_level = Logger::LogLevel::LOCALLOGLEVEL;
|
||||
|
||||
void Logger::setLogLevel(LogLevel level) {
|
||||
_level = level;
|
||||
}
|
||||
|
||||
void Logger::log(LogLevel level, std::string message) {
|
||||
if (level < _level) return;
|
||||
|
||||
switch (level) {
|
||||
case DEBUG:
|
||||
std::cout << "[DEBUG] " << message << std::endl;
|
||||
break;
|
||||
case INFO:
|
||||
std::cout << "[INFO] " << message << std::endl;
|
||||
break;
|
||||
case WARNING:
|
||||
std::cout << "[WARNING] " << message << std::endl;
|
||||
break;
|
||||
case ERROR:
|
||||
std::cout << "[ERROR] " << message << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Logger::debug(std::string message) {
|
||||
log(DEBUG, message);
|
||||
}
|
||||
|
||||
void Logger::info(std::string message) {
|
||||
log(INFO, message);
|
||||
}
|
||||
|
||||
void Logger::warning(std::string message) {
|
||||
log(WARNING, message);
|
||||
}
|
||||
|
||||
void Logger::error(std::string message) {
|
||||
log(ERROR, message);
|
||||
}
|
||||
21
FinalProject/logger.h
Normal file
21
FinalProject/logger.h
Normal file
@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#define LOCALLOGLEVEL DEBUG
|
||||
|
||||
class Logger {
|
||||
public:
|
||||
enum LogLevel { DEBUG, INFO, WARNING, ERROR };
|
||||
|
||||
private:
|
||||
static LogLevel _level;
|
||||
|
||||
public:
|
||||
static void setLogLevel(LogLevel level);
|
||||
static void log(LogLevel level, std::string message);
|
||||
static void debug(std::string message);
|
||||
static void info(std::string message);
|
||||
static void warning(std::string message);
|
||||
static void error(std::string message);
|
||||
};
|
||||
@ -1 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include "model.h"
|
||||
|
||||
Model::Model(std::string path) {
|
||||
// Load model meta info from path
|
||||
// TODO: Implement as async task
|
||||
loadModel(path);
|
||||
}
|
||||
|
||||
void Model::loadModel(std::string path) {
|
||||
Assimp::Importer importer;
|
||||
const aiScene* scene = importer.ReadFile(
|
||||
path, aiProcess_Triangulate | aiProcess_FlipUVs);
|
||||
|
||||
if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) {
|
||||
std::cout << "ERROR::ASSIMP::" << importer.GetErrorString() << std::endl;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,10 +13,14 @@ class Model {
|
||||
private:
|
||||
std::vector<Mesh*> _meshes;
|
||||
std::string _directory;
|
||||
bool _ready = false;
|
||||
|
||||
public:
|
||||
Model(std::string path);
|
||||
|
||||
public:
|
||||
inline bool isReady() const { return _ready; }
|
||||
|
||||
private:
|
||||
void loadModel(std::string path);
|
||||
void processNode(aiNode* node, const aiScene* scene);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user