CPU-authoritative deterministic 3D mesh-particle emitter. 更多...
#include <MeshParticleEmitter.h>
类 | |
| struct | Particle |
Public 成员函数 | |
| MeshParticleEmitter (MeshParticleEmitterConfig config={}) | |
| Construct an emitter and sanitize invalid scalar ranges. | |
| ~MeshParticleEmitter () | |
| Destroy owned particle state after its private type is complete. | |
| MeshParticleEmitter (const MeshParticleEmitter &)=delete | |
| MeshParticleEmitter & | operator= (const MeshParticleEmitter &)=delete |
| void | start () |
| Start from timeline zero and arm every configured burst. | |
| void | stop () noexcept |
| Stop automatic emission while allowing existing particles to expire. | |
| void | reset () |
| Remove every particle and reset timeline/random state. | |
| void | setOrigin (const glm::vec3 &origin) noexcept |
| Set the world-space origin copied by subsequent simulation steps. | |
| std::uint32_t | emit (std::uint32_t count) |
| Emit an immediate burst at the current origin. | |
| MeshParticleAdvanceReport | advance (float deltaSeconds) |
| Advance deterministic fixed-step simulation. | |
| std::vector< MeshParticleInstance > | snapshot () const |
| Build render transforms and colors in stable particle-ID order. | |
| const MeshParticleEmitterConfig & | config () const noexcept |
| Return immutable sanitized configuration. | |
| std::size_t | size () const noexcept |
| Return the number of live particles. | |
详细描述
CPU-authoritative deterministic 3D mesh-particle emitter.
The emitter owns particle state and retains no graphics resources. Given the same config, seed, origin, command sequence and delta sequence, snapshots are bitwise stable on the same floating-point implementation. Structural changes are deferred until each simulation step has finished iterating live particles.
在文件 MeshParticleEmitter.h 第 100 行定义.
构造及析构函数说明
◆ MeshParticleEmitter() [1/2]
|
explicit |
Construct an emitter and sanitize invalid scalar ranges.
在文件 MeshParticleEmitter.cpp 第 79 行定义.
引用了 a, eve::stylize::MeshParticleEmitterConfig::angularVelocityMax, eve::stylize::MeshParticleEmitterConfig::angularVelocityMin, b, eve::stylize::MeshParticleEmitterConfig::boxExtents, eve::stylize::MeshParticleEmitterConfig::bursts, eve::stylize::MeshParticleEmitterConfig::capacity, eve::stylize::MeshParticleEmitterConfig::colorGradient, eve::stylize::MeshParticleEmitterConfig::coneAngleRadians, eve::stylize::MeshParticleEmitterConfig::damping, eve::stylize::MeshParticleEmitterConfig::direction, eve::stylize::MeshParticleEmitterConfig::emissionRate, eve::stylize::MeshParticleEmitterConfig::fixedStepSeconds, eve::stylize::MeshParticleEmitterConfig::lifetimeMax, eve::stylize::MeshParticleEmitterConfig::lifetimeMin, eve::stylize::MeshParticleEmitterConfig::loopDurationSeconds, eve::stylize::MeshParticleEmitterConfig::maximumSubsteps, reset(), eve::stylize::MeshParticleEmitterConfig::rotationMaxRadians, eve::stylize::MeshParticleEmitterConfig::rotationMinRadians, eve::stylize::MeshParticleEmitterConfig::scaleCurve, eve::stylize::MeshParticleEmitterConfig::speedMax, eve::stylize::MeshParticleEmitterConfig::speedMin, eve::stylize::MeshParticleEmitterConfig::sphereRadius , 以及 eve::stylize::MeshParticleEmitterConfig::velocityCurve.
◆ ~MeshParticleEmitter()
|
default |
Destroy owned particle state after its private type is complete.
◆ MeshParticleEmitter() [2/2]
|
delete |
成员函数说明
◆ advance()
| MeshParticleAdvanceReport eve::stylize::MeshParticleEmitter::advance | ( | float | deltaSeconds | ) |
Advance deterministic fixed-step simulation.
- 参数
-
deltaSeconds Non-negative frame delta; invalid values advance nothing.
- 返回
- Per-call work, lifecycle and overflow counters.
在文件 MeshParticleEmitter.cpp 第 236 行定义.
引用了 eve::stylize::MeshParticleAdvanceReport::alive, eve::stylize::MeshParticleAdvanceReport::discardedTimeSeconds, eve::stylize::MeshParticleEmitterConfig::fixedStepSeconds, eve::stylize::MeshParticleEmitterConfig::maximumSubsteps , 以及 eve::stylize::MeshParticleAdvanceReport::simulatedSteps.
◆ config()
|
inlinenoexcept |
Return immutable sanitized configuration.
在文件 MeshParticleEmitter.h 第 149 行定义.
◆ emit()
| std::uint32_t eve::stylize::MeshParticleEmitter::emit | ( | std::uint32_t | count | ) |
Emit an immediate burst at the current origin.
- 参数
-
count Requested particle count.
- 返回
- Number accepted; capacity overflow is reflected by advance reports.
在文件 MeshParticleEmitter.cpp 第 128 行定义.
引用了 count.
◆ operator=()
|
delete |
◆ reset()
| void eve::stylize::MeshParticleEmitter::reset | ( | ) |
Remove every particle and reset timeline/random state.
在文件 MeshParticleEmitter.cpp 第 121 行定义.
引用了 start().
被这些函数引用 MeshParticleEmitter().
◆ setOrigin()
|
inlinenoexcept |
Set the world-space origin copied by subsequent simulation steps.
在文件 MeshParticleEmitter.h 第 129 行定义.
引用了 origin.
◆ size()
|
noexcept |
Return the number of live particles.
在文件 MeshParticleEmitter.cpp 第 77 行定义.
◆ snapshot()
| std::vector< MeshParticleInstance > eve::stylize::MeshParticleEmitter::snapshot | ( | ) | const |
Build render transforms and colors in stable particle-ID order.
在文件 MeshParticleEmitter.cpp 第 258 行定义.
引用了 eve::stylize::MeshParticleEmitterConfig::colorEnd, eve::stylize::MeshParticleEmitterConfig::colorGradient, eve::stylize::MeshParticleEmitterConfig::colorStart, model, scale, eve::stylize::MeshParticleEmitterConfig::scaleCurve, eve::stylize::MeshParticleEmitterConfig::scaleEnd, eve::stylize::MeshParticleEmitterConfig::scaleStart , 以及 t.
◆ start()
| void eve::stylize::MeshParticleEmitter::start | ( | ) |
Start from timeline zero and arm every configured burst.
在文件 MeshParticleEmitter.cpp 第 112 行定义.
引用了 eve::stylize::MeshParticleEmitterConfig::randomSeed.
被这些函数引用 reset().
◆ stop()
|
inlinenoexcept |
Stop automatic emission while allowing existing particles to expire.
在文件 MeshParticleEmitter.h 第 123 行定义.
该类的文档由以下文件生成:
- src/modules/stylize/MeshParticleEmitter.h
- src/modules/stylize/MeshParticleEmitter.cpp