source: trunk/packages/vizservers/nanovis/NvParticleAdvectionShader.h @ 1380

Last change on this file since 1380 was 1331, checked in by vrinside, 15 years ago

Working with managing the life time of particles.

File size: 1.7 KB
Line 
1#ifndef __NV_PARTICLE_ADV_SHADER_H__
2#define __NV_PARTICLE_ADV_SHADER_H__
3
4#include "Vector3.h"
5#include "NvShader.h"
6
7class NvParticleAdvectionShader : public NvShader {
8    CGparameter _posTimestepParam;
9    CGparameter _velTexParam;
10    //CGparameter _tfTexParam;
11    CGparameter _posTexParam;
12    CGparameter _initPosTexParam;
13    CGparameter _scaleParam;
14    CGparameter _maxParam;
15    CGparameter _modeParam;
16    unsigned int _velocityVolumeID;
17    Vector3 _scale;
18    float _max;
19    float _timeStep;
20
21    int _mode;
22
23public :
24    NvParticleAdvectionShader();
25    ~NvParticleAdvectionShader();
26
27private :
28    void init();
29public :
30    //void bind(unsigned int texID, unsigned int tfTexID, unsigned int initPosTexID);
31    void bind(unsigned int texID, unsigned int initPosTexID);
32    void unbind();
33    void setScale(const Vector3& scale);
34    void setVelocityVolume(unsigned int texID, float max);
35    void setTimeStep(float timeStep);
36    void setRenderMode(int mode);
37};
38
39inline void NvParticleAdvectionShader::setTimeStep(float timeStep)
40{
41    _timeStep = timeStep;
42}
43
44inline void NvParticleAdvectionShader::unbind()
45{
46     cgGLDisableProfile(CG_PROFILE_FP30);
47   
48     cgGLDisableTextureParameter(_velTexParam);
49     cgGLDisableTextureParameter(_posTexParam);
50     //cgGLDisableTextureParameter(_tfTexParam);
51     cgGLDisableTextureParameter(_initPosTexParam);
52}
53
54inline void NvParticleAdvectionShader::setScale(const Vector3& scale)
55{
56    _scale = scale;
57}
58
59inline void NvParticleAdvectionShader::setVelocityVolume(unsigned int texID, float max)
60{
61    _velocityVolumeID = texID;
62    _max = max;
63}
64
65inline void NvParticleAdvectionShader::setRenderMode(int mode)
66{
67    _mode = mode;
68}
69
70#endif //__NV_PARTICLE_ADV_SHADER_H__
Note: See TracBrowser for help on using the repository browser.