Generates secondary particles at high-curl, low-density fluid source positions. @ownership Owns settings, credit and RNG only; neither source nor pool is retained. @thread Simulation-thread affine, including snapshot/restore; no concurrent calls. @reentrancy No callbacks or script invocation. No global time or RNG access. 更多...
#include <VolumeFluidFoam.h>
Public 成员函数 | |
| Result< unsigned > | advance (const VolumeFluid &source, VolumeFluidDiffuse &pool, float seconds) |
| Emits after the caller steps the source and advects existing diffuse particles. | |
| Result< unsigned > | advanceFromActor (const VolumeFluid &source, VolumeFluidDiffuse &pool, float seconds, unsigned actorGroup) |
| Emits only from particles owned by one emitter actor group. | |
| Result< unsigned > | advanceFromActorInterpolated (const VolumeFluid &source, VolumeFluidDiffuse &pool, float seconds, unsigned actorGroup, float alpha) |
| Emits from one actor using fixed-step interpolated source positions. | |
| VolumeFluidFoamSnapshot | snapshot () const |
| Copies owning settings, fractional credit and isolated RNG state. | |
| Result< void > | restore (const VolumeFluidFoamSnapshot &state) |
| Validates all settings/schema/credit/RNG before atomic replacement. | |
详细描述
Generates secondary particles at high-curl, low-density fluid source positions. @ownership Owns settings, credit and RNG only; neither source nor pool is retained. @thread Simulation-thread affine, including snapshot/restore; no concurrent calls. @reentrancy No callbacks or script invocation. No global time or RNG access.
Same checkpoint and call ordering repeats on one build; floating-point field/position comparisons across platforms require tolerance. No ECS or links.
在文件 VolumeFluidFoam.h 第 39 行定义.
成员函数说明
◆ advance()
| Result< unsigned > eve::fluids::VolumeFluidFoam::advance | ( | const VolumeFluid & | source, |
| VolumeFluidDiffuse & | pool, | ||
| float | seconds | ||
| ) |
Emits after the caller steps the source and advects existing diffuse particles.
- 参数
-
source Borrowed fluid; all its Liquid/Gas particles are eligible source sites. pool Borrowed destination; no pressure or rendering work is performed. seconds Injected dt in [0,1/30].
- 返回
- Admitted count; failure preserves pool and controller state.
Whole credit beyond capacity/maxPerStep/eligible sites is discarded. Queries at most 65536 source particles with the shared 4M candidate-visit limit. Zero budget/full pool skips copying and field sampling. Successful empty eligibility consumes whole credit but not RNG. Eligible sites are counted and selected without allocating a separate per-site index array. Source positions, field samples and output batch retain peak capacity, so stable-size productive frames allocate none of these working arrays. Settings use native field units, not a claim of numerical Fluid3D threshold calibration.
在文件 VolumeFluidFoam.cpp 第 36 行定义.
引用了 source.
◆ advanceFromActor()
| Result< unsigned > eve::fluids::VolumeFluidFoam::advanceFromActor | ( | const VolumeFluid & | source, |
| VolumeFluidDiffuse & | pool, | ||
| float | seconds, | ||
| unsigned | actorGroup | ||
| ) |
Emits only from particles owned by one emitter actor group.
- 参数
-
source Borrowed fluid containing the emitter's particles. pool Borrowed diffuse destination. seconds Injected dt in [0,1/30]. actorGroup Explicit native identity corresponding to Fluid3DEmitter::solverIndices.
- 返回
- Admitted count; failure preserves pool and controller state.
Fuses the actor comparison into the existing source collection pass, so it adds no traversal, allocation, query or GPU submission. The identity is transient and is not retained in snapshots.
在文件 VolumeFluidFoam.cpp 第 40 行定义.
引用了 source.
◆ advanceFromActorInterpolated()
| Result< unsigned > eve::fluids::VolumeFluidFoam::advanceFromActorInterpolated | ( | const VolumeFluid & | source, |
| VolumeFluidDiffuse & | pool, | ||
| float | seconds, | ||
| unsigned | actorGroup, | ||
| float | alpha | ||
| ) |
Emits from one actor using fixed-step interpolated source positions.
- 参数
-
alpha Finite render interpolation fraction in [0,1].
Matches Fluid3DFoamGenerator's solver.renderablePositions source. Field values are sampled at those positions without another source traversal or GPU work.
在文件 VolumeFluidFoam.cpp 第 45 行定义.
引用了 source.
◆ restore()
| Result< void > eve::fluids::VolumeFluidFoam::restore | ( | const VolumeFluidFoamSnapshot & | state | ) |
Validates all settings/schema/credit/RNG before atomic replacement.
在文件 VolumeFluidFoam.cpp 第 120 行定义.
引用了 eve::Result< T >::failure(), range, s, state , 以及 eve::Result< T >::success().
被这些函数引用 eve::fluids::decodeVolumeFluidFoam().
◆ snapshot()
| VolumeFluidFoamSnapshot eve::fluids::VolumeFluidFoam::snapshot | ( | ) | const |
Copies owning settings, fractional credit and isolated RNG state.
在文件 VolumeFluidFoam.cpp 第 113 行定义.
该类的文档由以下文件生成:
- src/modules/fluids/VolumeFluidFoam.h
- src/modules/fluids/VolumeFluidFoam.cpp