8#ifndef MODELVIEWER_MODELMANAGER_HPP
9#define MODELVIEWER_MODELMANAGER_HPP
11#include <QtConcurrent/QtConcurrentRun>
33 std::unordered_map<std::
string, loaders::ILoader *>
_loaders;
88 Q_INVOKABLE
void loadModel(
const QString &filepath);
114 const std::unordered_map<std::string, loaders::ILoader *> &
getLoaders()
Class for managing model loading and providing geometry and material.
Definition ModelManager.hpp:20
void geometryChanged()
Signal emitted when the geometry changes.
QQuick3DGeometry * geometry
Definition ModelManager.hpp:22
void materialChanged()
Signal emitted when the material changes.
loaders::ObjLoader _objLoader
OBJ loader instance.
Definition ModelManager.hpp:30
model_viewer::material::MTLMaterial * material
Definition ModelManager.hpp:24
void setLoading(bool isLoading)
Set the loading state, emits loadingChanged signal.
Definition ModelManager.cpp:36
bool loading
Definition ModelManager.hpp:25
bool isLoading() const
Check if a model is currently loading.
Definition ModelManager.hpp:94
std::unordered_map< std::string, loaders::ILoader * > _loaders
Map of file extensions to their respective loaders.
Definition ModelManager.hpp:33
void loadingChanged()
Signal emitted when the loading state changes.
bool _ready
Boolean indicating if a model is ready.
Definition ModelManager.hpp:45
material::MTLMaterial * material() const
Get the material of the loaded model.
Definition ModelManager.hpp:80
Q_INVOKABLE void loadModel(const QString &filepath)
Load a model from a file asynchronously.
Definition ModelManager.cpp:20
bool _loading
Boolean indicating if a model is currently loading.
Definition ModelManager.hpp:42
std::unique_ptr< geometry::ObjGeometry > _geometry
Geometry of the currently loaded model.
Definition ModelManager.hpp:39
bool ready
Definition ModelManager.hpp:26
void readyChanged()
Signal emitted when the ready state changes.
void setReady(bool isReady)
Set the ready state, emits readyChanged signal.
Definition ModelManager.cpp:41
bool isReady() const
Check if a model is ready.
Definition ModelManager.hpp:106
const std::unordered_map< std::string, loaders::ILoader * > & getLoaders() const
Definition ModelManager.hpp:114
loaders::ILoader * _lastLoaded
Pointer to the last used loader.
Definition ModelManager.hpp:36
virtual material::MTLMaterial * material() const =0
Get the material of the loaded model.
virtual QQuick3DGeometry * geometry() const =0
Get the geometry of the loaded model.
Class representing a material parsed from an MTL file.
Definition Material.hpp:29
Definition ObjGeometry.cpp:10