NorMIT-nav  2023.01.05-dev+develop.0da12
An IGT application
shadercallback.h
Go to the documentation of this file.
1 #ifndef SHADERCALLBACK_H
2 #define SHADERCALLBACK_H
3 
4 #include <vtkCommand.h>
5 #include <vtkSmartPointer.h>
6 
7 
8 //OpenGL
9 #include <GL/glew.h>
10 #include <glut.h> //Framework on Mac
11 
12 // -----------------------------------------------------------------------
13 // Update a uniform in the shader for each render. We do this with a
14 // callback for the UpdateShaderEvent
15 class ShaderCallback : public vtkCommand
16 {
17 public:
18  static ShaderCallback *New();
19 
20  virtual void Execute(vtkObject *, unsigned long event, void*cbo);
21 
23 
24  vtkSmartPointer<class vtkOpenGLRenderWindow> mRenderWindow; //containing the opengl context
25  //vtkSmartPointer<class vtkCubeSource> mCube;
26  vtkSmartPointer<class vtkOpenGLBufferObject> mColorBufferObject; //color data
27  vtkSmartPointer<class vtkOpenGLBufferObject> mTextureBufferObject; //texture coordinate data
28  vtkSmartPointer<class vtkTextureObject> mTextureObject1; //texture object -> glsl: sampler
29  vtkSmartPointer<class vtkTextureObject> mTextureObject2; //texture object -> glsl: sampler
30 
31  //void test2(unsigned long event, void *cbo);
32  void test(unsigned long event, void *cbo);
33 };
34 
35 //Need one texture coordinate per vertex in the model
36 //40 lines with 3 values each = 120
37 static int numberOfTextureCoordinates = 40;
38 static int numberOfComponentsPerTexture = 3;
39 static const GLfloat texture_data[] = {
40  1.0f, 1.0f, 1.0f,
41  1.0f, 1.0f, 0.0f,
42  1.0f, 0.0f, 0.0f,
43  0.0f, 0.0f, 0.0f,
44  0.0f, 0.0f, 1.0f,
45  0.0f, 1.0f, 1.0f,
46  0.0f, 1.0f, 0.0f,
47  1.0f, 0.0f, 1.0f,
48  1.0f, 1.0f, 1.0f,
49  1.0f, 1.0f, 0.0f,
50  1.0f, 0.0f, 0.0f,
51  0.0f, 0.0f, 0.0f,
52  0.0f, 0.0f, 1.0f,
53  0.0f, 1.0f, 1.0f,
54  0.0f, 1.0f, 0.0f,
55  1.0f, 0.0f, 1.0f,
56  1.0f, 1.0f, 1.0f,
57  1.0f, 1.0f, 0.0f,
58  1.0f, 0.0f, 0.0f,
59  0.0f, 0.0f, 0.0f,
60  0.0f, 0.0f, 1.0f,
61  0.0f, 1.0f, 1.0f,
62  0.0f, 1.0f, 0.0f,
63  1.0f, 0.0f, 1.0f,
64  1.0f, 1.0f, 1.0f,
65  1.0f, 1.0f, 0.0f,
66  1.0f, 0.0f, 0.0f,
67  0.0f, 0.0f, 0.0f,
68  0.0f, 0.0f, 1.0f,
69  0.0f, 1.0f, 1.0f,
70  0.0f, 1.0f, 0.0f,
71  1.0f, 0.0f, 1.0f,
72  1.0f, 1.0f, 1.0f,
73  1.0f, 1.0f, 0.0f,
74  1.0f, 0.0f, 0.0f,
75  0.0f, 0.0f, 0.0f,
76  0.0f, 0.0f, 1.0f,
77  0.0f, 1.0f, 1.0f,
78  0.0f, 1.0f, 0.0f,
79  1.0f, 0.0f, 1.0f,
80  1.0f, 1.0f, 1.0f,
81  1.0f, 1.0f, 0.0f,
82  1.0f, 0.0f, 0.0f,
83  0.0f, 0.0f, 0.0f,
84  0.0f, 0.0f, 1.0f,
85  0.0f, 1.0f, 1.0f,
86  0.0f, 1.0f, 0.0f,
87  1.0f, 0.0f, 1.0f
88 };
89 
90 
91 //81 lines with 3 values each == 243 values
92 static int numberOfColors = 81;
93 static int numberOfComponentsPerColor = 3;
94 static const GLfloat color_data[] = {
95  1.0f, 0.0f, 0.0f,
96  0.0f, 1.0f, 0.0f,
97  0.0f, 0.0f, 1.0f,
98  0.822f, 0.569f, 0.201f,
99  0.435f, 0.602f, 0.223f,
100  0.310f, 0.747f, 0.185f,
101  0.597f, 0.770f, 0.761f,
102  0.559f, 0.436f, 0.730f,
103  0.359f, 0.583f, 0.152f,
104  0.483f, 0.596f, 0.789f,
105  0.559f, 0.861f, 0.639f,
106  0.195f, 0.548f, 0.859f,
107  0.014f, 0.184f, 0.576f,
108  0.771f, 0.328f, 0.970f,
109  0.406f, 0.615f, 0.116f,
110  0.676f, 0.977f, 0.133f,
111  0.971f, 0.572f, 0.833f,
112  0.140f, 0.616f, 0.489f,
113  0.997f, 0.513f, 0.064f,
114  0.945f, 0.719f, 0.592f,
115  0.543f, 0.021f, 0.978f,
116  0.279f, 0.317f, 0.505f,
117  0.167f, 0.620f, 0.077f,
118  0.347f, 0.857f, 0.137f,
119  0.055f, 0.953f, 0.042f,
120  0.714f, 0.505f, 0.345f,
121  0.783f, 0.290f, 0.734f,
122  0.722f, 0.645f, 0.174f,
123  0.302f, 0.455f, 0.848f,
124  0.225f, 0.587f, 0.040f,
125  0.517f, 0.713f, 0.338f,
126  0.053f, 0.959f, 0.120f,
127  0.393f, 0.621f, 0.362f,
128  0.673f, 0.211f, 0.457f,
129  0.820f, 0.883f, 0.371f,
130  0.982f, 0.099f, 0.879f,
131  0.140f, 0.616f, 0.489f,
132  0.997f, 0.513f, 0.064f,
133  0.945f, 0.719f, 0.592f,
134  0.543f, 0.021f, 0.978f,
135  0.279f, 0.317f, 0.505f,
136  0.167f, 0.620f, 0.077f,
137  0.347f, 0.857f, 0.137f,
138  0.055f, 0.953f, 0.042f,
139  0.714f, 0.505f, 0.345f,
140  0.783f, 0.290f, 0.734f,
141  0.722f, 0.645f, 0.174f,
142  0.302f, 0.455f, 0.848f,
143  0.225f, 0.587f, 0.040f,
144  0.517f, 0.713f, 0.338f,
145  0.053f, 0.959f, 0.120f,
146  0.393f, 0.621f, 0.362f,
147  0.673f, 0.211f, 0.457f,
148  0.820f, 0.883f, 0.371f,
149  0.982f, 0.099f, 0.879f,
150  0.302f, 0.455f, 0.848f,
151  0.225f, 0.587f, 0.040f,
152  0.517f, 0.713f, 0.338f,
153  0.053f, 0.959f, 0.120f,
154  0.393f, 0.621f, 0.362f,
155  0.673f, 0.211f, 0.457f,
156  0.820f, 0.883f, 0.371f,
157  0.982f, 0.099f, 0.879f,
158  0.140f, 0.616f, 0.489f,
159  0.997f, 0.513f, 0.064f,
160  0.945f, 0.719f, 0.592f,
161  0.543f, 0.021f, 0.978f,
162  0.279f, 0.317f, 0.505f,
163  0.167f, 0.620f, 0.077f,
164  0.347f, 0.857f, 0.137f,
165  0.055f, 0.953f, 0.042f,
166  0.714f, 0.505f, 0.345f,
167  0.783f, 0.290f, 0.734f,
168  0.722f, 0.645f, 0.174f,
169  0.302f, 0.455f, 0.848f,
170  0.225f, 0.587f, 0.040f,
171  0.517f, 0.713f, 0.338f,
172  0.053f, 0.959f, 0.120f,
173  0.393f, 0.621f, 0.362f,
174  0.673f, 0.211f, 0.457f,
175  0.820f, 0.883f, 0.371f,
176  0.982f, 0.099f, 0.879f
177 };
178 
179 
180 
181 #endif // SHADERCALLBACK_H
ShaderCallback::ShaderCallback
ShaderCallback()
Definition: shadercallback.cpp:204
ShaderCallback
Definition: shadercallback.h:15
ShaderCallback::mTextureBufferObject
vtkSmartPointer< class vtkOpenGLBufferObject > mTextureBufferObject
Definition: shadercallback.h:27
ShaderCallback::Execute
virtual void Execute(vtkObject *, unsigned long event, void *cbo)
Definition: shadercallback.cpp:193
ShaderCallback::mTextureObject1
vtkSmartPointer< class vtkTextureObject > mTextureObject1
Definition: shadercallback.h:28
ShaderCallback::New
static ShaderCallback * New()
Definition: shadercallback.cpp:19
ShaderCallback::mRenderWindow
vtkSmartPointer< class vtkOpenGLRenderWindow > mRenderWindow
Definition: shadercallback.h:24
ShaderCallback::mTextureObject2
vtkSmartPointer< class vtkTextureObject > mTextureObject2
Definition: shadercallback.h:29
ShaderCallback::mColorBufferObject
vtkSmartPointer< class vtkOpenGLBufferObject > mColorBufferObject
Definition: shadercallback.h:26
ShaderCallback::test
void test(unsigned long event, void *cbo)
Definition: shadercallback.cpp:108