blob: cf1e4e12d0fe914cd4dc8dfd37a849495658775a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#pragma once
#include <libultraship/libultraship.h>
#include <libultra/gbi.h>
#include "Collision.h"
#include "Gizmo.h"
#include "GameObject.h"
#include "engine/Matrix.h"
namespace TrackEditor {
class ObjectPicker {
public:
void SelectObject(std::vector<GameObject*> objects);
void DragHandle();
void Draw();
void FindObject(Ray ray, std::vector<GameObject*> objects);
void Load();
void Tick();
Gizmo eGizmo;
std::variant<AActor*, OObject*, GameObject*> _selected;
private:
bool _draw = false;
GameObject* _lastSelected;
s32 Inverse(MtxF* src, MtxF* dest);
void Copy(MtxF* src, MtxF* dest);
void Clear(MtxF* mf);
// actor, distance from camera
std::pair<AActor*, float> CheckAActorRay(Ray ray);
std::pair<OObject*, float> CheckOObjectRay(Ray ray);
std::pair<GameObject*, float> CheckEditorObjectRay(Ray ray);
bool Debug = false;
};
}
|