Enzo
Loading...
Searching...
No Matches
ChangeDisplayFlagCommand.h
1#pragma once
2
3#include "Engine/Core/Types.h"
4#include "Engine/Network/NetworkManager.h"
5#include "Engine/UndoRedo/UndoCommand.h"
6#include <optional>
7
8namespace enzo::nt {
9
11{
12 public:
13 ChangeDisplayFlagCommand(std::optional<OpId> prev, OpId next) : prev_(prev), next_(next) {}
14
15 void undo() override
16 {
17 if (prev_.has_value())
18 {
19 if (!nm().isValidOp(*prev_)) return;
20 nm().setDisplayOp(*prev_);
21 }
22 else
23 {
24 nm().clearDisplayFlag();
25 }
26 }
27
28 void redo() override
29 {
30 if (!nm().isValidOp(next_)) return;
31 nm().setDisplayOp(next_);
32 }
33
34 UndoCommandType type() const override { return UndoCommandType::ChangeDisplayFlag; }
35
36 private:
37 std::optional<OpId> prev_;
38 OpId next_;
39};
40
41} // namespace enzo::nt
Basic attribute, parameter, and node types for Enzo.
uint64_t OpId
The unique ID assigned to each node in the network.
Definition Types.h:137
Definition ChangeDisplayFlagCommand.h:11
void clearDisplayFlag()
Clears the display flag so no node is displayed.
Definition NetworkManager.cpp:203
void setDisplayOp(OpId opId)
Sets given OpId to be displayed, releasing previous display Node.
Definition NetworkManager.cpp:192
Definition UndoCommand.h:8