19 virtual const std::string &
name()
const = 0;
32 [[nodiscard]]
virtual std::unique_ptr<IEditCommand>
clone()
const {
return nullptr; }
51 const std::string &
name()
const override {
return name_; }
53 bool record(
int x,
int y,
int after);
55 int changeCount()
const {
return static_cast<int>(changes_.size()); }
57 bool apply()
override;
59 void revert()
override;
61 [[nodiscard]] std::unique_ptr<IEditCommand> clone()
const override;
69 std::vector<IntFieldChange> changes_;
82 const std::string &
name()
const override {
return name_; }
84 bool record(
int x,
int y,
float after);
86 int changeCount()
const {
return static_cast<int>(changes_.size()); }
88 bool apply()
override;
90 void revert()
override;
92 [[nodiscard]] std::unique_ptr<IEditCommand> clone()
const override;
100 std::vector<ScalarFieldChange> changes_;
#define EVENGINE_API_ORCHESTRATION
IEditableTarget public API.
Reversible unit accepted by the editor transaction manager.
virtual ~IEditCommand()=default
Releases IEditCommand resources.
virtual void revert()=0
Revert.
virtual EditRegion dirtyRegion() const =0
Dirty region.
virtual bool apply()=0
Applies .
virtual std::unique_ptr< IEditCommand > clone() const
Creates an owning staged copy for merge evaluation.
virtual bool mergeWith(const IEditCommand &later)
Optionally absorb a later command from the same stroke.
virtual const std::string & name() const =0
Name.
Reversible edits to any target exposing IIntFieldTarget.
int changeCount() const
Change count.
EditRegion dirtyRegion() const override
Dirty region.
const std::string & name() const override
Name.
Reversible edits to any target exposing IScalarFieldTarget.
int changeCount() const
Change count.
EditRegion dirtyRegion() const override
Dirty region.
const std::string & name() const override
Name.
IntFieldChange public API.
ScalarFieldChange public API.