载入中...
搜索中...
未找到
PhysicsJointTarget.cpp
浏览该文件的文档.
17PropertyDescriptor jointProperty(const char* path, const char* label, const char* category, PropertyType type,
31PhysicsJointTarget::PhysicsJointTarget(std::string id) : id_(std::move(id)), values_(defaults()) {}
35 TargetId(id_), "physics-joint-3d", revisionValue(), false, {CapabilityId("eve.editor.target.physics-joint")}};
39 return capability == CapabilityId("eve.editor.target.physics-joint") ? static_cast<IPropertyProvider*>(this)
45 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.physics.joint-operation"),
51 return eve::editing::failed<void>(EditorStatus::Rejected, RuleId("editor.physics.joint-payload"),
69Result<void> PhysicsJointTarget::commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) {
78eve::Result<eve::Revision> PhysicsJointTarget::currentRevision(const SelectionSnapshot& selection) const {
81 eve::Diagnostic::error(eve::DiagnosticCode::InvalidArgument, "Selection does not belong to this joint",
86PropertySchema PhysicsJointTarget::schema(const SelectionSnapshot&) const { return jointSchema(); }
88PropertyReadResult PhysicsJointTarget::read(const SelectionSnapshot& selection, const PropertyPath& path) const {
95Result<DomainOperation> PhysicsJointTarget::makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
175 auto kind = jointProperty("joint.kind", "editor.physics.joint-kind", "joint", PropertyType::Enum, "distance");
179 result.properties.push_back(jointProperty("body.a", "editor.physics.body-a", "joint", PropertyType::ObjectRef, ""));
180 result.properties.push_back(jointProperty("body.b", "editor.physics.body-b", "joint", PropertyType::ObjectRef, ""));
187 jointProperty("limit.enabled", "editor.physics.limit-enabled", "limit", PropertyType::Bool, false));
189 jointProperty("motor.enabled", "editor.physics.motor-enabled", "motor", PropertyType::Bool, false));
191 jointProperty("collision.connected", "editor.physics.collide-connected", "joint", PropertyType::Bool, false));
192 auto numeric = [&](const char* path, const char* label, const char* category, double value, double minimum,
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
const std::string & value() const noexcept
Returns the exact legacy or canonical compatibility spelling.
Definition Identity.h:362
void bumpRevision()
Advance the revision without touching the dirty region.
Definition EditableTarget.h:179
Revision revisionValue() const noexcept
Return the revision as the shared protocol revision type.
Definition EditableTarget.h:169
void widenDirty()
Mark an unknown area dirty without advancing the revision.
Definition EditableTarget.h:177
eve::OptionalRef< C > capability()
Query a capability through its interface-owned stable identity.
Definition EditableTarget.h:82
UI-independent property access for an immutable selection snapshot.
Definition EditingProperty.h:139
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
Definition EditingValue.h:19
Serializable joint authoring target using stable body references.
Definition PhysicsTarget.h:150
EditorValue snapshotValue() const
Capture deterministic joint content.
Definition PhysicsJointTarget.cpp:135
std::unique_ptr< IDomainOperationTarget > cloneDomainState() const override
Clones domain state.
Definition PhysicsJointTarget.cpp:65
PropertyReadResult read(const SelectionSnapshot &selection, const PropertyPath &path) const override
Reads .
Definition PhysicsJointTarget.cpp:88
eve::Result< eve::Revision > currentRevision(const SelectionSnapshot &selection) const override
Current revision.
Definition PhysicsJointTarget.cpp:78
PropertySchema schema(const SelectionSnapshot &selection) const override
Schema.
Definition PhysicsJointTarget.cpp:86
Result< void > applyDomainOperation(const DomainOperation &operation) override
Applies domain operation.
Definition PhysicsJointTarget.cpp:43
Result< void > commitDomainState(std::unique_ptr< IDomainOperationTarget > candidate) override
Commits domain state.
Definition PhysicsJointTarget.cpp:69
std::vector< EditorDiagnostic > validate() const
Report missing bodies, invalid axes and limit ranges.
Definition PhysicsJointTarget.cpp:144
Result< DomainOperation > makeSet(const SelectionSnapshot &selection, const PropertyPath &path, const EditorValue &value, PropertySetMode mode) const override
Make set.
Definition PhysicsJointTarget.cpp:95
void * queryCapability(const CapabilityId &capability) override
Query an optional target capability.
Definition PhysicsJointTarget.cpp:38
Result< DomainOperation > makeReset(const SelectionSnapshot &selection, const PropertyPath &path) const override
Make reset.
Definition PhysicsJointTarget.cpp:126
editing::PropertyDescriptor PropertyDescriptor
Definition ArchSpaceTarget.h:31
editing::PropertyPath PropertyPath
Definition ArchSpaceTarget.h:33
Diagnostic ruleDiagnostic(eve::DiagnosticCode code, RuleId rule, DiagnosticSeverity severity, std::string message)
Build a common diagnostic carrying an open editing rule identity.
Definition EditingResult.h:25
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
@ InvalidArgument
@ InvariantViolation
Definition Container.h:602
std::vector< PropertyDescriptor > properties
Definition EditingProperty.h:120
PropertyDescriptorLookup find(const PropertyPath &path) const
Finds find.
Definition EditingProperty.cpp:9
Stable discovery metadata exposed by every editable target.
Definition EditableTarget.h:39