Torch
Loading...
Searching...
No Matches
MtxFactory.h
1#pragma once
2
3#include "BaseFactory.h"
4
5union MtxS {
6 struct {
7 uint16_t intPart[4][4];
8 uint16_t fracPart[4][4];
9 };
10 int32_t mint[4][4];
11 long long int forc_structure_alignment;
12};
13
14struct MtxRaw {
15 float mtx[16];
16 MtxS mt;
17};
18
19class MtxData : public IParsedData {
20public:
21 std::vector<MtxRaw> mMtxs;
22
23 explicit MtxData(std::vector<MtxRaw> mtxs) : mMtxs(mtxs) {}
24};
25
27 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
28};
29
31 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
32};
33
35 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
36};
37
38class MtxFactory : public BaseFactory {
39public:
40 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
41 std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data) override {
42 return std::nullopt;
43 }
44 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
45 return {
46 REGISTER(Code, MtxCodeExporter)
47 REGISTER(Header, MtxHeaderExporter)
48 REGISTER(Binary, MtxBinaryExporter)
49 };
50 }
51};
Definition BaseFactory.h:88
Definition BaseFactory.h:94
Definition BaseFactory.h:80
Definition MtxFactory.h:30
Definition MtxFactory.h:34
Definition MtxFactory.h:38
Definition MtxFactory.h:26
Definition MtxFactory.h:14
Definition MtxFactory.h:5