载入中...
搜索中...
未找到
VolumeFluidTarget.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
6
7#include <cstdint>
8#include <string>
9#include <vector>
10
11namespace eve::fluids {
12class VolumeFluid;
13}
14
15namespace eve::fluids_editing {
16
19 std::uint32_t capacity = 8192;
20 std::uint32_t previewParticles = 640;
21 double spacing = 0.1;
22 double gravityX = 0.0, gravityY = -9.81, gravityZ = 0.0;
23 double minimumX = -2.0, minimumY = 0.0, minimumZ = -1.0;
24 double maximumX = 2.0, maximumY = 3.0, maximumZ = 1.0;
25 std::uint32_t iterations = 5;
26};
27
30 EditorStatus status = EditorStatus::Failed;
32 std::uint64_t estimatedBytes = 0;
33 std::uint64_t estimatedConstraintVisits = 0;
34 std::vector<EditorDiagnostic> diagnostics;
35};
36
44 public virtual IEditableTarget,
46 public IPropertyProvider {
47public:
49 explicit VolumeFluidTarget(std::string id);
51 TargetId targetId() const override { return TargetId(id_); }
53 TargetDescriptor describe() const override;
56 void* queryCapability(const CapabilityId& capability) override;
58 Result<void> applyDomainOperation(const DomainOperation& operation) override;
60 eve::Result<eve::Revision> currentRevision(const SelectionSnapshot& selection) const override;
62 PropertySchema schema(const SelectionSnapshot& selection) const override;
64 PropertyReadResult read(const SelectionSnapshot& selection, const PropertyPath& path) const override;
66 Result<DomainOperation> makeSet(const SelectionSnapshot& selection, const PropertyPath& path,
67 const EditorValue& value, PropertySetMode mode) const override;
69 Result<DomainOperation> makeReset(const SelectionSnapshot& selection,
70 const PropertyPath& path) const override;
72 VolumeFluidAuthoringSettings settings() const { return settings_; }
74 std::vector<EditorDiagnostic> validate() const;
76 VolumeFluidAuthoringPreview previewBudget(std::uint64_t byteBudget = 256ULL * 1024ULL * 1024ULL,
77 std::uint64_t visitBudget = 100000000ULL) const;
79 EditorValue snapshotValue() const;
81 Result<void> loadSnapshot(const EditorValue& snapshot);
82
83private:
85 bool matches(const SelectionSnapshot& selection) const;
86 std::string id_;
88};
89
102
103} // 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
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 position-based free-volume fluid with a bounded spatial grid. @ownership Owns all particle state;...
Atomic bridge from a validated authoring document to a live solver.
Reversible schema-driven document for native volume-fluid solver settings. @ownership Owns only autho...
TargetId targetId() const override
Target id.
VolumeFluidAuthoringSettings settings() const
Return an immutable copy of current authoring settings.
PropertySetMode
PropertySetMode 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
DomainOperation public API.
PropertyReadResult public API.
EVENGINE_API_PLATFORM public API.
SelectionSnapshot public API.
Stable discovery metadata exposed by every editable target.
Bounded preview allocation/work estimate before constructing a solver.
Serializable authoring parameters for the bounded volume-fluid solver.