载入中...
搜索中...
未找到
eve::fluids::VolumeFluidEmitter类 参考final

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.

参数
minimumPoolFractionA 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.

参数
countComplete burst size in [1,4096].
minimumPoolFractionEmission 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.

参数
offsetFraction of the current step's prescribed emission travel, in [0,1].
dtCurrent 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()

bool eve::fluids::VolumeFluidEmitter::isEmitting ( ) const
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 行定义.

被这些函数引用 eve::fluids::captureVolumeFluidEmitterCheckpoint().


该类的文档由以下文件生成: