group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
CookedMeshFormat.hpp
Go to the documentation of this file.
1
23
24#pragma once
25
27
28#include <cstdint>
29#include <span>
30#include <string_view>
31#include <vector>
32
33namespace physics::cook
34{
35
36inline constexpr uint32_t k_magic = 0x6D63'3267u; // 'g2cm'
37inline constexpr uint32_t k_version = 1u;
38
40struct Header
41{
42 uint32_t magic = k_magic;
43 uint32_t version = k_version;
44 uint32_t triCount = 0;
45 uint32_t vertCount = 0;
46 uint32_t bvhNodeCount = 0;
47 uint32_t defaultSurface = 0;
48 glm::vec3 boundsMin{0.0f};
49 glm::vec3 boundsMax{0.0f};
50};
51
55[[nodiscard]] std::vector<uint8_t> serialize(const WorldTriMesh& mesh);
56
59[[nodiscard]] bool deserialize(std::span<const uint8_t> blob, WorldTriMesh& out);
60
63[[nodiscard]] bool writeToFile(std::string_view path, const WorldTriMesh& mesh);
64
67[[nodiscard]] bool readFromFile(std::string_view path, WorldTriMesh& out);
68
69} // namespace physics::cook
Swept AABB and sphere collision queries against world geometry.
Definition CookedMeshFormat.cpp:10
bool writeToFile(std::string_view path, const WorldTriMesh &mesh)
Convenience: write a serialized blob to a file.
Definition CookedMeshFormat.cpp:142
bool deserialize(std::span< const uint8_t > blob, WorldTriMesh &out)
Deserialize a cooked blob back into a WorldTriMesh.
Definition CookedMeshFormat.cpp:103
bool readFromFile(std::string_view path, WorldTriMesh &out)
Convenience: read a file into memory and deserialize.
Definition CookedMeshFormat.cpp:152
constexpr uint32_t k_version
Definition CookedMeshFormat.hpp:37
constexpr uint32_t k_magic
Definition CookedMeshFormat.hpp:36
std::vector< uint8_t > serialize(const WorldTriMesh &mesh)
Serialize a fully-cooked WorldTriMesh to a contiguous byte vector.
Definition CookedMeshFormat.cpp:59
A triangle mesh with BVH acceleration for collision queries.
Definition SweptCollision.hpp:105
32-byte fixed-size header that opens every cooked-mesh blob.
Definition CookedMeshFormat.hpp:41
uint32_t vertCount
Definition CookedMeshFormat.hpp:45
uint32_t magic
Definition CookedMeshFormat.hpp:42
uint32_t version
Definition CookedMeshFormat.hpp:43
glm::vec3 boundsMax
Definition CookedMeshFormat.hpp:49
glm::vec3 boundsMin
Definition CookedMeshFormat.hpp:48
uint32_t bvhNodeCount
Definition CookedMeshFormat.hpp:46
uint32_t defaultSurface
SurfaceType.
Definition CookedMeshFormat.hpp:47
uint32_t triCount
Definition CookedMeshFormat.hpp:44