V-Gears 0
Free Final Fantasy VII engine.
ParticleSystem.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2022 The V-Gears Team
3 *
4 * This file is part of V-Gears
5 *
6 * V-Gears is free software: you can redistribute it and/or modify it under
7 * terms of the GNU General Public License as published by the Free Software
8 * Foundation, version 3.0 (GPLv3) of the License.
9 *
10 * V-Gears is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#pragma once
17
18#include <OgreMovableObject.h>
19#include "ParticleTechnique.h"
20
26class ParticleSystem : public Ogre::MovableObject{
27
28 public:
29
33 ParticleSystem(const Ogre::String& name);
34
38 virtual ~ParticleSystem();
39
46
47 // realization of Ogre::MovableObject
48
55 const Ogre::String& getMovableType() const;
56
62 const Ogre::AxisAlignedBox& getBoundingBox() const;
63
69 Ogre::Real getBoundingRadius() const;
70
76 void _updateRenderQueue(Ogre::RenderQueue* queue);
77
87 Ogre::Renderable::Visitor* visitor, bool debug_renderables = false
88 ){};
89
97 void Update(Ogre::Real time_elapsed);
98
107
113 void AddTechnique(ParticleTechnique* technique);
114
119
120 private:
121
125 std::vector<ParticleTechnique*> techniques_;
126};
127
A particle system.
Definition: ParticleSystem.h:26
void AddTechnique(ParticleTechnique *technique)
Adds a technique to the system.
Definition: ParticleSystem.cpp:85
const Ogre::String & getMovableType() const
Retrieves the movable type.
Definition: ParticleSystem.cpp:45
ParticleTechnique * CreateTechnique()
Technique creator.
Definition: ParticleSystem.cpp:78
void DestroyAllTechniques()
Removes al techniques from the system.
Definition: ParticleSystem.cpp:90
void _updateRenderQueue(Ogre::RenderQueue *queue)
Adds the system to the scene render queue.
Definition: ParticleSystem.cpp:59
const Ogre::AxisAlignedBox & getBoundingBox() const
Retrieves the object bounding box.
Definition: ParticleSystem.cpp:50
virtual ~ParticleSystem()
Destructor.
Definition: ParticleSystem.cpp:24
std::vector< ParticleTechnique * > techniques_
List of the system techniques.
Definition: ParticleSystem.h:125
void CopyAttributesTo(ParticleSystem *ps)
Copies the system attributes to another ParticleSystem.
Definition: ParticleSystem.cpp:31
ParticleSystem(const Ogre::String &name)
Constructor.
Definition: ParticleSystem.cpp:21
Ogre::Real getBoundingRadius() const
Retrieves the bounding radius.
Definition: ParticleSystem.cpp:54
void Update(Ogre::Real time_elapsed)
Updates the system.
Definition: ParticleSystem.cpp:68
void visitRenderables(Ogre::Renderable::Visitor *visitor, bool debug_renderables=false)
Visits renderables.
Definition: ParticleSystem.h:86
A particle technique.
Definition: ParticleTechnique.h:28
Ogre::String String
Definition: TypeDefine.h:37