载入中...
搜索中...
未找到
ParticlePlayback.cpp
浏览该文件的文档.
25 const float step = cfg.maxDeltaTime > 0.f ? std::min(cfg.fixedTimeStep, cfg.maxDeltaTime) : cfg.fixedTimeStep;
36 if (steps == maxSteps && sim.fixedTimeAccum >= step) sim.fixedTimeAccum = std::fmod(sim.fixedTimeAccum, step);
61 eve::Status::success((sim.paused || dt == 0.f) ? eve::StatusCode::NoOp : eve::StatusCode::Applied));
72float ParticleEmitter::getEmissionRateOverDistance() { return config()->emissionRateOverDistance; }
77void ParticleEmitter::setPlaybackSpeed(float speed) { config()->playbackSpeed = speed > 0.f ? speed : 0.f; }
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
static Status success(StatusCode code=StatusCode::Ok)
Construct a successful status with an explicit non-error outcome.
Definition Status.h:81
void setRandomSeed(int seed)
Select a deterministic seed and disable automatic seeding.
Definition ParticlePlayback.cpp:90
int getBufferSize()
Definition ParticlePlayback.cpp:189
void setPlaybackSpeed(float speed)
Scale simulation time; zero freezes playback.
Definition ParticlePlayback.cpp:77
void syncAttach()
Sync Config.x/y (and direction) from the attached bone. Also called by ParticleSimSystem.
Definition ParticleEmitter.cpp:1371
bool getLooping()
Return whether the finite emitter timeline repeats.
Definition ParticlePlayback.cpp:75
bool getAutoRandomSeed()
Return whether start() generates a new random seed.
Definition ParticlePlayback.cpp:102
void setAutoRandomSeed(bool enabled)
Generate a new random seed whenever start() is called.
Definition ParticlePlayback.cpp:101
float getEmissionRateOverDistance()
Return particles emitted per world unit travelled.
Definition ParticlePlayback.cpp:72
eve::Result< void > advance(const eve::SimulationStep &step)
Advance this emitter by one scheduler-owned simulation step.
Definition ParticlePlayback.cpp:64
void setEmissionRateOverDistance(float rate)
Set particles emitted per world unit travelled; zero disables it.
Definition ParticlePlayback.cpp:68
void setFixedTimeStep(float seconds, int maxSubSteps=8)
Configure fixed stepping and the per-frame catch-up limit; zero seconds disables it.
Definition ParticlePlayback.cpp:81
void setLooping(bool looping)
Enable or disable repeating a finite emitter timeline.
Definition ParticlePlayback.cpp:74
float getFixedTimeStep()
Return the fixed step in seconds, or zero for variable stepping.
Definition ParticlePlayback.cpp:88
Definition ParticleGraph.h:53
EVENGINE_API_DOMAINS float advanceEmitterSim(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim, float dt)
Apply playback speed and optional bounded fixed stepping before simulation.
Definition ParticlePlayback.cpp:12
bool spawnParticle(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim)
Spawn particle.
Definition ParticleEmitter.cpp:359
void stepEmitterSim(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim, float dt)
Step emitter sim.
Definition ParticleEmitter.cpp:415
@ InvalidArgument
@ Conflict
@ NoOp
@ Applied
float resolvedParameterScale(const std::string &target) const
Resolved parameter scale.
Definition ParticleEmitter.h:118
float playbackSpeed
Simulation time multiplier. 0 freezes playback without changing pause state.
Definition ParticleEmitter.h:99
float fixedTimeStep
Fixed simulation step in seconds (0 = variable step).
Definition ParticleEmitter.h:101
float fixedTimeAccum
Definition ParticleEmitter.h:273
eve::SimulationTick simulationTick
Last scheduler tick observed by the checked simulation API.
Definition ParticleEmitter.h:283
bool hasSimulationTick
Definition ParticleEmitter.h:284