Nazara Engine
0.4
A fast, complete, cross-platform API designed for game development
ParticleGenerator.hpp
1
// Copyright (C) 2017 Jérôme Leclercq
2
// This file is part of the "Nazara Engine - Graphics module"
3
// For conditions of distribution and use, see copyright notice in Config.hpp
4
5
#pragma once
6
7
#ifndef NAZARA_PARTICLEGENERATOR_HPP
8
#define NAZARA_PARTICLEGENERATOR_HPP
9
10
#include <Nazara/Prerequesites.hpp>
11
#include <Nazara/Core/ObjectLibrary.hpp>
12
#include <Nazara/Core/ObjectRef.hpp>
13
#include <Nazara/Core/RefCounted.hpp>
14
#include <Nazara/Core/Signal.hpp>
15
#include <Nazara/Graphics/Config.hpp>
16
17
namespace
Nz
18
{
19
class
ParticleGenerator;
20
class
ParticleMapper;
21
class
ParticleGroup;
22
23
using
ParticleGeneratorConstRef = ObjectRef<const ParticleGenerator>;
24
using
ParticleGeneratorLibrary = ObjectLibrary<ParticleGenerator>;
25
using
ParticleGeneratorRef = ObjectRef<ParticleGenerator>;
26
27
class
NAZARA_GRAPHICS_API
ParticleGenerator
:
public
RefCounted
28
{
29
friend
ParticleGeneratorLibrary;
30
friend
class
Graphics
;
31
32
public
:
33
ParticleGenerator
() =
default
;
34
ParticleGenerator
(
const
ParticleGenerator
& generator);
35
virtual
~
ParticleGenerator
();
36
37
virtual
void
Generate(ParticleGroup& system,
ParticleMapper
& mapper,
unsigned
int
startId,
unsigned
int
endId) = 0;
38
39
// Signals:
40
NazaraSignal(OnParticleGeneratorRelease,
const
ParticleGenerator
*
/*particleGenerator*/
);
41
42
private
:
43
static
bool
Initialize();
44
static
void
Uninitialize();
45
46
static
ParticleGeneratorLibrary::LibraryMap s_library;
47
};
48
}
49
50
#endif // NAZARA_PARTICLEGENERATOR_HPP
Nz
TODO: Inherit SoundEmitter from Node.
Definition:
Algorithm.hpp:12
Nz::Graphics
Graphics class that represents the module initializer of Graphics.
Definition:
Graphics.hpp:15
Nz::ParticleMapper
Graphics class that represents the mapping between the internal buffer and the particle declaration...
Definition:
ParticleMapper.hpp:17
Nz::RefCounted
Core class that represents a reference with a counter.
Definition:
RefCounted.hpp:21
Nz::ParticleGenerator
Graphics class which generates particles.
Definition:
ParticleGenerator.hpp:27
include
Nazara
Graphics
ParticleGenerator.hpp
Generated by
1.8.13