载入中...
搜索中...
未找到
EditorSurfaceFluidPreview.cpp
浏览该文件的文档.
20 return std::all_of(value.begin(), value.end(), [](double component) { return std::isfinite(component); });
34 if (!std::isfinite(request.seconds) || !std::isfinite(request.fixedStep) || request.seconds < 0.0 ||
37 request.indices.size() % 3 != 0 || (!request.uvs.empty() && request.uvs.size() != request.positions.size()) ||
40 error(result, "editor.surface-fluid.preview-request", "Surface fluid preview request or budget is invalid");
81 auto applied = SurfaceFluidRuntimeApplier().apply(target, &simulation, &renderParams, &wetnessParams);
88 if (!finite(seed.barycentric) || !finite(seed.velocity) || !std::isfinite(seed.volume) || seed.volume <= 0.0 ||
90 std::any_of(seed.barycentric.begin(), seed.barycentric.end(), [](double v) { return v < 0.0; }) ||
95 if (!simulation.addDroplet({seed.triangle, {seed.barycentric[0], seed.barycentric[1], seed.barycentric[2]}},
98 error(result, "editor.surface-fluid.preview-seed-add", "Surface droplet seed could not be added");
102 const std::size_t fullSteps = static_cast<std::size_t>(std::floor(request.seconds / request.fixedStep));
108 if (simulation.droplets().size() + simulation.airborneDroplets().size() > request.maximumDroplets) {
SurfaceFluidPreviewSnapshot build(const SurfaceFluidTarget &target, const SurfaceFluidPreviewRequest &request) const
Validate, replay and capture a renderer-neutral surface-fluid frame.
Definition EditorSurfaceFluidPreview.cpp:25
Dynamic triangle surface used to bind films and droplets to deforming meshes.
Definition FluidSurfaceBinding.h:45
CPU reference solver for droplets moving over static, rigid or deforming surfaces.
Definition SurfaceDropletSimulation.h:72
Lightweight material-space wet-film field stored at mesh vertices.
Definition SurfaceWetnessField.h:28
Optional bridge copying a validated document into live fluid components.
Definition SurfaceFluidTarget.h:111
Result< void > apply(const SurfaceFluidTarget &target, fluids::SurfaceDropletSimulation *simulation, fluids::SurfaceFluidRenderParams *render, fluids::SurfaceWetnessParams *wetness) const
Apply droplet parameters and emit matching render/wetness parameters atomically.
Definition SurfaceFluidRuntime.cpp:9
Reversible document for surface droplets, wet traces and material response.
Definition SurfaceFluidTarget.h:69
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
Definition ActionPreviewController.cpp:6
@ PreconditionViolation
Complete deterministic input needed to replay a surface-fluid scrub.
Definition EditorSurfaceFluidPreview.h:25
Revision-bound result containing droplet geometry and per-vertex wetness.
Definition EditorSurfaceFluidPreview.h:55
std::vector< EditorDiagnostic > diagnostics
Definition EditorSurfaceFluidPreview.h:61
Revision documentRevision
Definition EditorSurfaceFluidPreview.h:57
EditorStatus status
Definition EditorSurfaceFluidPreview.h:56
Tuning for converting simulated droplets into render instances.
Definition SurfaceFluidRenderData.h:46
Parameters controlling persistent wet-film traces on a triangle surface.
Definition SurfaceWetnessField.h:13