SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
mdlpp.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5#include "structs/MDL.h"
6#include "structs/VTX.h"
7#include "structs/VVD.h"
8
9namespace mdlpp {
10
14struct BakedModel {
15 std::vector<VVD::Vertex> vertices;
16
17 struct Mesh {
18 std::vector<uint16_t> indices;
19 int32_t materialIndex = -1;
20 };
21 std::vector<Mesh> meshes;
22};
23
25 [[nodiscard]] bool open(const std::byte* mdlData, std::size_t mdlSize,
26 const std::byte* vtxData, std::size_t vtxSize,
27 const std::byte* vvdData, std::size_t vvdSize);
28
29 [[nodiscard]] bool open(const unsigned char* mdlData, std::size_t mdlSize,
30 const unsigned char* vtxData, std::size_t vtxSize,
31 const unsigned char* vvdData, std::size_t vvdSize);
32
33 [[nodiscard]] bool open(const std::vector<std::byte>& mdlData,
34 const std::vector<std::byte>& vtxData,
35 const std::vector<std::byte>& vvdData);
36
37 [[nodiscard]] bool open(const std::vector<unsigned char>& mdlData,
38 const std::vector<unsigned char>& vtxData,
39 const std::vector<unsigned char>& vvdData);
40
41 [[nodiscard]] explicit operator bool() const;
42
43 [[nodiscard]] BakedModel processModelData(int currentLOD = ROOT_LOD) const;
44
48
49private:
50 bool opened = false;
51};
52
53} // namespace mdlpp
Definition mdlpp.h:9
constexpr int ROOT_LOD
Definition Generic.h:10
int32_t materialIndex
Definition mdlpp.h:19
std::vector< uint16_t > indices
Definition mdlpp.h:18
A more accessible version of StudioModel's vertex data, so it can be rendered or converted more easil...
Definition mdlpp.h:14
std::vector< VVD::Vertex > vertices
Definition mdlpp.h:15
std::vector< Mesh > meshes
Definition mdlpp.h:21
MDL::MDL mdl
Definition mdlpp.h:45
bool open(const std::byte *mdlData, std::size_t mdlSize, const std::byte *vtxData, std::size_t vtxSize, const std::byte *vvdData, std::size_t vvdSize)
Definition mdlpp.cpp:10
BakedModel processModelData(int currentLOD=ROOT_LOD) const
Definition mdlpp.cpp:48
VVD::VVD vvd
Definition mdlpp.h:47
VTX::VTX vtx
Definition mdlpp.h:46