载入中...
搜索中...
未找到
LightingTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
8
9#include <map>
10#include <string>
11#include <vector>
12
13namespace eve::graphics {
14class Light3D;
15}
16namespace eve::daynight {
17class DayNight;
18}
19namespace eve::weather {
20class Weather;
21}
22
23namespace eve::lighting_editing {
24
30using editing::Result;
51
54 public virtual IEditableTarget,
56 public IPropertyProvider {
57public:
59 TargetId targetId() const override { return TargetId(id_); }
61 TargetDescriptor describe() const override;
64 void* queryCapability(const CapabilityId& capability) override;
66 Result<void> applyDomainOperation(const DomainOperation& operation) override;
68 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
70 PropertySchema schema(const SelectionSnapshot& selection) const override;
72 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
74 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
75 const EditorValue& value, PropertySetMode mode) const override;
77 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
78 const PropertyPath& path) const override;
80 EditorValue snapshotValue() const;
82 Result<void> loadSnapshot(const EditorValue& snapshot);
85 const EditorValue* value(const std::string& path) const;
86
87protected:
89 LightingPropertyTargetBase(std::string id, std::string targetType, PropertySchema schema);
90
91private:
93 bool selectionMatches(const SelectionSnapshot& selection) const;
94 std::string id_;
95 std::string targetType_;
96 PropertySchema schema_;
97 std::map<std::string, EditorValue> values_;
98};
99
102public:
104 explicit Light3DDocumentTarget(std::string id);
106 std::vector<EditorDiagnostic> validate() const;
107};
108
111public:
113 explicit EnvironmentDocumentTarget(std::string id);
115 std::vector<EditorDiagnostic> validate() const;
116};
117
124
127public:
129 Result<void> applyDayNight(const EnvironmentDocumentTarget& document, daynight::DayNight* environment) const;
131 Result<void> applyWeather(const EnvironmentDocumentTarget& document, weather::Weather* environment) const;
132};
133
134} // namespace eve::lighting_editing
ActionParameterOperation operation
double value
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::string path
Definition PlayHost.cpp:110
Light3D::Data * light
A structured explanation of a failed, degraded, or noteworthy result.
Definition Diagnostic.h:94
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
DayNight module — a time-of-day cycle that drives the sun, sky and light.
Definition DayNight.h:94
Dirty region and revision shared by every editable document target.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
UI-independent property access for an immutable selection snapshot.
PropertyDescriptorLookup public API.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Declarative 3D light. Collected by RenderSystem3D (max 8 per frame). type: "point" | "dir" | "spot" (...
Definition Light.h:191
Serializable shared environment target for static, DayNight and Weather modes.
Optional bridge applying environment properties to DayNight or Weather.
Serializable property target matching graphics::Light3D.
Optional bridge applying a light document to graphics::Light3D.
Shared property-document implementation for light and environment targets.
TargetId targetId() const override
Target id.
Weather module — real-time precipitation / lightning / wind system.
Definition Weather.h:36
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
PropertyType
PropertyType public API.
StrongId< RuleIdTag > RuleId
Definition EditingIds.h:60
PropertySetMode
PropertySetMode public API.
PropertyFlag
PropertyFlag public API.
eve::StatusCode Status
StrongId< CapabilityIdTag > CapabilityId
Definition EditingIds.h:61
Result< void > validatePropertyValue(const PropertyDescriptor &descriptor, const Value &value)
Validate property value.
PropertyReadState
PropertyReadState public API.
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
editing::Revision Revision
StatusCode
Stable outcome category for an operation.
Definition Status.h:27
Severity
Stable severity of a diagnostic, independent of its display text.
Definition Diagnostic.h:20
DomainOperation public API.
EditRegion public API.
PropertyDescriptor public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.