Mario Kart 64
Loading...
Searching...
No Matches
Gizmo.h
Go to the documentation of this file.
1#pragma once
2
3#include <libultraship/libultraship.h>
4#include <libultra/gbi.h>
5#include "Collision.h"
6#include "GameObject.h"
7#include "engine/Actor.h"
9#include <variant>
10
11namespace TrackEditor {
12
13class Gizmo {
14public:
15
23
29
30 void Tick();
31 void Draw();
32 void Load();
33
34 void SetGizmo(const std::variant<AActor*, OObject*, GameObject*>& object, Ray ray);
35 void SetGizmoNoCursor(const std::variant<AActor*, OObject*, GameObject*>& object); // Used for scene explorer selection
36 void Translate();
37 void Rotate();
38 void Scale();
39 void DrawHandles();
40 f32 SnapToSurface(FVector pos);
41
43 s16 MinX = -10000;
44 s16 MaxX = 10000;
45 s16 MinY = -3000;
46 s16 MaxY = 3000;
47 s16 MinZ = -10000;
48 s16 MaxZ = 10000;
49 };
51
52 bool Enabled;
53 bool ManipulationStart = true;
54 FVector InitialScale = {1, 1, 1};
57
61
65
69
73
74 FVector Pos; // Global scene view
75 IRotator Rot = {0, 0, 0};
76 float AllAxisRadius = 3.0f; // Free move selection radius
79 float _gizmoOffset = 8.0f;
80
81 float HandleSize = 2.0f;
82
84 std::variant<AActor*, OObject*, GameObject*> _selected;
85 private:
86 bool _draw = false;
87};
88}
Definition GameObject.h:20
Definition Gizmo.h:13
IRotator Rot
Definition Gizmo.h:75
FVector Pos
Definition Gizmo.h:74
IRotator InitialRotation
Definition Gizmo.h:55
void Draw()
Definition Gizmo.cpp:339
GameObject RedScaleCollision
Definition Gizmo.h:66
void Scale()
Definition Gizmo.cpp:270
MtxF Mtx_GreenY
Definition Gizmo.h:71
GizmoHandle SelectedHandle
Definition Gizmo.h:56
void DrawHandles()
Definition Gizmo.cpp:351
GameObject BlueRotateCollision
Definition Gizmo.h:64
FVector _ray
Definition Gizmo.h:83
bool _draw
Definition Gizmo.h:86
GameObject BlueCollision
Definition Gizmo.h:60
void SetGizmo(const std::variant< AActor *, OObject *, GameObject * > &object, Ray ray)
Definition Gizmo.cpp:96
float AllAxisRadius
Definition Gizmo.h:76
void Translate()
Definition Gizmo.cpp:111
GameObject GreenRotateCollision
Definition Gizmo.h:63
GameObject RedCollision
Definition Gizmo.h:58
GizmoHandle
Definition Gizmo.h:16
@ X_Axis
Definition Gizmo.h:19
@ Z_Axis
Definition Gizmo.h:21
@ All_Axis
Definition Gizmo.h:18
@ None
Definition Gizmo.h:17
@ Y_Axis
Definition Gizmo.h:20
void Rotate()
Definition Gizmo.cpp:218
f32 SnapToSurface(FVector pos)
Definition Gizmo.cpp:207
std::variant< AActor *, OObject *, GameObject * > _selected
Definition Gizmo.h:84
float _gizmoOffset
Definition Gizmo.h:79
MtxF Mtx_BlueZ
Definition Gizmo.h:72
void Load()
Definition Gizmo.cpp:34
GameObject BlueScaleCollision
Definition Gizmo.h:68
float PickDistance
Definition Gizmo.h:77
GameObject GreenScaleCollision
Definition Gizmo.h:67
MtxF Mtx_RedX
Definition Gizmo.h:70
void SetGizmoNoCursor(const std::variant< AActor *, OObject *, GameObject * > &object)
Definition Gizmo.cpp:104
bool Enabled
Definition Gizmo.h:52
GameObject RedRotateCollision
Definition Gizmo.h:62
float HandleSize
Definition Gizmo.h:81
void Tick()
Definition Gizmo.cpp:78
FVector InitialScale
Definition Gizmo.h:54
FVector _cursorOffset
Definition Gizmo.h:78
TranslationMode
Definition Gizmo.h:24
GameObject GreenCollision
Definition Gizmo.h:59
TrackDimensions dimensions
Definition Gizmo.h:50
bool ManipulationStart
Definition Gizmo.h:53
Definition Collision.cpp:17
Definition CoreMath.h:30
Definition CoreMath.h:137
Definition EditorMath.h:18
s16 MaxX
Definition Gizmo.h:44
s16 MinX
Definition Gizmo.h:43
s16 MinY
Definition Gizmo.h:45
s16 MaxZ
Definition Gizmo.h:48
s16 MaxY
Definition Gizmo.h:46
s16 MinZ
Definition Gizmo.h:47