source: trunk/packages/vizservers/nanovis/PointShader.h @ 2921

Last change on this file since 2921 was 2914, checked in by ldelgass, 12 years ago

Start converting shader subclasses to use NvShader::bind/unbind, loader methods

  • Property svn:eol-style set to native
File size: 947 bytes
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2#ifndef POINTSHADER_H
3#define POINTSHADER_H
4
5#include "NvShader.h"
6#include "Texture3D.h"
7
8class PointShader : public NvShader
9{
10public:
11    PointShader();
12
13    virtual ~PointShader();
14
15    void setScale(float scale)
16    {
17        cgGLSetParameter4f(_scaleVP, scale, 1.0f, 1.0f, 1.0f);
18    }
19
20    void setNormalTexture(Texture3D *n)
21    {
22        _normal = n;
23    }
24
25    virtual void bind()
26    {
27        setParameters();
28
29        NvShader::bind();
30    }
31
32    virtual  void unbind()
33    {
34        resetParameters();
35
36        NvShader::unbind();
37    }
38
39protected:
40    virtual void setParameters();
41    virtual void resetParameters();
42
43private:
44    CGparameter _modelviewVP;
45    CGparameter _projectionVP;
46
47    CGparameter _attenVP;
48    CGparameter _posoffsetVP;
49    CGparameter _baseposVP;
50    CGparameter _scaleVP;
51    CGparameter _normalParam;
52
53    Texture3D *_normal;
54};
55
56#endif
Note: See TracBrowser for help on using the repository browser.