载入中...
搜索中...
未找到
InputMapTarget.h
浏览该文件的文档.
1#pragma once
2
3#include <map>
4#include <optional>
5#include <string>
6#include <vector>
7#include "common/Export.h"
11namespace eve::input_editing {
17using editing::Result;
39}
40namespace eve::input_editing{
42struct InputActionValue{ObjectId id;std::string name;std::string kind="button";};
44struct InputBindingValue{ObjectId id,action;std::string device="keyboard",control;double scale=1,deadzone=0;bool invert=false;};
49 public IPropertyProvider {
51public:explicit InputMapTarget(std::string id);TargetId targetId() const override{ return TargetId(id_);}std::uint64_t revision() const override{return revision_;}EditRegion dirtyRegion()const override{return dirty_;}void clearDirtyRegion()override{dirty_.clear();}TargetDescriptor describe()const override;void*queryCapability(const CapabilityId&)override;Result<void>applyDomainOperation(const DomainOperation&)override;std::unique_ptr<IDomainOperationTarget>cloneDomainState()const override;Result<void>commitDomainState(std::unique_ptr<IDomainOperationTarget>)override;eve::Result<eve::Revision>currentRevision(const SelectionSnapshot&)const override;PropertySchema schema(const SelectionSnapshot&)const override;PropertyReadResult read(const SelectionSnapshot&,const PropertyPath&)const override;Result<DomainOperation>makeSet(const SelectionSnapshot&,const PropertyPath&,const EditorValue&,PropertySetMode)const override;Result<DomainOperation>makeReset(const SelectionSnapshot&,const PropertyPath&)const override;Result<DomainOperation>makeCreateAction(InputActionValue)const;Result<DomainOperation>makeDeleteAction(const ObjectId&)const;Result<DomainOperation>makeCreateBinding(InputBindingValue)const;Result<DomainOperation>makeDeleteBinding(const ObjectId&)const;const std::vector<InputActionValue>&actions()const{return actions_;}const std::vector<InputBindingValue>&bindings()const{return bindings_;}std::vector<EditorDiagnostic>validate()const;EditorValue snapshotValue()const;Result<void>loadSnapshot(const EditorValue&);
52
53private:
55 bool matches(const SelectionSnapshot&) const;
57 EditorValue contentValue() const;
59 Result<DomainOperation> replacement(EditorValue, std::string = {}) const;
60 std::string id_;
61 Revision revision_ = 1;
62 EditRegion dirty_;
63 std::vector<InputActionValue> actions_;
64 std::vector<InputBindingValue> bindings_;
65};
67struct InputControlSample{std::string device,control;double value=0;};
70public:
72 const std::vector<InputControlSample>&) const;
73};
76public:
78 void begin(std::string device = {});
80 void cancel();
82 bool active() const { return active_; }
84 std::optional<InputControlSample> feed(InputControlSample);
85
86private:
87 bool active_ = false;
88 std::string device_;
89};
90} // namespace eve::input_editing
#define EVENGINE_API_BACKENDS
Definition Export.h:108
vkb::Device & device
std::vector< std::shared_ptr< DeviceBytes > > bindings
Definition OnnxGpgpu.cpp:38
std::uint64_t revision
std::vector< ActionSpec > actions
Definition PlayHost.cpp:126
std::uint32_t targetId
float begin
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
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
UI-independent property access for an immutable selection snapshot.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Captures the first intentional control movement for a rebind UI.
Deterministically evaluates raw device samples against an authored action map.
EVENGINE_API_BACKENDS public API.
editing::PropertySchema PropertySchema
editing::TargetDescriptor TargetDescriptor
editing::EditRegion EditRegion
editing::PropertyReadResult PropertyReadResult
eve::Severity DiagnosticSeverity
std::uint64_t Revision
StrongId< TargetIdTag > TargetId
Definition EditingIds.h:57
eve::Diagnostic Diagnostic
StrongId< ObjectIdTag > ObjectId
Definition EditingIds.h:65
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.
void validate(const RuntimeTensor &v)
Validate.
T read(const RuntimeTensor &v, size_t i)
Reads read.
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
detail::StrongUint64< detail::RevisionTag > Revision
Monotonic content/state revision used for optimistic-concurrency checks.
Definition Revision.h:13
DomainOperation public API.
EditRegion public API.
void clear()
Clears clear.
PropertyDescriptor public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
InputActionValue public API.
InputBindingValue public API.
InputControlSample public API.