Physics Simulation & Visualization Tool 0.1
A C++ physics simulation engine with real-time 3D visualization
Loading...
Searching...
No Matches
ResourceManager.h
Go to the documentation of this file.
1#pragma once
2#include <unordered_map>
3#include <string>
6
8public:
9 static void initialize(QOpenGLFunctions_4_5_Core* funcs);
10 static void loadPrimitives();
11
12 static Shader* loadShader(const std::string &vShaderPath, const std::string &fShaderPath, const std::string &name);
13 static Mesh* loadMesh(const std::vector<Vertex>& verts, const std::vector<unsigned int>& idx, const std::string &name);
14 static Mesh* loadMeshFromOBJ(const std::string& path, const std::string &name);
15
16 static Shader* getShader(const std::string &name);
17 static std::string getShaderName(const Shader* shader);
18 static Mesh* getMesh(const std::string &name);
19
20private:
21 ResourceManager() = default;
22 ~ResourceManager() = default;
23
24 static bool loadOBJ(const std::string& path, std::vector<Vertex>& outVertices, std::vector<unsigned int>& outIndices);
25
26 static void loadPrimCube();
27 static void loadPrimSphere();
28
29 inline static QOpenGLFunctions_4_5_Core* glFuncs = nullptr;
30 inline static std::unordered_map<std::string, Shader> shaders;
31 inline static std::unordered_map<std::string, Mesh> meshes;
32};
GPU mesh representation with support for instanced rendering.
Definition Mesh.h:58
static void initialize(QOpenGLFunctions_4_5_Core *funcs)
static Mesh * loadMesh(const std::vector< Vertex > &verts, const std::vector< unsigned int > &idx, const std::string &name)
static Shader * getShader(const std::string &name)
static void loadPrimitives()
static Mesh * getMesh(const std::string &name)
static Shader * loadShader(const std::string &vShaderPath, const std::string &fShaderPath, const std::string &name)
static std::string getShaderName(const Shader *shader)
static Mesh * loadMeshFromOBJ(const std::string &path, const std::string &name)
Definition Shader.h:6