1#ifndef TATOOINE_FLOWEXPLORER_SCENE_H
2#define TATOOINE_FLOWEXPLORER_SCENE_H
19 static std::set<std::string_view>
items;
21 std::list<std::unique_ptr<ui::base::node>>
m_nodes;
23 std::list<std::unique_ptr<ui::link>>
m_links;
35 filesystem::path
const& path);
58 auto render(std::chrono::duration<double>
const& dt) -> void;
91 size_t const width,
size_t const height,
94 auto write(filesystem::path
const& filepath)
const -> void;
95 auto read(filesystem::path
const& filepath) -> void;
97 auto open_file(filesystem::path
const& filepath) -> void;
102 if constexpr (!std::is_same_v<std::invoke_result_t<F>,
void>) {
103 decltype(
auto) ret = f();
104 ax::NodeEditor::SetCurrentEditor(
nullptr);
108 ax::NodeEditor::SetCurrentEditor(
nullptr);
Definition: directories.h:6
auto links() -> auto &
Definition: scene.h:39
ui::input_pin * m_new_link_start_input
Definition: scene.h:28
auto render(std::chrono::duration< double > const &dt) -> void
auto nodes() const -> auto const &
Definition: scene.h:42
auto open_file(filesystem::path const &filepath) -> void
scene(rendering::camera_controller< float > &ctrl, flowexplorer::window *w, filesystem::path const &path)
auto do_in_context(F &&f) const -> decltype(auto)
Definition: scene.h:100
ax::NodeEditor::EditorContext * m_node_editor_context
Definition: scene.h:24
auto new_link() const -> bool
Definition: scene.h:40
auto find_node(ax::NodeEditor::NodeId const &id) -> ui::base::node *
auto can_create_new_link(ui::input_pin const &) -> bool
auto node_creators(size_t const width) -> void
auto window() const -> auto const &
Definition: scene.h:51
auto query_link_and_node_deletions() -> void
std::list< std::unique_ptr< base::renderable > > m_renderables
Definition: scene.h:22
auto can_create_link(ui::input_pin const &, ui::output_pin const &) -> bool
rendering::camera_controller< float > * m_cam
Definition: scene.h:25
auto can_create_new_link(ui::output_pin const &) -> bool
auto can_create_link(ui::output_pin const &, ui::output_pin const &) -> bool
scene(rendering::camera_controller< float > &ctrl, flowexplorer::window *w)
bool m_new_link
Definition: scene.h:27
static std::set< std::string_view > items
Definition: scene.h:19
auto links() const -> auto const &
Definition: scene.h:38
auto remove_link(ui::link const &link_to_remove) -> void
auto camera_controller() -> auto &
Definition: scene.h:55
flowexplorer::window * m_window
Definition: scene.h:26
auto link(ui::input_pin &in, ui::output_pin &out) -> ui::link &
auto renderables() const -> auto const &
Definition: scene.h:45
auto window() -> auto &
Definition: scene.h:52
std::list< std::unique_ptr< ui::link > > m_links
Definition: scene.h:23
auto read(filesystem::path const &filepath) -> void
auto draw_node_editor(size_t const pos_x, size_t const pos_y, size_t const width, size_t const height, bool &show) -> void
auto find_input_pin(ax::NodeEditor::PinId const &id) -> ui::input_pin *
auto query_link_creation() -> void
auto find_output_pin(ax::NodeEditor::PinId const &id) -> ui::output_pin *
auto camera_controller() const -> auto const &
Definition: scene.h:54
std::list< std::unique_ptr< ui::base::node > > m_nodes
Definition: scene.h:21
auto nodes() -> auto &
Definition: scene.h:43
auto draw_links() -> void
static bool items_created
Definition: scene.h:20
auto write(filesystem::path const &filepath) const -> void
ui::output_pin * m_new_link_start_output
Definition: scene.h:29
auto renderables() -> auto &
Definition: scene.h:46
auto can_create_link(ui::input_pin const &, ui::input_pin const &) -> bool
auto can_create_link(ui::output_pin const &, ui::input_pin const &) -> bool
auto camera() -> auto &
Definition: scene.h:49
auto camera() const -> auto const &
Definition: scene.h:48
auto draw_nodes() -> void
Definition: camera_controller.h:64