group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
CookedMeshFormat.hpp
Go to the documentation of this file.
1
24
25#pragma once
26
28
29#include <cstdint>
30#include <span>
31#include <string_view>
32#include <vector>
33
34namespace physics::cook
35{
36
37inline constexpr uint32_t k_magic = 0x6D63'3267u; // 'g2cm'
38inline constexpr uint32_t k_version = 2u; // v2 adds edgeNeighbor (Phase B)
39
41struct Header
42{
43 uint32_t magic = k_magic;
44 uint32_t version = k_version;
45 uint32_t triCount = 0;
46 uint32_t vertCount = 0;
47 uint32_t bvhNodeCount = 0;
48 uint32_t defaultSurface = 0;
49 glm::vec3 boundsMin{0.0f};
50 glm::vec3 boundsMax{0.0f};
51};
52
56[[nodiscard]] std::vector<uint8_t> serialize(const WorldTriMesh& mesh);
57
60[[nodiscard]] bool deserialize(std::span<const uint8_t> blob, WorldTriMesh& out);
61
64[[nodiscard]] bool writeToFile(std::string_view path, const WorldTriMesh& mesh);
65
68[[nodiscard]] bool readFromFile(std::string_view path, WorldTriMesh& out);
69
70} // 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:145
bool deserialize(std::span< const uint8_t > blob, WorldTriMesh &out)
Deserialize a cooked blob back into a WorldTriMesh.
Definition CookedMeshFormat.cpp:104
bool readFromFile(std::string_view path, WorldTriMesh &out)
Convenience: read a file into memory and deserialize.
Definition CookedMeshFormat.cpp:155
constexpr uint32_t k_version
Definition CookedMeshFormat.hpp:38
constexpr uint32_t k_magic
Definition CookedMeshFormat.hpp:37
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:108
32-byte fixed-size header that opens every cooked-mesh blob.
Definition CookedMeshFormat.hpp:42
uint32_t vertCount
Definition CookedMeshFormat.hpp:46
uint32_t magic
Definition CookedMeshFormat.hpp:43
uint32_t version
Definition CookedMeshFormat.hpp:44
glm::vec3 boundsMax
Definition CookedMeshFormat.hpp:50
glm::vec3 boundsMin
Definition CookedMeshFormat.hpp:49
uint32_t bvhNodeCount
Definition CookedMeshFormat.hpp:47
uint32_t defaultSurface
SurfaceType.
Definition CookedMeshFormat.hpp:48
uint32_t triCount
Definition CookedMeshFormat.hpp:45