3 #include <Core/Asset/DataLoader.hpp>
4 #include <Core/Asset/LightData.hpp>
24 class RA_IO_API AssimpLightDataLoader :
public Core::Asset::DataLoader<Core::Asset::LightData>
28 explicit AssimpLightDataLoader(
const std::string& filepath,
const bool VERBOSE_MODE =
false );
31 ~AssimpLightDataLoader()
override;
34 void loadData(
const aiScene* scene,
35 std::vector<std::unique_ptr<Core::Asset::LightData>>& data )
override;
39 inline bool sceneHasLight(
const aiScene* scene )
const;
41 uint sceneLightSize(
const aiScene* scene )
const;
46 std::unique_ptr<Core::Asset::LightData> loadLightData(
const aiScene* scene,
47 const aiLight& light );
49 Core::Matrix4 loadLightFrame(
const aiScene* scene,
50 const Core::Matrix4& parentFrame,
51 const std::string& lightName )
const;
54 std::string fetchName(
const aiLight& light )
const;
60 inline void setFrame(
const Core::Matrix4& frame ) { m_frame = frame; }
63 std::string m_filepath;
64 Core::Transform m_frame;