mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-29 08:07:29 +01:00
feat(editor): user-defined model sets, random insert from set, tabbed editor panel
This commit is contained in:
@@ -36,15 +36,36 @@ class editor_ui : public ui_layer
|
||||
const std::string *get_active_node_template(bool bypassRandom = false);
|
||||
nodebank_panel::edit_mode mode();
|
||||
float getSpacing();
|
||||
void toggleBrushSettings(bool isVisible);
|
||||
std::vector<std::string> nodebank_groups() const;
|
||||
std::vector<std::string> nodebank_group_templates(std::size_t const Group) const;
|
||||
// node bank and model set access (set selection widgets, set contents)
|
||||
nodebank_panel &nodebank()
|
||||
{
|
||||
return m_nodebankpanel;
|
||||
}
|
||||
// rotation settings widgets, for tools drawn by the editor mode
|
||||
void render_rotation_controls();
|
||||
// draws the area fill settings in its node bank tab (the fill state lives in the editor mode)
|
||||
void set_fill_options(std::function<void()> Renderer)
|
||||
{
|
||||
m_filloptions = std::move(Renderer);
|
||||
}
|
||||
// draws the gizmo settings in the toolset window (the gizmo state lives in the editor mode)
|
||||
void set_gizmo_options(std::function<void()> Renderer)
|
||||
{
|
||||
m_gizmooptions = std::move(Renderer);
|
||||
}
|
||||
|
||||
private:
|
||||
// methods
|
||||
void render_mode_options(nodebank_panel::edit_mode const Mode);
|
||||
void render_header_sections();
|
||||
// members
|
||||
itemproperties_panel m_itempropertiespanel{"Node Properties", true};
|
||||
functions_panel m_functionspanel{"Functions", true};
|
||||
nodebank_panel m_nodebankpanel{"Node Bank", true};
|
||||
brush_object_list m_brushobjects{"Brush properties", false};
|
||||
itemproperties_panel m_itempropertiespanel{"Node Properties", true}; // not a window of its own, drawn in the toolset window
|
||||
functions_panel m_functionspanel{"Functions", true}; // not a window of its own, its settings are drawn in the toolset tabs
|
||||
nodebank_panel m_nodebankpanel{"Toolset", true}; // main editor window: gizmo, node properties, edit modes and the node bank
|
||||
brush_object_list m_brushobjects;
|
||||
bool m_insertrandom{false}; // insert mode picks a random template from m_insertset
|
||||
model_set_ref m_insertset;
|
||||
std::function<void()> m_filloptions;
|
||||
std::function<void()> m_gizmooptions;
|
||||
scene::basic_node *m_node{nullptr}; // currently bound scene node, if any
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user