15#include <tiny_obj_loader.h>
17#include <utility/system_io/file.hpp>
19#include <utility/graphic/renderable.hpp>
20#include <utility/graphic/size.hpp>
25namespace utility::graphic
40 utility::logging::DefaultLogger>
76 Model(std::shared_ptr<utility::File> modelAsset,
const PoseF &pose,
95 const PoseF &pose, uint32_t materialID);
140 void loadOBJ(std::shared_ptr<utility::File> modelAsset);
148 using Loggable::getLogger;
The Model class represents a 3D model in the graphics application.
ModelType
The ModelType enum represents the different types of 3D models that can be loaded and rendered in the...
utility::graphic::SizeF _boundingBox
The bounding box of the model.
~Model()=default
Destructs the Model object, releasing any allocated resources.
void loadOBJ(std::shared_ptr< utility::File > modelAsset)
Loads a model from a given File containing the model data.
utility::graphic::SizeF computeBoundingSize(void)
Computes the bounding size of the model.
uint32_t _materialID
The material associated with the model.
ModelType type() const
Get the type of the model.
uint32_t getMaterialID(void) const
Get the material ID associated with the model.
ModelType _type
The type of the model (e.g., OBJ, FBX, GLTF)
The Renderable class represents an object that can be rendered in the graphics application.
Mixin base class providing logging capabilities to derived classes.
Platform-specific default logger alias.
Mixin class to provide logging capabilities to derived classes.