载入中...
搜索中...
未找到
MeshParticleEmitter.cpp
浏览该文件的文档.
22Value sampleKeys(const std::vector<Key>& keys, float time, Value fallback, Interpolate interpolate) {
84 config_.lifetimeMax = std::max(config_.lifetimeMin, finiteOr(config_.lifetimeMax, config_.lifetimeMin));
90 config_.coneAngleRadians = std::clamp(finiteOr(config_.coneAngleRadians, 0.f), 0.f, glm::pi<float>());
154 return glm::vec3(glm::rotate(glm::mat4(1.f), std::acos(alignment), axis) * glm::vec4(local, 0.f));
172std::uint32_t MeshParticleEmitter::spawn(std::uint32_t count, MeshParticleAdvanceReport* report) {
173 const std::uint32_t available = config_.capacity - static_cast<std::uint32_t>(particles_.size());
MeshParticleEmitter(MeshParticleEmitterConfig config={})
Construct an emitter and sanitize invalid scalar ranges.
Definition MeshParticleEmitter.cpp:79
std::uint32_t emit(std::uint32_t count)
Emit an immediate burst at the current origin.
Definition MeshParticleEmitter.cpp:128
std::size_t size() const noexcept
Return the number of live particles.
Definition MeshParticleEmitter.cpp:77
std::vector< MeshParticleInstance > snapshot() const
Build render transforms and colors in stable particle-ID order.
Definition MeshParticleEmitter.cpp:258
void reset()
Remove every particle and reset timeline/random state.
Definition MeshParticleEmitter.cpp:121
MeshParticleAdvanceReport advance(float deltaSeconds)
Advance deterministic fixed-step simulation.
Definition MeshParticleEmitter.cpp:236
void start()
Start from timeline zero and arm every configured burst.
Definition MeshParticleEmitter.cpp:112
~MeshParticleEmitter()
Destroy owned particle state after its private type is complete.
Vec3 interpolate(Vec3 start, Vec3 end, float amount) noexcept
Interpolate.
Definition ClimbingTrajectory.h:16
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
eve::Color Color
RGBA color used by every graphics draw call. Lives inside eve::graphics so including a graphics heade...
Definition Color.h:13
Definition MeshVfxPackage.h:10
Definition Container.h:602
Observable result of advancing one mesh-particle emitter.
Definition MeshParticleEmitter.h:83
float discardedTimeSeconds
Definition MeshParticleEmitter.h:89
std::uint32_t simulatedSteps
Definition MeshParticleEmitter.h:84
std::uint32_t alive
Definition MeshParticleEmitter.h:88
Deterministic simulation and emission settings for a 3D mesh emitter.
Definition MeshParticleEmitter.h:38
std::vector< MeshParticleBurst > bursts
Definition MeshParticleEmitter.h:71
std::uint32_t randomSeed
Definition MeshParticleEmitter.h:68
float coneAngleRadians
Definition MeshParticleEmitter.h:49
float emissionRate
Definition MeshParticleEmitter.h:40
std::vector< MeshParticleScalarKey > velocityCurve
Optional normalized-age velocity multiplier; empty evaluates to one.
Definition MeshParticleEmitter.h:63
std::uint32_t capacity
Definition MeshParticleEmitter.h:39
std::uint32_t maximumSubsteps
Definition MeshParticleEmitter.h:67
glm::vec3 direction
Definition MeshParticleEmitter.h:45
glm::vec3 boxExtents
Definition MeshParticleEmitter.h:47
graphics::Color colorEnd
Definition MeshParticleEmitter.h:59
float scaleStart
Definition MeshParticleEmitter.h:56
float lifetimeMax
Definition MeshParticleEmitter.h:42
float angularVelocityMax
Definition MeshParticleEmitter.h:55
std::vector< MeshParticleScalarKey > scaleCurve
Optional normalized-age scale multiplier; empty uses scaleStart/scaleEnd.
Definition MeshParticleEmitter.h:61
std::vector< MeshParticleColorKey > colorGradient
Optional normalized-age color gradient; empty uses colorStart/colorEnd.
Definition MeshParticleEmitter.h:65
MeshParticleShape shape
Definition MeshParticleEmitter.h:46
float lifetimeMin
Definition MeshParticleEmitter.h:41
glm::vec3 gravity
Definition MeshParticleEmitter.h:50
float fixedStepSeconds
Definition MeshParticleEmitter.h:66
float rotationMinRadians
Definition MeshParticleEmitter.h:52
graphics::Color colorStart
Definition MeshParticleEmitter.h:58
float angularVelocityMin
Definition MeshParticleEmitter.h:54
float loopDurationSeconds
Definition MeshParticleEmitter.h:69
float sphereRadius
Definition MeshParticleEmitter.h:48
float rotationMaxRadians
Definition MeshParticleEmitter.h:53
glm::vec3 velocity
Definition MeshParticleEmitter.cpp:68
float rotationRadians
Definition MeshParticleEmitter.cpp:71
std::uint64_t stableId
Definition MeshParticleEmitter.cpp:66
glm::vec3 position
Definition MeshParticleEmitter.cpp:67
float lifetime
Definition MeshParticleEmitter.cpp:70
float angularVelocity
Definition MeshParticleEmitter.cpp:72