Unravel Engine C++ Reference
Loading...
Searching...
No Matches
unravel::editing_manager Struct Reference

#include <editing_manager.h>

Classes

struct  billboard_gizmos
 
struct  focused
 
struct  gizmos_data
 
struct  grid
 
struct  inverse_kinematics
 
struct  selection
 
struct  snap
 

Public Types

enum  select_mode { normal , ctrl , shift }
 
enum class  editing_mode { scene , prefab }
 
enum class  save_option { yes , no , prompt }
 

Public Member Functions

auto init (rtti::context &ctx) -> bool
 
auto deinit (rtti::context &ctx) -> bool
 
void on_play_before_begin (rtti::context &ctx)
 
void on_play_begin (rtti::context &ctx)
 
void on_play_after_end (rtti::context &ctx)
 
void on_frame_update (rtti::context &ctx, delta_t)
 
void on_script_recompile (rtti::context &ctx, const std::string &protocol, uint64_t version)
 
void on_prefab_updated (const asset_handle< prefab > &pfb)
 
void sync_prefab_entity (rtti::context &ctx, entt::handle entity, const asset_handle< prefab > &pfb)
 
void sync_prefab_instances (rtti::context &ctx, scene *scn)
 
auto get_select_mode () const -> select_mode
 
void focus (entt::meta_any object)
 Selects an object. Can be anything.
 
void focus_path (const fs::path &object)
 
template<typename T >
void foucs_asset (const asset_handle< T > &entry)
 
void unselect (bool clear_selection_tools=true)
 Clears the selection data.
 
void unfocus ()
 
template<typename T >
void try_unselect ()
 Clears the selection data if it maches the type.
 
template<typename T >
void try_unfocus ()
 
template<typename T >
auto is_selected (const T &entry) -> bool
 
template<typename T >
auto is_selected_type () -> bool
 
auto get_active_selection () const -> const entt::meta_any &
 
auto get_active_selection () -> entt::meta_any &
 
auto get_selections () const -> hpp::span< const entt::meta_any >
 
auto get_selections () -> hpp::span< entt::meta_any >
 
template<typename T >
auto get_active_selection_as () const -> const T &
 
template<typename T >
auto try_get_active_selection_as () -> T *
 
template<typename T >
auto try_get_active_selection_as () const -> const T *
 
template<typename T >
auto try_get_selections_as () const -> std::vector< const T * >
 
template<typename T >
auto try_get_selections_as () -> std::vector< T * >
 
template<typename T >
auto try_get_selections_as_copy () const -> std::vector< T >
 
template<typename T >
auto is_focused (const T &entry) -> bool
 
template<typename T >
auto is_focused (const asset_handle< T > &entry) -> bool
 
template<typename T >
auto try_get_active_focus_as () const -> const T *
 
template<typename T >
void unselect (const T &entry)
 
template<typename T >
void select (const T &entry, select_mode mode=select_mode::normal, std::string hint="")
 
void do_action (const std::string &name, const std::function< void()> &action)
 
void do_action (const std::string &name, const std::function< void()> &do_action, const std::function< void()> &undo_action)
 
void do_action (const std::string &name, std::shared_ptr< editing_action_t > action)
 
template<typename ActionType , typename... Args>
void do_action (const std::string &name, Args &&... args)
 
void queue_action (const std::string &name, const std::function< void()> &action)
 
void queue_action (const std::string &name, const std::function< void()> &do_action, const std::function< void()> &undo_action)
 
void queue_action (const std::string &name, std::shared_ptr< editing_action_t > action)
 
template<typename ActionType , typename... Args>
void queue_action (const std::string &name, Args &&... args)
 
void add_action (const std::string &name, std::shared_ptr< editing_action_t > action, bool immediate=true)
 
void push_undo_stack_enabled (bool enabled)
 
void pop_undo_stack_enabled ()
 
void execute_actions ()
 
auto undo () -> std::shared_ptr< editing_action_t >
 
auto redo () -> std::shared_ptr< editing_action_t >
 
auto can_undo () const -> bool
 
auto can_redo () const -> bool
 
auto has_pending_actions () const -> bool
 
auto get_pending_actions_count () const -> size_t
 
auto has_unsaved_changes () const -> bool
 
void clear_unsaved_changes ()
 
void clear (bool clear_unsaved=true)
 
void enter_prefab_mode (rtti::context &ctx, const asset_handle< prefab > &prefab, bool auto_save=false)
 
void exit_prefab_mode (rtti::context &ctx, save_option save_changes=save_option::prompt)
 
auto is_prefab_mode () const -> bool
 
void save_prefab_changes (rtti::context &ctx)
 
auto get_active_scene (rtti::context &ctx) -> scene *
 
void unload_scenes_scripting (const std::vector< scene * > &scenes)
 
void on_action_executed (std::shared_ptr< editing_action_t > action)
 
void sanity_check_selection_data ()
 
void restore_selection_impl (const std::vector< entt::meta_any > &selection_snapshot)
 

Public Attributes

undo_redo_stack undo_stack
 
std::vector< std::shared_ptr< editing_action_t > > pending_actions
 
std::stack< bool > undo_stack_enabled
 
bool show_grid = true
 enable editor grid
 
bool show_icon_gizmos = true
 enable editor icon gizmos
 
bool wireframe_selection = true
 enable wireframe selection
 
bool auto_rebuild_reflection_probes = true
 
ImGuizmo::OPERATION operation = ImGuizmo::TRANSLATE
 current manipulation gizmo operation.
 
ImGuizmo::MODE mode = ImGuizmo::LOCAL
 current manipulation gizmo space.
 
selection selection_data
 selection data containing selected object
 
focused focused_data
 
snap snap_data
 snap data containging various snap options
 
grid grid_data
 
billboard_gizmos billboard_data
 
gizmos_data gizmos
 
inverse_kinematics ik_data
 
editing_mode current_mode = editing_mode::scene
 
asset_handle< prefabedited_prefab
 
entt::handle prefab_entity
 
scene prefab_scene {"prefab_scene"}
 

Detailed Description

Definition at line 21 of file editing_manager.h.

Member Enumeration Documentation

◆ editing_mode

Enumerator
scene 
prefab 

Definition at line 101 of file editing_manager.h.

◆ save_option

Enumerator
yes 
no 
prompt 

Definition at line 107 of file editing_manager.h.

◆ select_mode

Enumerator
normal 
ctrl 
shift 

Definition at line 94 of file editing_manager.h.

Member Function Documentation

◆ add_action()

void unravel::editing_manager::add_action ( const std::string & name,
std::shared_ptr< editing_action_t > action,
bool immediate = true )

Definition at line 892 of file editing_manager.cpp.

◆ can_redo()

auto unravel::editing_manager::can_redo ( ) const -> bool
inline

Definition at line 481 of file editing_manager.h.

◆ can_undo()

auto unravel::editing_manager::can_undo ( ) const -> bool
inline

Definition at line 480 of file editing_manager.h.

◆ clear()

void unravel::editing_manager::clear ( bool clear_unsaved = true)

Definition at line 833 of file editing_manager.cpp.

◆ clear_unsaved_changes()

void unravel::editing_manager::clear_unsaved_changes ( )
inline

Definition at line 489 of file editing_manager.h.

◆ deinit()

auto unravel::editing_manager::deinit ( rtti::context & ctx) -> bool

Definition at line 116 of file editing_manager.cpp.

◆ do_action() [1/4]

template<typename ActionType , typename... Args>
void unravel::editing_manager::do_action ( const std::string & name,
Args &&... args )
inline

Definition at line 447 of file editing_manager.h.

◆ do_action() [2/4]

void unravel::editing_manager::do_action ( const std::string & name,
const std::function< void()> & action )

Definition at line 861 of file editing_manager.cpp.

◆ do_action() [3/4]

void unravel::editing_manager::do_action ( const std::string & name,
const std::function< void()> & do_action,
const std::function< void()> & undo_action )

Definition at line 866 of file editing_manager.cpp.

◆ do_action() [4/4]

void unravel::editing_manager::do_action ( const std::string & name,
std::shared_ptr< editing_action_t > action )

Definition at line 871 of file editing_manager.cpp.

◆ enter_prefab_mode()

void unravel::editing_manager::enter_prefab_mode ( rtti::context & ctx,
const asset_handle< prefab > & prefab,
bool auto_save = false )

Definition at line 634 of file editing_manager.cpp.

◆ execute_actions()

void unravel::editing_manager::execute_actions ( )

Definition at line 945 of file editing_manager.cpp.

◆ exit_prefab_mode()

void unravel::editing_manager::exit_prefab_mode ( rtti::context & ctx,
save_option save_changes = save_option::prompt )

Definition at line 724 of file editing_manager.cpp.

◆ focus()

void unravel::editing_manager::focus ( entt::meta_any object)

Selects an object. Can be anything.

Definition at line 578 of file editing_manager.cpp.

◆ focus_path()

void unravel::editing_manager::focus_path ( const fs::path & object)

Definition at line 584 of file editing_manager.cpp.

◆ foucs_asset()

template<typename T >
void unravel::editing_manager::foucs_asset ( const asset_handle< T > & entry)
inline

Definition at line 138 of file editing_manager.h.

◆ get_active_scene()

auto unravel::editing_manager::get_active_scene ( rtti::context & ctx) -> scene*

Definition at line 808 of file editing_manager.cpp.

◆ get_active_selection() [1/2]

auto unravel::editing_manager::get_active_selection ( ) -> entt::meta_any&
inline

Definition at line 203 of file editing_manager.h.

◆ get_active_selection() [2/2]

auto unravel::editing_manager::get_active_selection ( ) const -> const entt::meta_any&
inline

Definition at line 198 of file editing_manager.h.

◆ get_active_selection_as()

template<typename T >
auto unravel::editing_manager::get_active_selection_as ( ) const -> const T&
inline

Definition at line 219 of file editing_manager.h.

◆ get_pending_actions_count()

auto unravel::editing_manager::get_pending_actions_count ( ) const -> size_t
inline

Definition at line 486 of file editing_manager.h.

◆ get_select_mode()

auto unravel::editing_manager::get_select_mode ( ) const -> select_mode

Definition at line 528 of file editing_manager.cpp.

◆ get_selections() [1/2]

auto unravel::editing_manager::get_selections ( ) -> hpp::span<entt::meta_any>
inline

Definition at line 213 of file editing_manager.h.

◆ get_selections() [2/2]

auto unravel::editing_manager::get_selections ( ) const -> hpp::span<const entt::meta_any>
inline

Definition at line 208 of file editing_manager.h.

◆ has_pending_actions()

auto unravel::editing_manager::has_pending_actions ( ) const -> bool
inline

Definition at line 485 of file editing_manager.h.

◆ has_unsaved_changes()

auto unravel::editing_manager::has_unsaved_changes ( ) const -> bool
inline

Definition at line 488 of file editing_manager.h.

◆ init()

auto unravel::editing_manager::init ( rtti::context & ctx) -> bool

Definition at line 103 of file editing_manager.cpp.

◆ is_focused() [1/2]

template<typename T >
auto unravel::editing_manager::is_focused ( const asset_handle< T > & entry) -> bool
inline

Definition at line 310 of file editing_manager.h.

◆ is_focused() [2/2]

template<typename T >
auto unravel::editing_manager::is_focused ( const T & entry) -> bool
inline

Definition at line 297 of file editing_manager.h.

◆ is_prefab_mode()

auto unravel::editing_manager::is_prefab_mode ( ) const -> bool
inline

Definition at line 496 of file editing_manager.h.

◆ is_selected()

template<typename T >
auto unravel::editing_manager::is_selected ( const T & entry) -> bool
inline

Definition at line 178 of file editing_manager.h.

◆ is_selected_type()

template<typename T >
auto unravel::editing_manager::is_selected_type ( ) -> bool
inline

Definition at line 191 of file editing_manager.h.

◆ on_action_executed()

void unravel::editing_manager::on_action_executed ( std::shared_ptr< editing_action_t > action)

Definition at line 996 of file editing_manager.cpp.

◆ on_frame_update()

void unravel::editing_manager::on_frame_update ( rtti::context & ctx,
delta_t dt )

Definition at line 544 of file editing_manager.cpp.

◆ on_play_after_end()

void unravel::editing_manager::on_play_after_end ( rtti::context & ctx)

Definition at line 225 of file editing_manager.cpp.

◆ on_play_before_begin()

void unravel::editing_manager::on_play_before_begin ( rtti::context & ctx)

Definition at line 123 of file editing_manager.cpp.

◆ on_play_begin()

void unravel::editing_manager::on_play_begin ( rtti::context & ctx)

Definition at line 196 of file editing_manager.cpp.

◆ on_prefab_updated()

void unravel::editing_manager::on_prefab_updated ( const asset_handle< prefab > & pfb)

Definition at line 425 of file editing_manager.cpp.

◆ on_script_recompile()

void unravel::editing_manager::on_script_recompile ( rtti::context & ctx,
const std::string & protocol,
uint64_t version )

Definition at line 289 of file editing_manager.cpp.

◆ pop_undo_stack_enabled()

void unravel::editing_manager::pop_undo_stack_enabled ( )

Definition at line 940 of file editing_manager.cpp.

◆ push_undo_stack_enabled()

void unravel::editing_manager::push_undo_stack_enabled ( bool enabled)

Definition at line 930 of file editing_manager.cpp.

◆ queue_action() [1/4]

template<typename ActionType , typename... Args>
void unravel::editing_manager::queue_action ( const std::string & name,
Args &&... args )
inline

Definition at line 462 of file editing_manager.h.

◆ queue_action() [2/4]

void unravel::editing_manager::queue_action ( const std::string & name,
const std::function< void()> & action )

Definition at line 876 of file editing_manager.cpp.

◆ queue_action() [3/4]

void unravel::editing_manager::queue_action ( const std::string & name,
const std::function< void()> & do_action,
const std::function< void()> & undo_action )

Definition at line 881 of file editing_manager.cpp.

◆ queue_action() [4/4]

void unravel::editing_manager::queue_action ( const std::string & name,
std::shared_ptr< editing_action_t > action )

Definition at line 886 of file editing_manager.cpp.

◆ redo()

auto unravel::editing_manager::redo ( ) -> std::shared_ptr<editing_action_t>

Definition at line 986 of file editing_manager.cpp.

◆ restore_selection_impl()

void unravel::editing_manager::restore_selection_impl ( const std::vector< entt::meta_any > & selection_snapshot)
inline

Definition at line 554 of file editing_manager.h.

◆ sanity_check_selection_data()

void unravel::editing_manager::sanity_check_selection_data ( )
inline

Definition at line 545 of file editing_manager.h.

◆ save_prefab_changes()

void unravel::editing_manager::save_prefab_changes ( rtti::context & ctx)

Definition at line 783 of file editing_manager.cpp.

◆ select()

template<typename T >
void unravel::editing_manager::select ( const T & entry,
select_mode mode = select_mode::normal,
std::string hint = "" )
inline

Definition at line 375 of file editing_manager.h.

◆ sync_prefab_entity()

void unravel::editing_manager::sync_prefab_entity ( rtti::context & ctx,
entt::handle entity,
const asset_handle< prefab > & pfb )

Definition at line 460 of file editing_manager.cpp.

◆ sync_prefab_instances()

void unravel::editing_manager::sync_prefab_instances ( rtti::context & ctx,
scene * scn )

Definition at line 518 of file editing_manager.cpp.

◆ try_get_active_focus_as()

template<typename T >
auto unravel::editing_manager::try_get_active_focus_as ( ) const -> const T*
inline

Definition at line 328 of file editing_manager.h.

◆ try_get_active_selection_as() [1/2]

template<typename T >
auto unravel::editing_manager::try_get_active_selection_as ( ) -> T*
inline

Definition at line 225 of file editing_manager.h.

◆ try_get_active_selection_as() [2/2]

template<typename T >
auto unravel::editing_manager::try_get_active_selection_as ( ) const -> const T*
inline

Definition at line 237 of file editing_manager.h.

◆ try_get_selections_as() [1/2]

template<typename T >
auto unravel::editing_manager::try_get_selections_as ( ) -> std::vector<T*>
inline

Definition at line 265 of file editing_manager.h.

◆ try_get_selections_as() [2/2]

template<typename T >
auto unravel::editing_manager::try_get_selections_as ( ) const -> std::vector<const T*>
inline

Definition at line 249 of file editing_manager.h.

◆ try_get_selections_as_copy()

template<typename T >
auto unravel::editing_manager::try_get_selections_as_copy ( ) const -> std::vector<T>
inline

Definition at line 281 of file editing_manager.h.

◆ try_unfocus()

template<typename T >
void unravel::editing_manager::try_unfocus ( )
inline

Definition at line 169 of file editing_manager.h.

◆ try_unselect()

template<typename T >
void unravel::editing_manager::try_unselect ( )
inline

Clears the selection data if it maches the type.

Definition at line 160 of file editing_manager.h.

◆ undo()

auto unravel::editing_manager::undo ( ) -> std::shared_ptr<editing_action_t>

Definition at line 976 of file editing_manager.cpp.

◆ unfocus()

void unravel::editing_manager::unfocus ( )

Definition at line 629 of file editing_manager.cpp.

◆ unload_scenes_scripting()

void unravel::editing_manager::unload_scenes_scripting ( const std::vector< scene * > & scenes)

Definition at line 820 of file editing_manager.cpp.

◆ unselect() [1/2]

void unravel::editing_manager::unselect ( bool clear_selection_tools = true)

Clears the selection data.

Definition at line 589 of file editing_manager.cpp.

◆ unselect() [2/2]

template<typename T >
void unravel::editing_manager::unselect ( const T & entry)
inline

Definition at line 340 of file editing_manager.h.

Member Data Documentation

◆ auto_rebuild_reflection_probes

bool unravel::editing_manager::auto_rebuild_reflection_probes = true

Automatically flag reflection probes dirty whenever the scene is modified (while not playing). Mirrors Unity's "Auto Generate" lighting workflow: edits to static geometry cause probes to rebuild in the background.

Definition at line 514 of file editing_manager.h.

◆ billboard_data

billboard_gizmos unravel::editing_manager::billboard_data

Definition at line 527 of file editing_manager.h.

◆ current_mode

editing_mode unravel::editing_manager::current_mode = editing_mode::scene

Definition at line 533 of file editing_manager.h.

◆ edited_prefab

asset_handle<prefab> unravel::editing_manager::edited_prefab

Definition at line 536 of file editing_manager.h.

◆ focused_data

focused unravel::editing_manager::focused_data

Definition at line 522 of file editing_manager.h.

◆ gizmos

gizmos_data unravel::editing_manager::gizmos

Definition at line 528 of file editing_manager.h.

◆ grid_data

grid unravel::editing_manager::grid_data

Definition at line 526 of file editing_manager.h.

◆ ik_data

inverse_kinematics unravel::editing_manager::ik_data

Definition at line 530 of file editing_manager.h.

◆ mode

ImGuizmo::MODE unravel::editing_manager::mode = ImGuizmo::LOCAL

current manipulation gizmo space.

Definition at line 518 of file editing_manager.h.

◆ operation

ImGuizmo::OPERATION unravel::editing_manager::operation = ImGuizmo::TRANSLATE

current manipulation gizmo operation.

Definition at line 516 of file editing_manager.h.

◆ pending_actions

std::vector<std::shared_ptr<editing_action_t> > unravel::editing_manager::pending_actions

Definition at line 24 of file editing_manager.h.

◆ prefab_entity

entt::handle unravel::editing_manager::prefab_entity

Definition at line 539 of file editing_manager.h.

◆ prefab_scene

scene unravel::editing_manager::prefab_scene {"prefab_scene"}

Definition at line 542 of file editing_manager.h.

◆ selection_data

selection unravel::editing_manager::selection_data

selection data containing selected object

Definition at line 520 of file editing_manager.h.

◆ show_grid

bool unravel::editing_manager::show_grid = true

enable editor grid

Definition at line 507 of file editing_manager.h.

◆ show_icon_gizmos

bool unravel::editing_manager::show_icon_gizmos = true

enable editor icon gizmos

Definition at line 509 of file editing_manager.h.

◆ snap_data

snap unravel::editing_manager::snap_data

snap data containging various snap options

Definition at line 525 of file editing_manager.h.

◆ undo_stack

undo_redo_stack unravel::editing_manager::undo_stack

Definition at line 23 of file editing_manager.h.

◆ undo_stack_enabled

std::stack<bool> unravel::editing_manager::undo_stack_enabled

Definition at line 25 of file editing_manager.h.

◆ wireframe_selection

bool unravel::editing_manager::wireframe_selection = true

enable wireframe selection

Definition at line 511 of file editing_manager.h.


The documentation for this struct was generated from the following files: