Torch
Loading...
Searching...
No Matches
GenericArrayFactory.h
1#pragma once
2
3#include "BaseFactory.h"
4#include <vector>
5#include <variant>
6#include <types/Vec3D.h>
7
8typedef std::variant<uint8_t, int8_t, uint16_t, int16_t, uint32_t, int32_t, uint64_t, float, double, Vec2f, Vec3f, Vec3s, Vec3i, Vec3iu, Vec4f, Vec4s> ArrayDatum;
9
10enum class ArrayType {
11 u8, s8, u16, s16, u32, s32, u64, f32, f64, Vec2f, Vec3f, Vec3s, Vec3i, Vec3iu, Vec4f, Vec4s,
12};
13
14class GenericArray : public IParsedData {
15public:
16 uint32_t mMaxWidth;
17 uint32_t mMaxPrec;
18 std::vector<ArrayDatum> mData;
19
20 explicit GenericArray(std::vector<ArrayDatum> data);
21};
22
24 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
25};
26
28 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
29};
30
32 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
33};
34
36public:
37 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
38 std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
39 return {
40 REGISTER(Header, ArrayHeaderExporter)
41 REGISTER(Binary, ArrayBinaryExporter)
42 REGISTER(Code, ArrayCodeExporter)
43 };
44 }
45};
Definition GenericArrayFactory.h:31
Definition GenericArrayFactory.h:23
Definition GenericArrayFactory.h:27
Definition BaseFactory.h:88
Definition BaseFactory.h:94
Definition GenericArrayFactory.h:35
Definition BaseFactory.h:80
Definition Vec3D.h:50
Definition Vec3D.h:5
Definition Vec3D.h:28
Definition Vec3D.h:39
Definition Vec3D.h:17
Definition Vec3D.h:61
Definition Vec3D.h:74