#pragma once #include #include #include "Collision.h" #include "Gizmo.h" #include "GameObject.h" #include "engine/Matrix.h" namespace TrackEditor { class ObjectPicker { public: void SelectObject(std::vector objects); void DragHandle(); void Draw(); void FindObject(Ray ray, std::vector objects); void Load(); void Tick(); Gizmo eGizmo; std::variant _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 CheckAActorRay(Ray ray); std::pair CheckOObjectRay(Ray ray); std::pair CheckEditorObjectRay(Ray ray); bool Debug = false; }; }