source: nanovis/trunk/ParticleEmitter.h @ 4635

Last change on this file since 4635 was 3618, checked in by ldelgass, 11 years ago

Some fixes for particle system compile (still doesn't work).

File size: 1.9 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright (c) 2004-2013  HUBzero Foundation, LLC
4 *
5 */
6#ifndef NV_PARTICLEEMITTER_H
7#define NV_PARTICLEEMITTER_H
8
9#include <string>
10
11#include <vrmath/Vector3f.h>
12
13namespace nv {
14
15class ParticleEmitter
16{
17public:
18    ParticleEmitter();
19
20    void setName(const std::string& name);
21    void setPosition(float x, float y, float z);
22    void setMinMaxLifeTime(float minLifeTime, float maxLifeTime);
23    void setMaxPositionOffset(float offsetX, float offsetY, float offsetZ);
24    void setMinMaxNumOfNewParticles(int minNum, int maxNum);
25
26    void setVectorField();
27    void setEnabled(bool enabled);
28    bool isEnabled() const;
29
30    std::string _name;
31    vrmath::Vector3f _position;
32
33    vrmath::Vector3f _oldPosition;
34
35    float _minLifeTime;
36    float _maxLifeTime;
37
38    // [0..1] * _maxPositionOffset;
39    vrmath::Vector3f _maxPositionOffset;
40
41    int _minNumOfNewParticles;
42    int _maxNumOfNewParticles;
43
44    bool _enabled;
45};
46
47inline void ParticleEmitter::setName(const std::string& name)
48{
49    _name = name;
50}
51
52inline void ParticleEmitter::setPosition(float x, float y, float z)
53{
54    _position.x = x;
55    _position.y = y;
56    _position.z = z;
57}
58
59inline void ParticleEmitter::setMinMaxLifeTime(float minLifeTime, float maxLifeTime)
60{
61    _minLifeTime = minLifeTime;
62    _maxLifeTime = maxLifeTime;
63}
64
65inline void ParticleEmitter::setMaxPositionOffset(float offsetX, float offsetY, float offsetZ)
66{
67    _maxPositionOffset.x = offsetX;
68    _maxPositionOffset.y = offsetY;
69    _maxPositionOffset.z = offsetZ;
70}
71
72inline void ParticleEmitter::setMinMaxNumOfNewParticles(int minNum, int maxNum)
73{
74    _minNumOfNewParticles = minNum;
75    _maxNumOfNewParticles = maxNum;
76}
77
78inline void ParticleEmitter::setEnabled(bool enabled)
79{
80    _enabled = enabled;
81}
82
83inline bool ParticleEmitter::isEnabled() const
84{
85    return _enabled;
86}
87
88}
89
90#endif
Note: See TracBrowser for help on using the repository browser.