git-svn-id: svn://db.shs.com.ru/libs@75 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2016-01-18 14:41:29 +00:00
parent 5b523a65ae
commit d88b341070
28 changed files with 539 additions and 112 deletions

View File

@@ -24,8 +24,29 @@
#include "globject.h"
#include "glcamera.h"
class GLParticlesSystem: public GLObjectBase
class GLParticlesSystem: public QObject, public GLObjectBase
{
Q_OBJECT
Q_PROPERTY(float birthRate READ birthRate WRITE setBirthRate)
Q_PROPERTY(float lifeDuration READ lifeDuration WRITE setLifeDuration)
Q_PROPERTY(float size READ size WRITE setSize)
Q_PROPERTY(float enlargeSpeed READ enlargeSpeed WRITE setEnlargeSpeed)
Q_PROPERTY(float initialAngle READ initialAngle WRITE setInitialAngle)
Q_PROPERTY(float initialSpeed READ initialSpeed WRITE setInitialSpeed)
Q_PROPERTY(float speedDecay READ speedDecay WRITE setSpeedDecay)
Q_PROPERTY(float baseAngle READ baseAngle WRITE setBaseAngle)
Q_PROPERTY(QVector3D speedDirection READ speedDirection WRITE setSpeedDirection)
Q_PROPERTY(QVector3D emitterPosition READ emitterPosition WRITE setEmitterPosition)
Q_PROPERTY(QVector3D emitterDirection READ emitterDirection WRITE setEmitterDirection)
Q_PROPERTY(float lifeDurationJitter READ lifeDurationJitter WRITE setLifeDurationJitter)
Q_PROPERTY(float speedJitter READ speedJitter WRITE setSpeedJitter)
Q_PROPERTY(float speedDirectionJitter READ speedDirectionJitter WRITE setSpeedDirectionJitter)
Q_PROPERTY(float sizeJitter READ sizeJitter WRITE setSizeJitter)
Q_PROPERTY(float enlargeSpeedJitter READ enlargeSpeedJitter WRITE setEnlargeSpeedJitter)
Q_PROPERTY(float angleJitter READ angleJitter WRITE setAngleJitter)
Q_PROPERTY(bool active READ isActive WRITE setActive)
Q_PROPERTY(bool birthEnabled READ isBirthEnabled WRITE setBirthEnabled)
Q_PROPERTY(float fadeTime READ fadeTime WRITE setFadeTime)
public:
GLParticlesSystem(const QVector3D & pos = QVector3D());
~GLParticlesSystem() {;}
@@ -33,7 +54,7 @@ public:
enum Type {Cone, Omni, Box};
struct Particle {
Particle(float life_dur = 40.) {size = 1.; angle = lifeCurrent = 0.; speedDecay = 0.; lifeDuration = life_dur;}
Particle(float life_dur = 40.);
QVector3D pos;
QVector3D pos_h;
QVector3D speed;