V-Gears 0
Free Final Fantasy VII engine.
ParticleEntityRenderer.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 <OgreSceneNode.h>
21#include "../ParticleRenderer.h"
22
27
28 public:
29
34
39
45 virtual void CopyAttributesTo(ParticleRenderer* renderer);
46
52 const Ogre::String& GetMeshName() const;
53
59 void SetMeshName(const Ogre::String& mesh_name);
60
64 void Clear();
65
72 virtual void SetVisible(bool visible);
73
77 virtual void Initialize();
78
85 virtual void UpdateRenderQueue(
86 Ogre::RenderQueue* queue, ParticlePool<VisualParticle>& pool
87 );
88
89 protected:
90
94 std::vector<ParticleEntityAdditionalData*> all_additional_data_;
95
99 std::vector<ParticleEntityAdditionalData*> unassigned_additional_data_;
100
106 std::vector<Ogre::Entity*> entities_;
107
112
117};
118
Definition: ParticleEntityRendererDictionary.h:11
A particle entity renderer.
Definition: ParticleEntityRenderer.h:26
void Clear()
Clears all data in the entity.
Definition: ParticleEntityRenderer.cpp:68
virtual void SetVisible(bool visible)
Toggles the particle entity visibility.
Definition: ParticleEntityRenderer.cpp:92
virtual void Initialize()
Initializes the particle.
Definition: ParticleEntityRenderer.cpp:100
std::vector< ParticleEntityAdditionalData * > all_additional_data_
Additional data for the rendered.
Definition: ParticleEntityRenderer.h:94
virtual void UpdateRenderQueue(Ogre::RenderQueue *queue, ParticlePool< VisualParticle > &pool)
Adds the particle to the scene render queue.
Definition: ParticleEntityRenderer.cpp:150
virtual ~ParticleEntityRenderer()
Destructor.
Definition: ParticleEntityRenderer.cpp:39
Ogre::String mesh_name_
The mesh name for the particles.
Definition: ParticleEntityRenderer.h:116
std::vector< ParticleEntityAdditionalData * > unassigned_additional_data_
Additional data for the rendered that is not yet assigned.
Definition: ParticleEntityRenderer.h:99
const Ogre::String & GetMeshName() const
Retrieves the emitter's mesh name.
Definition: ParticleEntityRenderer.cpp:57
ParticleEntityRenderer()
Constructor.
Definition: ParticleEntityRenderer.cpp:26
virtual void CopyAttributesTo(ParticleRenderer *renderer)
Copies the atributtes to other renderer.
Definition: ParticleEntityRenderer.cpp:44
static ParticleEntityRendererDictionary::MeshName mesh_name_dictionary_
A dictionary of mesh names.
Definition: ParticleEntityRenderer.h:111
void SetMeshName(const Ogre::String &mesh_name)
Sets the emitter's mesh name.
Definition: ParticleEntityRenderer.cpp:62
std::vector< Ogre::Entity * > entities_
List of entities.
Definition: ParticleEntityRenderer.h:106
A particle renderer.
Definition: ParticleRenderer.h:28
Ogre::String String
Definition: TypeDefine.h:37