Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
ModernGltfMesh.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "MeshRuntime.hpp"
4
5#include <expected>
6#include <filesystem>
7#include <memory>
8
9namespace monopoly::data
10{
12 {
13 // Initial Blender-board calibration: 486 legacy units / 24 metres.
14 // Kept explicit until calibrated against retail HMD board bounds.
15 float unitsPerMeter{20.25F};
16 // Rotation around glTF Y-up after node transforms. The recovered
17 // Blender tokens are authored lengthwise on X; retail pieces use Z.
18 float yawDegrees{};
19 std::array<float, 3> localOffset{};
22 };
23
24 // Bounded static GLB bridge for embedded geometry and modern PBR factors,
25 // PNG/JPEG maps and samplers. Unsupported animation/skin/morph contracts
26 // return a presentation error so the caller can retain retail geometry.
27 [[nodiscard]] std::expected<
28 std::shared_ptr<const MeshRenderData>,
29 MeshRuntimeError>
31 const std::filesystem::path& path,
32 ModernGltfLoadOptions options = {});
33}
unsigned index
std::string path
std::expected< std::shared_ptr< const MeshRenderData >, MeshRuntimeError > loadModernGltfMesh(const std::filesystem::path &path, ModernGltfLoadOptions options)