Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00025
00028
00029 #ifndef THOR_PARTICLE_HPP
00030 #define THOR_PARTICLE_HPP
00031
00032 #include <Thor/Config.hpp>
00033
00034 #include <SFML/System/Time.hpp>
00035 #include <SFML/System/Vector2.hpp>
00036 #include <SFML/Graphics/Color.hpp>
00037
00038
00039 namespace thor
00040 {
00041
00044
00049 class THOR_API Particle
00050 {
00051
00052
00053 public:
00056 explicit Particle(sf::Time totalLifetime);
00057
00058
00059
00060
00061 public:
00062 sf::Vector2f position;
00063 sf::Vector2f velocity;
00064 float rotation;
00065 float rotationSpeed;
00066 sf::Vector2f scale;
00067 sf::Color color;
00068 unsigned int textureIndex;
00069
00070
00071
00072
00073 private:
00074 sf::Time passedLifetime;
00075 sf::Time totalLifetime;
00076
00077
00078
00079
00081 friend class ParticleSystem;
00082 friend sf::Time THOR_API getElapsedLifetime(const Particle& particle);
00083 friend sf::Time THOR_API getTotalLifetime(const Particle& particle);
00084 friend void THOR_API abandonParticle(Particle& particle);
00086 };
00087
00090 sf::Time THOR_API getElapsedLifetime(const Particle& particle);
00091
00094 sf::Time THOR_API getTotalLifetime(const Particle& particle);
00095
00098 sf::Time THOR_API getRemainingLifetime(const Particle& particle);
00099
00102 float THOR_API getElapsedRatio(const Particle& particle);
00103
00106 float THOR_API getRemainingRatio(const Particle& particle);
00107
00113 void THOR_API abandonParticle(Particle& particle);
00114
00116
00117 }
00118
00119 #endif // THOR_PARTICLE_HPP