Enzo
Loading...
Searching...
No Matches
ChangeDisplayFlagCommand.h
1#pragma once
2
3#include "Engine/Network/NetworkManager.h"
4#include "Engine/Types.h"
5#include "Engine/UndoRedo/UndoCommand.h"
6#include <optional>
7
8namespace enzo::nt {
9
11 public:
12 ChangeDisplayFlagCommand(std::optional<OpId> prev, OpId next)
13 : prev_(prev), next_(next) {}
14
15 void undo() override {
16 if (prev_.has_value()) {
17 if (!nm().isValidOp(*prev_)) return;
18 nm().setDisplayOp(*prev_);
19 } else {
20 nm().clearDisplayFlag();
21 }
22 }
23
24 void redo() override {
25 if (!nm().isValidOp(next_)) return;
26 nm().setDisplayOp(next_);
27 }
28
29 UndoCommandType type() const override { return UndoCommandType::ChangeDisplayFlag; }
30
31 private:
32 std::optional<OpId> prev_;
33 OpId next_;
34};
35
36} // 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:87
Definition ChangeDisplayFlagCommand.h:10
void clearDisplayFlag()
Clears the display flag so no node is displayed.
Definition NetworkManager.cpp:171
void setDisplayOp(OpId opId)
Sets given OpId to be displayed, releasing previous display Node.
Definition NetworkManager.cpp:160
Definition UndoCommand.h:8