PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
static_mesh_internal.h
1#pragma once
2
3#include "pixelbullet/assets/static_mesh.h"
4
5#include <filesystem>
6#include <optional>
7#include <string>
8#include <vector>
9
10namespace pixelbullet
11{
12class Filesystem;
13class VirtualPath;
14
15namespace static_mesh_internal
16{
18{
19 std::vector<StaticMesh::Vertex> vertices;
20 std::vector<uint32_t> indices;
21 StaticMesh::Bounds bounds;
22 bool has_bounds = false;
23};
24
25void ResetLoadData(LoadData& data) noexcept;
26void IncludeBoundsPosition(LoadData& data, const glm::vec3& position) noexcept;
27void GenerateTangents(std::vector<StaticMesh::Vertex>& vertices, const std::vector<uint32_t>& indices,
28 const std::filesystem::path& resolved_path, uint32_t texcoord_index = 0u);
29
30[[nodiscard]] bool LoadStaticMeshData(const Filesystem& filesystem, const VirtualPath& asset_path, LoadData& data);
31[[nodiscard]] std::optional<StaticMesh::Bounds> LoadStaticMeshBounds(const Filesystem& filesystem, const VirtualPath& asset_path);
32[[nodiscard]] bool SaveStaticMeshData(const Filesystem& filesystem, const VirtualPath& asset_path, const LoadData& data,
33 std::string* error_message = nullptr);
34} // namespace static_mesh_internal
35} // namespace pixelbullet
Definition filesystem.h:16
Definition virtual_path.h:10
Definition static_mesh.h:27
Definition static_mesh_internal.h:18