载入中...
搜索中...
未找到
ParticlesCapabilities.cpp
浏览该文件的文档.
1#include "common/Capability.h"
5
6#include <string>
7
8namespace eve::particles {
9namespace {
10
11class ParticlesQueryImpl final : public eve::IParticlesQuery {
12public:
13 int emitterCount() override {
14 auto *p = eve::ModuleManager::getInstance<Particles>("Particles");
15 return p ? p->getEmitterCount() : 0;
16 }
17
18 bool createEmitter(int bufferSize, float x, float y, const std::string &preset, int count,
19 float *outX, float *outY, int *outCount) override {
20 auto *p = eve::ModuleManager::getInstance<Particles>("Particles");
21 if (!p) return false;
22 auto *em = p->newEmitter(bufferSize > 0 ? bufferSize : 1000);
23 if (!em) return false;
24 em->setPosition(x, y);
25 if (!preset.empty()) em->applyPreset(preset);
26 em->start();
27 em->emit(count);
28 if (outX) *outX = em->getX();
29 if (outY) *outY = em->getY();
30 if (outCount) *outCount = em->getCount();
31 return true;
32 }
33};
34
35} // namespace
36
38 static ParticlesQueryImpl impl;
40}
41
42} // namespace eve::particles
void * impl
int y
Definition Grass.cpp:135
int x
Definition Grass.cpp:135
glm::vec4 p[6]
Particle system query surface (provided by the particles module).
I * query()
Definition Capability.h:77