source: nanovis/branches/1.1/ParticleEmitter.h @ 5722

Last change on this file since 5722 was 4889, checked in by ldelgass, 9 years ago

Merge r3611:3618 from trunk

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