Brenta Engine 1.2
Loading...
Searching...
No Matches
particle_emitter_node_component.hpp
1// SPDX-License-Identifier: MIT
2// Author: Giovanni Santini
3// Mail: giovanni.santini@proton.me
4// Github: @San7o
5
6#pragma once
7
8#include <brenta/node.hpp>
9#include <brenta/renderer/particles.hpp>
10
11#include <tenno/memory.hpp>
12
13namespace brenta
14{
15
16class FrameBuffer;
17
19{
20public:
21
22 tenno::shared_ptr<ParticleEmitter> emitter;
23 tenno::weak_ptr<FrameBuffer> fb;
24
26 ParticleEmitterNodeComponent(tenno::shared_ptr<ParticleEmitter> e,
27 tenno::weak_ptr<FrameBuffer> fb)
28 : emitter(e), fb(fb) {}
29 ParticleEmitterNodeComponent(ParticleEmitter&& e, tenno::weak_ptr<FrameBuffer> fb)
30 {
31 this->emitter = tenno::make_shared<ParticleEmitter>(tenno::move(e));
32 this->fb = fb;
33 }
35 tenno::weak_ptr<FrameBuffer> fb)
36 {
37 this->emitter = tenno::make_shared<ParticleEmitter>(builder.build());
38 this->fb = fb;
39 }
40
41 void update(float delta_time) override;
42 void draw(const glm::mat4& world_matrix) override;
43
44};
45
46} // namespace brenta