PixelBullet
0.0.1
A C++ game engine
Loading...
Searching...
No Matches
engine
src
assets
morph_mesh_internal.h
1
#pragma once
2
3
#include "pixelbullet/graphics/mesh_types.h"
4
5
#include <cstdint>
6
#include <filesystem>
7
#include <optional>
8
#include <string>
9
#include <vector>
10
11
namespace
pixelbullet
12
{
13
class
Filesystem
;
14
class
VirtualPath
;
15
16
namespace
morph_mesh_internal
17
{
18
struct
LoadData
19
{
20
std::vector<MeshVertex> vertices;
21
std::vector<uint32_t> indices;
22
std::vector<MeshMorphTarget> targets;
23
MeshBounds
bounds;
24
bool
has_bounds =
false
;
25
};
26
27
void
ResetLoadData(
LoadData
& data)
noexcept
;
28
void
IncludeBoundsPosition(
LoadData
& data,
const
glm::vec3& position)
noexcept
;
29
void
GenerateTangents(std::vector<MeshVertex>& vertices,
const
std::vector<uint32_t>& indices,
const
std::filesystem::path& resolved_path,
30
uint32_t texcoord_index = 0u);
31
32
[[nodiscard]]
bool
LoadMorphMeshData(
const
Filesystem
& filesystem,
const
VirtualPath
& asset_path,
LoadData
& data);
33
[[nodiscard]] std::optional<MeshBounds> LoadMorphMeshBounds(
const
Filesystem
& filesystem,
const
VirtualPath
& asset_path);
34
[[nodiscard]]
bool
SaveMorphMeshData(
const
Filesystem
& filesystem,
const
VirtualPath
& asset_path,
const
LoadData
& data,
35
std::string* error_message =
nullptr
);
36
}
// namespace morph_mesh_internal
37
}
// namespace pixelbullet
pixelbullet::Filesystem
Definition
filesystem.h:19
pixelbullet::VirtualPath
Definition
virtual_path.h:10
pixelbullet::MeshBounds
Definition
mesh_types.h:38
pixelbullet::morph_mesh_internal::LoadData
Definition
morph_mesh_internal.h:19
Generated by
1.16.1