Bounded runtime stream controller with explicit snapshot/restore. 更多...
#include <VolumeFluidEmitter.h>
Public 成员函数 | |
| Result< unsigned > | emitParticle (VolumeFluid &solver, const VolumeFluidEmission &emission, float offset, float dt) |
| Emits one particle with Fluid3DEmitter's normalized intra-step position offset. | |
| Result< unsigned > | advance (VolumeFluid &solver, const VolumeFluidEmission &emission, float dt, float rate, unsigned maxPerStep=256, float minimumPoolFraction=0.5f) |
| Advances emission with at most maxPerStep particles; excess whole-particle credit is discarded. | |
| Result< unsigned > | advanceBurst (VolumeFluid &solver, const VolumeFluidEmission &emission, unsigned count, float minimumPoolFraction=0.5f) |
| Advances Fluid3D's BURST emission lifecycle for one actor group. | |
| bool | isEmitting () const noexcept |
| Returns the current Fluid3DEmitter isEmitting state in O(1), without snapshot allocation. | |
| VolumeFluidEmitterSnapshot | snapshot () const |
| Copies controller state; caller checkpoints solver/configuration at the same step boundary. | |
| Result< void > | restore (const VolumeFluidEmitterSnapshot &state) |
| Validates schema, kind and phase before atomic replacement; invokes no callbacks. | |
详细描述
Bounded runtime stream controller with explicit snapshot/restore.
Owns its fractional credit and RNG sequence. Caller injects dt and nozzle samples. No external reference is retained. Simulation-thread affine; no callbacks or reentrancy. Reconstructing this object resets the stream; replay supplies identical calls from construction.
在文件 VolumeFluidEmitter.h 第 207 行定义.
成员函数说明
◆ advance()
| Result< unsigned > eve::fluids::VolumeFluidEmitter::advance | ( | VolumeFluid & | solver, |
| const VolumeFluidEmission & | emission, | ||
| float | dt, | ||
| float | rate, | ||
| unsigned | maxPerStep = 256, |
||
| float | minimumPoolFraction = 0.5f |
||
| ) |
Advances emission with at most maxPerStep particles; excess whole-particle credit is discarded.
- 参数
-
minimumPoolFraction A stopped stream restarts only above this actor pool's free-capacity fraction.
dt is in [0,1/30], rate in [0,1000000], maxPerStep in [1,4096]. An emission speed of zero is an explicit disabled controller state and clears fractional credit. Failures preserve solver and controller state. Capacity exhaustion is successful zero emission.
在文件 VolumeFluidEmitter.cpp 第 246 行定义.
引用了 active, eve::fluids::VolumeFluidEmission::actorCapacity, eve::fluids::VolumeFluidParticle::actorGroup, eve::fluids::VolumeFluid::actorParticleCount(), eve::fluids::VolumeFluid::availableCapacity(), count, eve::fluids::Distribution, eve::fluids::VolumeFluidEmission::distribution, eve::Result< T >::failure(), eve::fluids::VolumeFluidEmission::prototype, rate, eve::fluids::VolumeFluidEmission::shape, eve::fluids::VolumeFluidEmission::speed, eve::Result< T >::success() , 以及 valid.
◆ advanceBurst()
| Result< unsigned > eve::fluids::VolumeFluidEmitter::advanceBurst | ( | VolumeFluid & | solver, |
| const VolumeFluidEmission & | emission, | ||
| unsigned | count, | ||
| float | minimumPoolFraction = 0.5f |
||
| ) |
Advances Fluid3D's BURST emission lifecycle for one actor group.
- 参数
-
count Complete burst size in [1,4096]. minimumPoolFraction Emission waits until the actor pool's free capacity is above this fraction.
The prototype actorGroup identifies the emitter actor. A burst is emitted atomically only when that group has no live particles; it becomes eligible again after all particles in the group expire or are killed. Insufficient capacity is a successful zero result. Linear actor scan plus the bounded existing burst generator; no retained solver reference, callbacks, or GPU work.
在文件 VolumeFluidEmitter.cpp 第 282 行定义.
引用了 active, eve::fluids::VolumeFluidEmission::actorCapacity, eve::fluids::VolumeFluidParticle::actorGroup, eve::fluids::VolumeFluid::actorParticleCount(), eve::fluids::VolumeFluid::availableCapacity(), count, eve::Result< T >::failure(), eve::fluids::VolumeFluidEmission::prototype, eve::Result< T >::success() , 以及 valid.
◆ emitParticle()
| Result< unsigned > eve::fluids::VolumeFluidEmitter::emitParticle | ( | VolumeFluid & | solver, |
| const VolumeFluidEmission & | emission, | ||
| float | offset, | ||
| float | dt | ||
| ) |
Emits one particle with Fluid3DEmitter's normalized intra-step position offset.
- 参数
-
offset Fraction of the current step's prescribed emission travel, in [0,1]. dt Current simulation-step duration in [0,1/30].
Returns one when admitted and zero when the actor/shared pool is full. The actor scan and capacity checks precede bounded one-particle construction. Failures preserve controller/solver.
在文件 VolumeFluidEmitter.cpp 第 224 行定义.
引用了 active, eve::fluids::VolumeFluidEmission::actorCapacity, eve::fluids::VolumeFluidParticle::actorGroup, eve::fluids::VolumeFluid::actorParticleCount(), eve::fluids::VolumeFluid::availableCapacity(), eve::fluids::Distribution, eve::fluids::VolumeFluidEmission::distribution, eve::Result< T >::failure(), offset, eve::fluids::VolumeFluidEmission::prototype, eve::fluids::VolumeFluidEmission::shape, eve::Result< T >::success() , 以及 valid.
◆ isEmitting()
|
inlinenoexcept |
Returns the current Fluid3DEmitter isEmitting state in O(1), without snapshot allocation.
在文件 VolumeFluidEmitter.h 第 237 行定义.
◆ restore()
| Result< void > eve::fluids::VolumeFluidEmitter::restore | ( | const VolumeFluidEmitterSnapshot & | state | ) |
Validates schema, kind and phase before atomic replacement; invokes no callbacks.
在文件 VolumeFluidEmitter.cpp 第 734 行定义.
引用了 eve::Result< T >::failure(), phase, state , 以及 eve::Result< T >::success().
◆ snapshot()
| VolumeFluidEmitterSnapshot eve::fluids::VolumeFluidEmitter::snapshot | ( | ) | const |
Copies controller state; caller checkpoints solver/configuration at the same step boundary.
在文件 VolumeFluidEmitter.cpp 第 731 行定义.
该类的文档由以下文件生成:
- src/modules/fluids/VolumeFluidEmitter.h
- src/modules/fluids/VolumeFluidEmitter.cpp