载入中...
搜索中...
未找到
SurfaceFluidContracts.h
浏览该文件的文档.
57 virtual eve::Result<void> build(const std::vector<glm::vec3>& positions, const std::vector<std::uint32_t>& indices,
66 virtual eve::Result<void> setDeformedPositions(const std::vector<glm::vec3>& worldPositions) = 0;
73 virtual eve::Result<SurfaceSample> evaluate(const SurfaceLocation& location, eve::Duration poseDelta) const = 0;
77 virtual eve::Result<SurfaceLocation> project(const glm::vec3& worldPosition, float maxDistance) const = 0;
81 virtual eve::Result<SurfaceWalkResult> walk(const SurfaceLocation& start, const glm::vec3& displacement,
96 virtual eve::Result<void> reconstruct(std::span<const glm::vec3> positions, float particleRadius) = 0;
100 virtual eve::Result<void> occlude(std::span<const float> sceneDepth, float depthBias = 0.001f) = 0;
142 explicit FluidSurfaceConstraintAdapter(FluidSurfaceBinding& binding) noexcept : binding_(&binding) {}
151 [[nodiscard]] eve::Result<void> setDeformedPositions(const std::vector<glm::vec3>& worldPositions) override;
186 ScreenSpaceSurfaceReconstructionAdapter(const ScreenSpaceSurfaceReconstructionAdapter&) = delete;
187 ScreenSpaceSurfaceReconstructionAdapter& operator=(const ScreenSpaceSurfaceReconstructionAdapter&) = delete;
190 [[nodiscard]] eve::Result<void> reconstruct(std::span<const glm::vec3> positions, float particleRadius) override;
192 [[nodiscard]] eve::Result<void> occlude(std::span<const float> sceneDepth, float depthBias = 0.001f) override;
Move-only, checked operation results for the common layer.
Common time values and an injectable deterministic simulation clock.
Adapter exposing the existing CPU FluidSimulation through the contract.
Definition SurfaceFluidContracts.h:119
FluidSimulationAdapter(FluidSimulation &solver) noexcept
Constructs a FluidSimulationAdapter.
Definition SurfaceFluidContracts.h:123
Dynamic triangle surface used to bind films and droplets to deforming meshes.
Definition FluidSurfaceBinding.h:45
Adapter exposing existing FluidSurfaceBinding operations as checked results.
Definition SurfaceFluidContracts.h:138
FluidSurfaceConstraintAdapter(FluidSurfaceBinding &binding) noexcept
Constructs a FluidSurfaceConstraintAdapter.
Definition SurfaceFluidContracts.h:142
Buffer-level screen-space fluid renderer.
Definition FluidSurfaceRenderer.h:103
Presentation contract for screen-space surface reconstruction.
Definition SurfaceFluidContracts.h:86
virtual eve::Result< void > occlude(std::span< const float > sceneDepth, float depthBias=0.001f)=0
Removes reconstructed color behind borrowed linear scene depth without allocating.
virtual ~IScreenSpaceSurfaceReconstruction()=default
Releases the renderer adapter and its presentation buffers.
virtual int width() const noexcept=0
Output width in pixels.
virtual eve::Result< void > reconstruct(std::span< const glm::vec3 > positions, float particleRadius)=0
Reconstructs depth, thickness, normals, and color from particles.
Backend-neutral contract for mesh-surface binding and traversal.
Definition SurfaceFluidContracts.h:50
virtual ~ISurfaceConstraint()=default
Releases the borrowed-constraint adapter.
virtual eve::Result< void > setDeformedPositions(const std::vector< glm::vec3 > &worldPositions)=0
Applies a deformed pose with the existing topology.
virtual bool isValid() const noexcept=0
Returns whether topology and poses are currently valid.
virtual eve::Result< void > build(const std::vector< glm::vec3 > &positions, const std::vector< std::uint32_t > &indices, const std::vector< glm::vec2 > &uvs={})=0
Builds topology and pose state from owning caller data.
virtual eve::Result< void > setTransform(const glm::mat4 &transform)=0
Applies a rigid pose while preserving the previous pose.
Backend-neutral contract for advancing a surface-fluid solver.
Definition SurfaceFluidContracts.h:30
virtual eve::Result< void > step(const eve::SimulationStep &step)=0
Advances the solver at an injected simulation tick.
virtual std::span< const FluidParticle > particles() const noexcept=0
Borrows a read-only live-particle view until the next solver mutation.
virtual int particleCount() const noexcept=0
Returns the number of live particles.
virtual ~ISurfaceFluidSimulation()=default
Releases the borrowed-solver adapter.
Minimal SSF adapter over the existing CPU/GPU FluidSurfaceRenderer.
Definition SurfaceFluidContracts.h:174
~ScreenSpaceSurfaceReconstructionAdapter() override
Releases ScreenSpaceSurfaceReconstructionAdapter resources.
ScreenSpaceSurfaceReconstructionAdapter & operator=(const ScreenSpaceSurfaceReconstructionAdapter &)=delete
ScreenSpaceSurfaceReconstructionAdapter(const ScreenSpaceSurfaceReconstructionAdapter &)=delete
Definition Container.h:602
Camera + reconstruction tuning for the SSF pipeline.
Definition FluidSurfaceRenderer.h:61
Stable material-space address of a point on a triangle surface.
Definition FluidSurfaceBinding.h:13
Evaluated world-space frame and motion at a surface location.
Definition FluidSurfaceBinding.h:19
Result of walking a material point across triangle adjacency.
Definition FluidSurfaceBinding.h:31