Torch
Loading...
Searching...
No Matches
TrajectoryFactory.h
1
#pragma once
2
3
#include "factories/BaseFactory.h"
4
#include "types/Vec3D.h"
5
6
namespace
SM64 {
7
8
struct
Trajectory {
9
int16_t trajId;
10
int16_t posX;
11
int16_t posY;
12
int16_t posZ;
13
Trajectory(int16_t trajId, int16_t posX, int16_t posY, int16_t posZ) : trajId(trajId), posX(posX), posY(posY), posZ(posZ) {}
14
};
15
16
class
TrajectoryData :
public
IParsedData
{
17
public
:
18
std::vector<Trajectory> mTrajectoryData;
19
20
TrajectoryData(std::vector<Trajectory> trajectoryData) : mTrajectoryData(std::move(trajectoryData)) {}
21
};
22
23
class
TrajectoryHeaderExporter
:
public
BaseExporter
{
24
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
25
};
26
27
class
TrajectoryBinaryExporter
:
public
BaseExporter
{
28
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
29
};
30
31
class
TrajectoryCodeExporter
:
public
BaseExporter
{
32
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
33
};
34
35
class
TrajectoryFactory
:
public
BaseFactory
{
36
public
:
37
bool
CanPreviewCode()
override
{
return
true
; }
38
std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data)
override
;
39
inline
std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters()
override
{
40
return
{
41
REGISTER(Code,
TrajectoryCodeExporter
)
42
REGISTER(Header,
TrajectoryHeaderExporter
)
43
REGISTER(Binary,
TrajectoryBinaryExporter
)
44
};
45
}
46
};
47
48
#ifdef BUILD_UI
49
// Previews the trajectory as a 3D path.
50
class
TrajectoryFactoryUI :
public
BaseFactoryUI {
51
public
:
52
float
GetItemHeight(
const
ParseResultData
& data)
override
;
53
void
DrawUI(
const
ParseResultData
& data)
override
;
54
};
55
#endif
56
}
BaseExporter
Definition
BaseFactory.h:96
BaseFactory
Definition
BaseFactory.h:102
IParsedData
Definition
BaseFactory.h:88
SM64::TrajectoryBinaryExporter
Definition
TrajectoryFactory.h:27
SM64::TrajectoryCodeExporter
Definition
TrajectoryFactory.h:31
SM64::TrajectoryFactory
Definition
TrajectoryFactory.h:35
SM64::TrajectoryHeaderExporter
Definition
TrajectoryFactory.h:23
ParseResultData
Definition
Companion.h:123
src
factories
sm64
TrajectoryFactory.h
Generated by
1.14.0