1
0

write shit

This commit is contained in:
2026-01-09 16:40:30 +08:00
parent 55ed60c643
commit 06bfe69c0e
14 changed files with 424 additions and 46 deletions

View File

@@ -1,13 +1,49 @@
#pragma once
#include "math.hpp"
#include <vector>
namespace basalt::shared::object_loader {
class Object {
public:
Object(std::vector<math::Vector3>&& vertices, std::vector<math::Triangle>&& triangles);
~Object();
public:
size_t get_vertices_count() const;
const math::Vector3* get_vertices() const;
size_t get_triangle_count() const;
const math::Triangle* get_triangles() const;
private:
std::vector<math::Vector3> vertices;
std::vector<math::Triangle> triangles;
};
enum class ObjectLoaderStatus {
Ready,
Loaded,
};
/**
* @brief
* @details
* \li 加载的模型的坐标系与Blender一致。
* \li 加载的模型的顶点顺序为CCW即右手定则确认法线方向。
*/
class IObjectLoader {
public:
IObjectLoader();
virtual ~IObjectLoader();
public:
virtual void load();
const Object& get_object(size_t index) const;
size_t get_object_count() const;
protected:
ObjectLoaderStatus status;
std::vector<Object> objects;
};
} // namespace basalt::shared::object_loader