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

#include <editing_manager.h>

Classes

struct  billboard_gizmos
 
struct  focused
 
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_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)
 
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)
 
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 ()
 
void undo ()
 
void redo ()
 
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 ()
 
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 *
 

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
 
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
 
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 20 of file editing_manager.h.

Member Enumeration Documentation

◆ editing_mode

Enumerator
scene 
prefab 

Definition at line 74 of file editing_manager.h.

◆ save_option

Enumerator
yes 
no 
prompt 

Definition at line 80 of file editing_manager.h.

◆ select_mode

Enumerator
normal 
ctrl 
shift 

Definition at line 67 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 714 of file editing_manager.cpp.

◆ can_redo()

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

Definition at line 439 of file editing_manager.h.

◆ can_undo()

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

Definition at line 438 of file editing_manager.h.

◆ clear()

void unravel::editing_manager::clear ( )

Definition at line 658 of file editing_manager.cpp.

◆ clear_unsaved_changes()

void unravel::editing_manager::clear_unsaved_changes ( )
inline

Definition at line 447 of file editing_manager.h.

◆ deinit()

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

Definition at line 91 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 405 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 683 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 688 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 693 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 471 of file editing_manager.cpp.

◆ execute_actions()

void unravel::editing_manager::execute_actions ( )

Definition at line 759 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 562 of file editing_manager.cpp.

◆ focus()

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

Selects an object. Can be anything.

Definition at line 444 of file editing_manager.cpp.

◆ focus_path()

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

Definition at line 450 of file editing_manager.cpp.

◆ get_active_scene()

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

Definition at line 646 of file editing_manager.cpp.

◆ get_active_selection() [1/2]

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

Definition at line 168 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 163 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 184 of file editing_manager.h.

◆ get_pending_actions_count()

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

Definition at line 444 of file editing_manager.h.

◆ get_select_mode()

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

Definition at line 412 of file editing_manager.cpp.

◆ get_selections() [1/2]

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

Definition at line 178 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 173 of file editing_manager.h.

◆ has_pending_actions()

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

Definition at line 443 of file editing_manager.h.

◆ has_unsaved_changes()

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

Definition at line 446 of file editing_manager.h.

◆ init()

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

Definition at line 79 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 275 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 262 of file editing_manager.h.

◆ is_prefab_mode()

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

Definition at line 454 of file editing_manager.h.

◆ is_selected()

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

Definition at line 143 of file editing_manager.h.

◆ is_selected_type()

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

Definition at line 156 of file editing_manager.h.

◆ on_frame_update()

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

Definition at line 428 of file editing_manager.cpp.

◆ on_play_after_end()

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

Definition at line 151 of file editing_manager.cpp.

◆ on_play_before_begin()

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

Definition at line 98 of file editing_manager.cpp.

◆ on_prefab_updated()

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

Definition at line 313 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 189 of file editing_manager.cpp.

◆ pop_undo_stack_enabled()

void unravel::editing_manager::pop_undo_stack_enabled ( )

Definition at line 754 of file editing_manager.cpp.

◆ push_undo_stack_enabled()

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

Definition at line 750 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 420 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 698 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 703 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 708 of file editing_manager.cpp.

◆ redo()

void unravel::editing_manager::redo ( )

Definition at line 792 of file editing_manager.cpp.

◆ save_prefab_changes()

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

Definition at line 621 of file editing_manager.cpp.

◆ select()

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

Definition at line 317 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 343 of file editing_manager.cpp.

◆ sync_prefab_instances()

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

Definition at line 402 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 293 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 190 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 202 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 230 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 214 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 246 of file editing_manager.h.

◆ try_unfocus()

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

Definition at line 134 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 125 of file editing_manager.h.

◆ undo()

void unravel::editing_manager::undo ( )

Definition at line 783 of file editing_manager.cpp.

◆ unfocus()

void unravel::editing_manager::unfocus ( )

Definition at line 466 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 455 of file editing_manager.cpp.

◆ unselect() [2/2]

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

Definition at line 305 of file editing_manager.h.

Member Data Documentation

◆ billboard_data

billboard_gizmos unravel::editing_manager::billboard_data

Definition at line 478 of file editing_manager.h.

◆ current_mode

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

Definition at line 483 of file editing_manager.h.

◆ edited_prefab

asset_handle<prefab> unravel::editing_manager::edited_prefab

Definition at line 486 of file editing_manager.h.

◆ focused_data

focused unravel::editing_manager::focused_data

Definition at line 473 of file editing_manager.h.

◆ grid_data

grid unravel::editing_manager::grid_data

Definition at line 477 of file editing_manager.h.

◆ ik_data

inverse_kinematics unravel::editing_manager::ik_data

Definition at line 480 of file editing_manager.h.

◆ mode

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

current manipulation gizmo space.

Definition at line 469 of file editing_manager.h.

◆ operation

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

current manipulation gizmo operation.

Definition at line 467 of file editing_manager.h.

◆ pending_actions

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

Definition at line 23 of file editing_manager.h.

◆ prefab_entity

entt::handle unravel::editing_manager::prefab_entity

Definition at line 489 of file editing_manager.h.

◆ prefab_scene

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

Definition at line 492 of file editing_manager.h.

◆ selection_data

selection unravel::editing_manager::selection_data

selection data containing selected object

Definition at line 471 of file editing_manager.h.

◆ show_grid

bool unravel::editing_manager::show_grid = true

enable editor grid

Definition at line 461 of file editing_manager.h.

◆ show_icon_gizmos

bool unravel::editing_manager::show_icon_gizmos = true

enable editor icon gizmos

Definition at line 463 of file editing_manager.h.

◆ snap_data

snap unravel::editing_manager::snap_data

snap data containging various snap options

Definition at line 476 of file editing_manager.h.

◆ undo_stack

undo_redo_stack unravel::editing_manager::undo_stack

Definition at line 22 of file editing_manager.h.

◆ undo_stack_enabled

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

Definition at line 24 of file editing_manager.h.

◆ wireframe_selection

bool unravel::editing_manager::wireframe_selection = true

enable wireframe selection

Definition at line 465 of file editing_manager.h.


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