载入中...
搜索中...
未找到
ParticleEmitter.h
浏览该文件的文档.
481bool sampleSkinSpawn(ParticleEmitter::SkinSource &skinSrc, ParticleEmitter::Sim &sim, float &outX,
Evaluated local (and optional world) pose for an AnimSkeleton. Script type: AnimPose.
Definition AnimPose.h:15
3D bone hierarchy + bind-pose local TRS for skeletal animation. Independent of ik::Skeleton3D (FABRIK...
Definition AnimSkeleton.h:14
CPU linear-blend skinning binding for one mesh against an AnimSkeleton.
Definition AnimSkin.h:25
Runtime Spine skeleton pose (local + world bone transforms, slot attachments). Script type: SpineSkel...
Definition SpineSkeleton.h:14
Definition Canvas.h:16
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:17
Script-facing 2D skeleton + pose state (ik::skeleton2d + ik::ecs2d). Bone indices are stable after ea...
Definition Skeleton2D.h:12
Script-facing 3D skeleton + pose state (ik::skeleton3d + ik::ecs3d). Local angles are yaw/pitch in th...
Definition Skeleton3D.h:11
Multi-point scalar curve sampled with linear interpolation between points. Empty curve means "use the...
Definition ParticleCurve.h:88
ECS emitter entity. Script configures components; ParticleSimSystem / ParticleRenderSystem drive per-...
Definition ParticleEmitter.h:70
bool getAutoReload()
Definition ParticleEmitter.cpp:1364
void setPrewarm(float seconds)
Definition ParticleEmitter.cpp:1033
void applyPreset(const std::string &name)
Named preset: "spark" / "smoke" / "fire". Unknown → no-op.
Definition ParticleEmitter.cpp:1298
void addSizeCurvePoint(float t, float v)
Definition ParticleEmitter.cpp:1200
void setMaxDeltaTime(float seconds)
Definition ParticleEmitter.cpp:1116
void setGpuSimulation(bool enable)
Definition ParticleEmitter.cpp:1075
void clearVelocityCurve()
Definition ParticleEmitter.cpp:1053
void setFlipbook(int hframes, int vframes, float framesPerSecond=0.f, float randomStart=0.f)
Definition ParticleEmitter.cpp:1184
void addColorStop(float t, float r, float g, float b, float a)
Definition ParticleEmitter.cpp:1194
void setSkinBoneFilter(int skeletonBoneIndex, float minWeight=0.f)
Definition ParticleEmitter.cpp:1489
float getParticleHeight()
Definition ParticleEmitter.cpp:1002
void setLimitVelocity(float maxSpeed)
Definition ParticleEmitter.cpp:1049
void setWorldCollision(bool enabled)
Definition ParticleEmitter.cpp:1103
void addVelocityCurvePoint(float t, float v)
Definition ParticleEmitter.cpp:1055
void attachToSkeleton2D(eve::ik::Skeleton2D *skeleton, int boneId)
Definition ParticleEmitter.cpp:1408
void moveTo(float x, float y)
Definition ParticleEmitter.cpp:924
void attachToSkeleton3D(eve::ik::Skeleton3D *skeleton, int boneId)
Definition ParticleEmitter.cpp:1419
void setSpread(float radians)
Definition ParticleEmitter.cpp:950
void clearSizeCurve()
Definition ParticleEmitter.cpp:1198
void setSpin(float minSpin, float maxSpin)
Definition ParticleEmitter.cpp:1014
float getEmissionAreaY()
Definition ParticleEmitter.cpp:993
void setLayer(int layer)
Definition ParticleEmitter.cpp:1222
float getPrewarmSeconds()
Definition ParticleEmitter.cpp:1037
void setTexture(graphics::Texture *texture)
Definition ParticleEmitter.cpp:1216
bool hasSkinSource()
Definition ParticleEmitter.cpp:1521
void setEmitterLifetime(float seconds)
Definition ParticleEmitter.cpp:944
void setPosition(float x, float y)
Definition ParticleEmitter.cpp:919
int getBufferSize()
Definition ParticleEmitter.cpp:1296
void setRenderMode(const std::string &mode, float stretchFactor=1.f)
Definition ParticleEmitter.cpp:1105
void attachToSpineBone(animation::SpineSkeleton *spine, int boneIndex)
Definition ParticleEmitter.cpp:1390
void setVisible(bool visible)
Definition ParticleEmitter.cpp:1225
static ParticleEmitter * createEmitter(int bufferSize=1000)
Definition ParticleEmitter.cpp:903
void setSkinBoneFilterByName(animation::AnimSkeleton *skeleton, const std::string &boneName, float minWeight=0.f)
Definition ParticleEmitter.cpp:1496
float getEmissionRate()
Definition ParticleEmitter.cpp:933
bool loadConfig(const std::string &path)
Definition ParticleEmitter.cpp:1357
bool getGpuSimulation()
Definition ParticleEmitter.cpp:1080
void setCollisionBounds(bool enabled, float minX, float minY, float maxX, float maxY)
Definition ParticleEmitter.cpp:1093
std::string getAttachKind()
"none" | "anim" | "spine" | "ik2d" | "ik3d"
Definition ParticleEmitter.cpp:1460
std::string getBlendMode()
Definition ParticleEmitter.cpp:1172
void setSkinPlane(const std::string &plane)
Definition ParticleEmitter.cpp:1505
void setSizes(float startScale, float endScale)
Definition ParticleEmitter.cpp:1004
float getParticleLifetimeMin()
Definition ParticleEmitter.cpp:941
graphics::Texture * getTexture()
Definition ParticleEmitter.cpp:1217
void setRadialAcceleration(float minA, float maxA)
Definition ParticleEmitter.cpp:969
float getParticleWidth()
Definition ParticleEmitter.cpp:1001
void setSpeed(float minSpeed, float maxSpeed)
Definition ParticleEmitter.cpp:955
void setBlendMode(const std::string &mode)
Definition ParticleEmitter.cpp:1163
void setDamping(float perSecond)
Definition ParticleEmitter.cpp:1045
void addForceField(float x, float y, float radius, float strength, float falloff=1.f)
Definition ParticleEmitter.cpp:1132
void setSkinScale(float scale)
Definition ParticleEmitter.cpp:1509
void setCanvas(graphics::Canvas *canvas)
Definition ParticleEmitter.cpp:1219
int getAttachBone()
Definition ParticleEmitter.cpp:1458
void attachToBone(animation::AnimPose *pose, int boneIndex)
Definition ParticleEmitter.cpp:1367
void setOverflowMode(const std::string &mode)
Definition ParticleEmitter.cpp:1111
void setStartRotation(float minDeg, float maxDeg)
Definition ParticleEmitter.cpp:1020
void setCamera(graphics::Camera2D *camera)
Definition ParticleEmitter.cpp:1220
void setLinearAcceleration(float xmin, float ymin, float xmax, float ymax)
Definition ParticleEmitter.cpp:961
void emitFromSkin(int count)
Burst-emit count particles from the current skinned surface.
Definition ParticleEmitter.cpp:1523
void syncAttach()
Sync Config.x/y (and direction) from the attached bone. Also called by ParticleSimSystem.
Definition ParticleEmitter.cpp:1476
void setTangentialAcceleration(float minA, float maxA)
Definition ParticleEmitter.cpp:975
void setEmissionRate(float rate)
Definition ParticleEmitter.cpp:929
bool applyConfig(const std::string &json)
Definition ParticleEmitter.cpp:1353
float getEmissionAreaX()
Definition ParticleEmitter.cpp:992
void setSkinSource(animation::AnimSkin *skin, animation::AnimPose *pose)
Definition ParticleEmitter.cpp:1480
void addRotationCurvePoint(float t, float v)
Definition ParticleEmitter.cpp:1204
void setCollision(const std::string &mode, float radius=0.f, float restitution=0.6f, float lifetimeLoss=0.f)
Definition ParticleEmitter.cpp:1082
void clearRotationCurve()
Definition ParticleEmitter.cpp:1202
float getEmitterLifetime()
Definition ParticleEmitter.cpp:945
void addSubEmitter(ParticleEmitter *target, const std::string &trigger, float inheritVelocity=0.f)
Definition ParticleEmitter.cpp:1120
void setColorEnd(float r, float g, float b, float a=1.f)
Definition ParticleEmitter.cpp:1212
void clearSubEmitters()
Definition ParticleEmitter.cpp:1130
void setEmissionArea(const std::string &type, float x, float y)
Definition ParticleEmitter.cpp:981
void setColorStart(float r, float g, float b, float a=1.f)
Definition ParticleEmitter.cpp:1208
void setNoise(float strength, float frequency=1.f, float speed=1.f)
Definition ParticleEmitter.cpp:1068
void attachToSpineBoneByName(animation::SpineSkeleton *spine, const std::string &boneName)
Definition ParticleEmitter.cpp:1401
void clearColorGradient()
Definition ParticleEmitter.cpp:1192
float getParticleLifetimeMax()
Definition ParticleEmitter.cpp:942
void setFollowBoneRotation(bool enable)
Definition ParticleEmitter.cpp:1448
void setShader(graphics::Shader *shader)
Definition ParticleEmitter.cpp:1146
void setDirection(float radians)
Definition ParticleEmitter.cpp:947
void setAutoReload(bool enable)
Definition ParticleEmitter.cpp:1363
std::string getConfigPath()
Definition ParticleEmitter.cpp:1365
void setSizeVariation(float variation)
Definition ParticleEmitter.cpp:1009
void attachToBoneByName(animation::AnimPose *pose, animation::AnimSkeleton *skeleton, const std::string &boneName)
Definition ParticleEmitter.cpp:1378
void clearSkinSource()
Definition ParticleEmitter.cpp:1511
std::string getEmissionAreaType()
Definition ParticleEmitter.cpp:991
void setSimulationSpace(const std::string &space)
Definition ParticleEmitter.cpp:1064
void setAttachOffset(float x, float y, float z)
Definition ParticleEmitter.cpp:1430
void setLights(bool enabled, float radius=120.f, float intensity=1.f, float r=1.f, float g=1.f, float b=1.f, int maxLights=4)
Definition ParticleEmitter.cpp:1149
float getSizeVariation()
Definition ParticleEmitter.cpp:1012
void setParticleLifetime(float minLife, float maxLife)
Definition ParticleEmitter.cpp:935
void clearForceFields()
Definition ParticleEmitter.cpp:1144
void addBurst(float time, int count)
Definition ParticleEmitter.cpp:1026
void setAttachPlane(const std::string &plane)
Definition ParticleEmitter.cpp:1438
graphics::Shader * getShader()
Definition ParticleEmitter.cpp:1147
void setInheritVelocity(float fraction)
Definition ParticleEmitter.cpp:1059
bool getLightsEnabled()
Definition ParticleEmitter.cpp:1161
void setAttachScale(float scale)
Definition ParticleEmitter.cpp:1443
void setGravity(float x, float y)
Definition ParticleEmitter.cpp:1039
void setParticleSize(float width, float height)
Definition ParticleEmitter.cpp:995
Multi-stop color gradient sampled with linear interpolation between stops. Stops are kept sorted by t...
Definition ParticleCurve.h:29
Definition Animation.cpp:29
Definition ComputeShader.cpp:3
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition AnimTrail.h:6
glm::vec4 Color
RGBA color used by every graphics draw call. Lives inside eve::graphics so including a graphics heade...
Definition Color.h:13
Definition ChainSolver.h:10
Definition ParticleConfig.cpp:17
bool stepEmitterSimGpu(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim, ParticleEmitter::GpuSim &gpu, float dt)
GPU-accelerated integration step; false = unavailable, caller falls back to CPU.
Definition ParticleEmitter.cpp:691
void spawnParticleAt(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim, float x, float y)
Definition ParticleEmitter.cpp:324
void setWorldCollisionResolver(WorldCollisionFn fn)
Definition ParticleEmitter.cpp:320
bool(*)(float x, float y, float radius, float &nx, float &ny) WorldCollisionFn
World collision query used by emitters with worldCollision enabled.
Definition ParticleEmitter.h:475
void spawnParticle(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim)
Definition ParticleEmitter.cpp:336
void stepEmitterSim(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &sim, float dt)
Definition ParticleEmitter.cpp:389
WorldCollisionFn getWorldCollisionResolver()
Definition ParticleEmitter.cpp:322
bool sampleSkinSpawn(ParticleEmitter::SkinSource &skinSrc, ParticleEmitter::Sim &sim, float &outX, float &outY)
Definition ParticleEmitter.cpp:351
void syncEmitterSources(ParticleEmitter::Config &cfg, ParticleEmitter::Sim &, ParticleEmitter::Attach &attach, ParticleEmitter::SkinSource &skinSrc)
Sync bone attach + refresh skin cache; call before stepEmitterSim when using Attach/SkinSource.
Definition ParticleEmitter.cpp:362
Optional bone attachment. When enabled, syncAttach() writes Config.x/y (and optionally direction) fro...
Definition ParticleEmitter.h:238
std::string plane
"xy" | "xz" | "yz" — axes mapped to particle plane (3D sources).
Definition ParticleEmitter.h:252
animation::SpineSkeleton * spine
Definition ParticleEmitter.h:244
eve::ik::Skeleton2D * ik2d
Definition ParticleEmitter.h:245
animation::AnimPose * pose
Definition ParticleEmitter.h:242
eve::ik::Skeleton3D * ik3d
Definition ParticleEmitter.h:246
bool followRotation
Definition ParticleEmitter.h:254
animation::AnimSkeleton * skeleton
Definition ParticleEmitter.h:243
Timed burst emission (fired once while the emitter is active).
Definition ParticleEmitter.h:78
Radial attract/repel force fields (strength > 0 attract, < 0 repel).
Definition ParticleEmitter.h:147
float radius
Definition ParticleEmitter.h:150
float strength
Definition ParticleEmitter.h:151
float falloff
Definition ParticleEmitter.h:152
Emitter-level 2D light emission (pooled Light2D entities).
Definition ParticleEmitter.h:156
bool enabled
Definition ParticleEmitter.h:157
float radius
Definition ParticleEmitter.h:159
float intensity
Definition ParticleEmitter.h:160
Script-linked sub-emitters (birth / death / collision triggers).
Definition ParticleEmitter.h:166
std::string trigger
Definition ParticleEmitter.h:168
float inheritVelocity
Definition ParticleEmitter.h:169
ParticleEmitter * target
Definition ParticleEmitter.h:167
float limitVelocity
Max speed; 0 = unlimited. Applied after forces each step.
Definition ParticleEmitter.h:111
float prewarmSeconds
Prewarm seconds simulated in start() so the effect is pre-filled.
Definition ParticleEmitter.h:142
float tangentialMax
Definition ParticleEmitter.h:97
int hframes
Flipbook grid. 1x1 = static full texture. frameRate = frames/sec (0 = static).
Definition ParticleEmitter.h:176
float noiseStrength
Turbulence: random per-particle acceleration scaled by strength.
Definition ParticleEmitter.h:119
float noiseFrequency
Definition ParticleEmitter.h:120
float stretchFactor
Definition ParticleEmitter.h:136
bool gpuSimulation
Opt-in GPU-accelerated simulation (falls back to CPU when unavailable).
Definition ParticleEmitter.h:144
float emitterLife
Definition ParticleEmitter.h:89
float sizeVariation
Definition ParticleEmitter.h:102
float frameRandomStart
0..1 fraction: randomize the starting frame up to this fraction of the sheet.
Definition ParticleEmitter.h:180
std::string simSpace
"world" (default) or "local" (particles track the emitter).
Definition ParticleEmitter.h:117
bool collisionBoundsEnabled
Definition ParticleEmitter.h:127
ParticleCurve rotationCurve
Optional extra rotation (degrees) over lifetime; added on top of spin.
Definition ParticleEmitter.h:186
std::vector< Burst > bursts
Definition ParticleEmitter.h:145
ParticleEmitter * entity
Definition ParticleEmitter.h:193
ParticleCurve sizeCurve
Optional size scale curve over lifetime; overrides sizeStart/sizeEnd.
Definition ParticleEmitter.h:184
float startRotMin
Initial rotation in degrees (random between min/max; radians at sim time).
Definition ParticleEmitter.h:173
std::string overflowMode
Buffer-full strategy: "drop" (default) | "pause" | "warn".
Definition ParticleEmitter.h:138
float emissionRate
Definition ParticleEmitter.h:86
ParticleCurve velocityCurve
Optional speed multiplier curve over lifetime.
Definition ParticleEmitter.h:113
ParticleGradient colorGradient
Optional multi-stop gradient; overrides colorStart/colorEnd when non-empty.
Definition ParticleEmitter.h:182
float startRotMax
Definition ParticleEmitter.h:174
std::vector< ForceField > forceFields
Definition ParticleEmitter.h:154
float collisionRadius
Definition ParticleEmitter.h:124
struct eve::particles::ParticleEmitter::Config::LightCfg lights
float inheritVelocity
Fraction [0,1] of the emitter's current velocity added to new particles.
Definition ParticleEmitter.h:115
float collisionLifetimeLoss
Definition ParticleEmitter.h:126
float tangentialMin
Definition ParticleEmitter.h:97
std::vector< SubEmitter > subEmitters
Definition ParticleEmitter.h:171
float collisionRestitution
Definition ParticleEmitter.h:125
bool worldCollision
Query the engine-level world collision resolver each step.
Definition ParticleEmitter.h:133
std::string collisionMode
"none" | "kill" | "bounce" | "stop" on collision.
Definition ParticleEmitter.h:123
std::string renderMode
"billboard" (default) | "stretched" (elongate along velocity).
Definition ParticleEmitter.h:135
graphics::Texture * texture
Definition ParticleEmitter.h:211
graphics::Camera2D * camera
Definition ParticleEmitter.h:213
graphics::BlendMode blend
Definition ParticleEmitter.h:214
graphics::Canvas * canvas
Definition ParticleEmitter.h:212
graphics::Shader * shader
Definition ParticleEmitter.h:215
GPU-accelerated simulation state (see ParticleGpuKernel.h for layout).
Definition ParticleEmitter.h:284
bool initialized
Definition ParticleEmitter.h:286
std::shared_ptr< eve::gpgpu::GpuBuffer > buffer
Definition ParticleEmitter.h:288
std::vector< float > mirror
Definition ParticleEmitter.h:289
Pooled Light2D entities driven by ParticleLightSystem (lights.enabled).
Definition ParticleEmitter.h:279
std::vector< graphics::Light2D * > pool
Definition ParticleEmitter.h:280
Bound config file for hot reload (empty path = unbound).
Definition ParticleEmitter.h:221
bool autoReload
Definition ParticleEmitter.h:225
std::string texturePath
Definition ParticleEmitter.h:223
std::vector< Particle > particles
Definition ParticleEmitter.h:197
bool overflowWarned
Definition ParticleEmitter.h:206
Optional skinned-mesh surface source. When enabled, newly spawned particles sample random (optionally...
Definition ParticleEmitter.h:262
std::vector< int > candidates
Vertex indices eligible for sampling (rebuilt when filter changes).
Definition ParticleEmitter.h:273
float minWeight
Definition ParticleEmitter.h:267
animation::AnimSkin * skin
Definition ParticleEmitter.h:263
int filterBone
Definition ParticleEmitter.h:266
int lastSkinnedFrame
Definition ParticleEmitter.h:275
animation::AnimSkeleton * skeleton
Definition ParticleEmitter.h:265
animation::AnimPose * pose
Definition ParticleEmitter.h:264
bool candidatesDirty
Definition ParticleEmitter.h:274
float frame
Flipbook frame progress (float frame index; grid resolved at render).
Definition ParticleEmitter.h:61