载入中...
搜索中...
未找到
EditConstraint.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <string>
8#include <vector>
9
10namespace eve::editor {
11
12class EditorContext;
13class IEditCommand;
14
17
20 ConstraintDisposition disposition = ConstraintDisposition::Allow;
21 std::string message;
23 static ConstraintResult allow() { return {}; }
25 static ConstraintResult warning(std::string message);
27 static ConstraintResult reject(std::string message);
28};
29
36public:
38 virtual ~IEditConstraint() = default;
41};
42
45public:
47 bool add(IEditConstraint *constraint);
49 bool remove(IEditConstraint *constraint);
51 void clear();
53 bool evaluate(EditorContext &context, IEditCommand &command);
55 [[nodiscard]] Result<void> evaluateChecked(EditorContext &context, IEditCommand &command);
56 int diagnosticCount() const { return static_cast<int>(diagnostics_.size()); }
58 const std::string &diagnostic(int index) const;
60 bool rejected() const { return rejected_; }
61private:
62 std::vector<IEditConstraint *> constraints_;
63 std::vector<std::string> diagnostics_;
64 std::vector<EditorDiagnostic> structuredDiagnostics_;
65 bool rejected_ = false;
66};
67
68} // namespace eve::editor
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::string message
uint32_t index
const VegetationPresetContext & context
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Ordered, non-owning constraint chain with diagnostics.
Context supplied by EditorSession to tools.
Definition EditorTool.h:71
Reversible unit accepted by the editor transaction manager.
Definition EditCommand.h:14
Protocol for game and art-style rules applied before command commit. Implementations may inspect or n...
virtual ~IEditConstraint()=default
Releases IEditConstraint resources.
virtual ConstraintResult evaluate(EditorContext &context, IEditCommand &command)=0
Evaluate.
ConstraintDisposition
ConstraintDisposition public API.
Result of evaluating one replaceable edit constraint.
static ConstraintResult allow()
Allow.