载入中...
搜索中...
未找到
FluidTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
8
9#include <string>
10#include <vector>
11
12namespace eve::fluids {
13class FluidSimulation;
14}
15
16namespace eve::fluids_editing {
17
23
24using editing::Result;
43
45
48 int maxParticles = 10000;
49 int previewParticles = 1000;
50 double particleRadius = 0.05;
51 double supportRadius = 0.20;
52 double restDensity = 1.0;
53 double gravityX = 0.0, gravityY = -9.8, gravityZ = 0.0;
54 double viscosity = 0.02;
55 double yieldStress = 0.0;
56 double cohesion = 0.0;
57 double adhesion = 0.0;
58 double damping = 0.0;
59 double maximumVelocity = 20.0;
60 int iterations = 1;
62};
63
66 EditorStatus status = EditorStatus::Failed;
68 std::uint64_t estimatedBytes = 0;
69 std::uint64_t estimatedNeighborChecks = 0;
70 std::vector<EditorDiagnostic> diagnostics;
71};
72
75 public virtual IEditableTarget,
77 public IPropertyProvider {
78public:
80 explicit FluidSimulationTarget(std::string id);
82 TargetId targetId() const override { return TargetId(id_); }
84 TargetDescriptor describe() const override;
87 void* queryCapability(const CapabilityId& capability) override;
89 Result<void> applyDomainOperation(const DomainOperation& operation) override;
91 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
93 PropertySchema schema(const SelectionSnapshot& selection) const override;
95 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
97 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
98 const EditorValue& value, PropertySetMode mode) const override;
100 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
101 const PropertyPath& path) const override;
103 FluidSimulationSettings settings() const { return settings_; }
105 std::vector<EditorDiagnostic> validate() const;
107 FluidSimulationPreview previewBudget(std::uint64_t byteBudget = 256ULL * 1024ULL * 1024ULL,
108 std::uint64_t neighborBudget = 100000000ULL) const;
110 EditorValue snapshotValue() const;
112 Result<void> loadSnapshot(const EditorValue& snapshot);
113
114private:
116 bool matches(const SelectionSnapshot& selection) const;
117 std::string id_;
118 FluidSimulationSettings settings_;
119};
120
127
128} // namespace eve::fluids_editing
LogicalId target
ActionParameterOperation operation
double value
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
std::string path
Definition PlayHost.cpp:110
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
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.
Dotted property path (layout.size) compared and persisted as text.
Definition EditingIds.h:78
Deterministic owning value tree shared by authoring hosts.
CPU reference surface-flow solver.
Optional bridge applying authored tuning to a live FluidSimulation.
Result< void > apply(const FluidSimulationTarget &target, fluids::FluidSimulation *simulation) const
Apply validated mutable solver parameters; capacity remains runtime-owned.
Reversible property document for fluid simulation authoring.
Definition FluidTarget.h:77
TargetId targetId() const override
Target id.
Definition FluidTarget.h:82
FluidSimulationSettings settings() const
Return an immutable settings copy.
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.
editing::Revision Revision
Definition FluidTarget.h:38
GLSL compute kernels for the GPU surface-flow solver.
Definition FluidTarget.h:12
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.
Cost estimate used before allocating or running a fluid preview.
Definition FluidTarget.h:65
std::vector< EditorDiagnostic > diagnostics
Definition FluidTarget.h:70
Serializable parameters matching the CPU/GPU surface fluid solver.
Definition FluidTarget.h:47