Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
ModelImporter.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6#include "Mesh.h"
7#include <filesystem>
8#include <functional>
9
14class Mesh;
15class Model;
16class Vector;
17class Animation;
18struct Material;
19
20struct aiScene;
21struct aiNode;
22struct aiMesh;
23struct aiMaterial;
24struct aiAnimation;
25
30{
31public:
38 Model load(const std::filesystem::path& path, std::function<void(float)> callback = nullptr);
39
40private:
41 void load_scene();
42 void load_node(const aiNode&);
43 void load_mesh(const aiMesh&);
44 void load_material(const aiMaterial&);
45 void load_animation(const aiAnimation&);
46
47 std::vector<Mesh::Vertex> load_vertices(const aiMesh&) noexcept;
48 std::vector<unsigned int> load_indices(const aiMesh&) noexcept;
49
50 const aiScene* scene_;
51 Model* model_;
52};
53
网格.
Definition: Mesh.h:23
Assimp 模型导入器.
Definition: ModelImporter.h:30
Model load(const std::filesystem::path &path, std::function< void(float)> callback=nullptr)
加载模型.
Definition: ModelImporter.cpp:53
3D 动画.
Definition: Animation.h:12
材质.
Definition: Material.h:17
3D 模型.
Definition: Model.h:21