Unravel Engine C++ Reference
Loading...
Searching...
No Matches
composite_action.h
Go to the documentation of this file.
1#pragma once
2
3#include "editing_action.h"
4#include <memory>
5#include <vector>
6
7namespace unravel
8{
9
10// Composite action base class - contains multiple sub-actions
11struct composite_action_t : crtp_meta_type<composite_action_t, editing_action_t>
12{
13 std::vector<std::shared_ptr<editing_action_t>> sub_actions;
14
15 void add_sub_action(std::shared_ptr<editing_action_t> action);
16 void draw_in_inspector(rtti::context& ctx) override;
17 void do_action() override;
18 void undo_action() override;
19 auto is_valid() const -> bool override;
20 auto is_mergeable(const editing_action_t& previous) const -> bool override;
21 void merge_with(const editing_action_t& previous) override;
22
23
24};
25
26} // namespace unravel
void add_sub_action(std::shared_ptr< editing_action_t > action)
void draw_in_inspector(rtti::context &ctx) override
void merge_with(const editing_action_t &previous) override
auto is_valid() const -> bool override
auto is_mergeable(const editing_action_t &previous) const -> bool override
std::vector< std::shared_ptr< editing_action_t > > sub_actions