File: TestGPURayCastTwoComponentsIndependent.cxx

package info (click to toggle)
vtk6 6.3.0%2Bdfsg2-8.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 118,972 kB
  • sloc: cpp: 1,442,790; ansic: 113,395; python: 72,383; tcl: 46,998; xml: 8,119; yacc: 4,525; java: 4,239; perl: 3,108; lex: 1,694; sh: 1,093; asm: 154; makefile: 68; objc: 17
file content (631 lines) | stat: -rw-r--r-- 21,646 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    TestGPURayCastTwoComponentsIndependent.cxx

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

  This software is distributed WITHOUT ANY WARRANTY; without even
  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  PURPOSE.  See the above copyright notice for more information.

=========================================================================*/

// Description
// This test creates a vtkImageData with two components.
// The data is volume rendered considering the two components as independent.

#include "vtkCamera.h"
#include "vtkColorTransferFunction.h"
#include "vtkGPUVolumeRayCastMapper.h"
#include "vtkImageData.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkNew.h"
#include "vtkPiecewiseFunction.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkTesting.h"
#include "vtkTestUtilities.h"
#include "vtkVolume.h"
#include "vtkVolumeProperty.h"

static const char * TestGPURayCastTwoComponentsIndependentLog =
"# StreamVersion 1\n"
"EnterEvent 298 198 0 0 0 0 0\n"
"MouseMoveEvent 298 198 0 0 0 0 0\n"
"MouseMoveEvent 292 200 0 0 0 0 0\n"
"MouseMoveEvent 285 200 0 0 0 0 0\n"
"MouseMoveEvent 281 202 0 0 0 0 0\n"
"MouseMoveEvent 277 202 0 0 0 0 0\n"
"MouseMoveEvent 274 203 0 0 0 0 0\n"
"MouseMoveEvent 270 205 0 0 0 0 0\n"
"MouseMoveEvent 266 205 0 0 0 0 0\n"
"MouseMoveEvent 262 205 0 0 0 0 0\n"
"MouseMoveEvent 260 205 0 0 0 0 0\n"
"MouseMoveEvent 258 206 0 0 0 0 0\n"
"MouseMoveEvent 255 206 0 0 0 0 0\n"
"MouseMoveEvent 253 207 0 0 0 0 0\n"
"MouseMoveEvent 251 207 0 0 0 0 0\n"
"MouseMoveEvent 250 207 0 0 0 0 0\n"
"MouseMoveEvent 248 207 0 0 0 0 0\n"
"MouseMoveEvent 244 207 0 0 0 0 0\n"
"MouseMoveEvent 237 208 0 0 0 0 0\n"
"MouseMoveEvent 232 210 0 0 0 0 0\n"
"MouseMoveEvent 226 210 0 0 0 0 0\n"
"MouseMoveEvent 222 211 0 0 0 0 0\n"
"MouseMoveEvent 220 211 0 0 0 0 0\n"
"MouseMoveEvent 219 212 0 0 0 0 0\n"
"MouseMoveEvent 216 212 0 0 0 0 0\n"
"MouseMoveEvent 215 213 0 0 0 0 0\n"
"MouseMoveEvent 213 213 0 0 0 0 0\n"
"MouseMoveEvent 211 214 0 0 0 0 0\n"
"MouseMoveEvent 210 214 0 0 0 0 0\n"
"MouseMoveEvent 207 216 0 0 0 0 0\n"
"MouseMoveEvent 206 217 0 0 0 0 0\n"
"MouseMoveEvent 205 218 0 0 0 0 0\n"
"MouseMoveEvent 203 220 0 0 0 0 0\n"
"MouseMoveEvent 200 222 0 0 0 0 0\n"
"MouseMoveEvent 197 224 0 0 0 0 0\n"
"MouseMoveEvent 194 226 0 0 0 0 0\n"
"MouseMoveEvent 193 227 0 0 0 0 0\n"
"MouseMoveEvent 191 228 0 0 0 0 0\n"
"MouseMoveEvent 190 229 0 0 0 0 0\n"
"MouseMoveEvent 188 231 0 0 0 0 0\n"
"MouseMoveEvent 187 232 0 0 0 0 0\n"
"MouseMoveEvent 186 233 0 0 0 0 0\n"
"MouseMoveEvent 185 234 0 0 0 0 0\n"
"MouseMoveEvent 184 235 0 0 0 0 0\n"
"MouseMoveEvent 184 236 0 0 0 0 0\n"
"MouseMoveEvent 183 237 0 0 0 0 0\n"
"MouseMoveEvent 182 238 0 0 0 0 0\n"
"MouseMoveEvent 181 239 0 0 0 0 0\n"
"MouseMoveEvent 179 240 0 0 0 0 0\n"
"MouseMoveEvent 176 240 0 0 0 0 0\n"
"MouseMoveEvent 174 241 0 0 0 0 0\n"
"MouseMoveEvent 172 241 0 0 0 0 0\n"
"MouseMoveEvent 170 242 0 0 0 0 0\n"
"MouseMoveEvent 168 242 0 0 0 0 0\n"
"MouseMoveEvent 166 242 0 0 0 0 0\n"
"MouseMoveEvent 165 242 0 0 0 0 0\n"
"MouseMoveEvent 164 242 0 0 0 0 0\n"
"MouseMoveEvent 160 242 0 0 0 0 0\n"
"MouseMoveEvent 156 242 0 0 0 0 0\n"
"MouseMoveEvent 153 242 0 0 0 0 0\n"
"MouseMoveEvent 150 242 0 0 0 0 0\n"
"MouseMoveEvent 148 242 0 0 0 0 0\n"
"MouseMoveEvent 147 242 0 0 0 0 0\n"
"MouseMoveEvent 146 242 0 0 0 0 0\n"
"MouseMoveEvent 144 242 0 0 0 0 0\n"
"MouseMoveEvent 143 242 0 0 0 0 0\n"
"MouseMoveEvent 142 242 0 0 0 0 0\n"
"MouseMoveEvent 141 242 0 0 0 0 0\n"
"MouseMoveEvent 140 242 0 0 0 0 0\n"
"MouseMoveEvent 139 242 0 0 0 0 0\n"
"MouseMoveEvent 138 242 0 0 0 0 0\n"
"MouseMoveEvent 137 242 0 0 0 0 0\n"
"LeftButtonPressEvent 137 242 0 0 0 0 0\n"
"StartInteractionEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"TimerEvent 137 242 0 0 0 0 0\n"
"RenderEvent 137 242 0 0 0 0 0\n"
"MouseMoveEvent 136 241 0 0 0 0 0\n"
"InteractionEvent 136 241 0 0 0 0 0\n"
"TimerEvent 136 241 0 0 0 0 0\n"
"RenderEvent 136 241 0 0 0 0 0\n"
"MouseMoveEvent 136 240 0 0 0 0 0\n"
"InteractionEvent 136 240 0 0 0 0 0\n"
"MouseMoveEvent 136 239 0 0 0 0 0\n"
"InteractionEvent 136 239 0 0 0 0 0\n"
"TimerEvent 136 239 0 0 0 0 0\n"
"RenderEvent 136 239 0 0 0 0 0\n"
"MouseMoveEvent 136 238 0 0 0 0 0\n"
"InteractionEvent 136 238 0 0 0 0 0\n"
"MouseMoveEvent 136 237 0 0 0 0 0\n"
"InteractionEvent 136 237 0 0 0 0 0\n"
"TimerEvent 136 237 0 0 0 0 0\n"
"RenderEvent 136 237 0 0 0 0 0\n"
"MouseMoveEvent 136 236 0 0 0 0 0\n"
"InteractionEvent 136 236 0 0 0 0 0\n"
"MouseMoveEvent 136 235 0 0 0 0 0\n"
"InteractionEvent 136 235 0 0 0 0 0\n"
"TimerEvent 136 235 0 0 0 0 0\n"
"RenderEvent 136 235 0 0 0 0 0\n"
"MouseMoveEvent 136 234 0 0 0 0 0\n"
"InteractionEvent 136 234 0 0 0 0 0\n"
"TimerEvent 136 234 0 0 0 0 0\n"
"RenderEvent 136 234 0 0 0 0 0\n"
"MouseMoveEvent 136 233 0 0 0 0 0\n"
"InteractionEvent 136 233 0 0 0 0 0\n"
"MouseMoveEvent 136 232 0 0 0 0 0\n"
"InteractionEvent 136 232 0 0 0 0 0\n"
"TimerEvent 136 232 0 0 0 0 0\n"
"RenderEvent 136 232 0 0 0 0 0\n"
"MouseMoveEvent 136 231 0 0 0 0 0\n"
"InteractionEvent 136 231 0 0 0 0 0\n"
"MouseMoveEvent 136 230 0 0 0 0 0\n"
"InteractionEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"TimerEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"LeftButtonReleaseEvent 136 230 0 0 0 0 0\n"
"EndInteractionEvent 136 230 0 0 0 0 0\n"
"RenderEvent 136 230 0 0 0 0 0\n"
"MouseMoveEvent 136 228 0 0 0 0 0\n"
"MouseMoveEvent 136 226 0 0 0 0 0\n"
"MouseMoveEvent 136 224 0 0 0 0 0\n"
"MouseMoveEvent 136 222 0 0 0 0 0\n"
"MouseMoveEvent 136 220 0 0 0 0 0\n"
"MouseMoveEvent 136 218 0 0 0 0 0\n"
"MouseMoveEvent 136 216 0 0 0 0 0\n"
"MouseMoveEvent 136 213 0 0 0 0 0\n"
"MouseMoveEvent 136 210 0 0 0 0 0\n"
"MouseMoveEvent 136 207 0 0 0 0 0\n"
"MouseMoveEvent 136 204 0 0 0 0 0\n"
"MouseMoveEvent 137 201 0 0 0 0 0\n"
"MouseMoveEvent 138 198 0 0 0 0 0\n"
"MouseMoveEvent 139 196 0 0 0 0 0\n"
"MouseMoveEvent 139 194 0 0 0 0 0\n"
"MouseMoveEvent 140 191 0 0 0 0 0\n"
"MouseMoveEvent 142 187 0 0 0 0 0\n"
"MouseMoveEvent 142 184 0 0 0 0 0\n"
"MouseMoveEvent 144 181 0 0 0 0 0\n"
"MouseMoveEvent 145 177 0 0 0 0 0\n"
"MouseMoveEvent 148 173 0 0 0 0 0\n"
"MouseMoveEvent 151 169 0 0 0 0 0\n"
"MouseMoveEvent 156 164 0 0 0 0 0\n"
"MouseMoveEvent 162 158 0 0 0 0 0\n"
"MouseMoveEvent 166 153 0 0 0 0 0\n"
"MouseMoveEvent 170 149 0 0 0 0 0\n"
"MouseMoveEvent 174 145 0 0 0 0 0\n"
"MouseMoveEvent 178 143 0 0 0 0 0\n"
"MouseMoveEvent 184 142 0 0 0 0 0\n"
"MouseMoveEvent 188 140 0 0 0 0 0\n"
"MouseMoveEvent 193 139 0 0 0 0 0\n"
"MouseMoveEvent 197 139 0 0 0 0 0\n"
"MouseMoveEvent 201 137 0 0 0 0 0\n"
"MouseMoveEvent 202 137 0 0 0 0 0\n"
"MouseMoveEvent 204 137 0 0 0 0 0\n"
"MouseMoveEvent 205 137 0 0 0 0 0\n"
"MouseMoveEvent 206 137 0 0 0 0 0\n"
"MouseMoveEvent 209 136 0 0 0 0 0\n"
"MouseMoveEvent 211 136 0 0 0 0 0\n"
"MouseMoveEvent 212 136 0 0 0 0 0\n"
"MouseMoveEvent 213 135 0 0 0 0 0\n"
"MouseMoveEvent 214 135 0 0 0 0 0\n"
"MouseMoveEvent 215 134 0 0 0 0 0\n"
"MouseMoveEvent 216 133 0 0 0 0 0\n"
"LeftButtonPressEvent 216 133 0 0 0 0 0\n"
"StartInteractionEvent 216 133 0 0 0 0 0\n"
"TimerEvent 216 133 0 0 0 0 0\n"
"RenderEvent 216 133 0 0 0 0 0\n"
"MouseMoveEvent 219 132 0 0 0 0 0\n"
"InteractionEvent 219 132 0 0 0 0 0\n"
"MouseMoveEvent 220 131 0 0 0 0 0\n"
"InteractionEvent 220 131 0 0 0 0 0\n"
"TimerEvent 220 131 0 0 0 0 0\n"
"RenderEvent 220 131 0 0 0 0 0\n"
"MouseMoveEvent 221 130 0 0 0 0 0\n"
"InteractionEvent 221 130 0 0 0 0 0\n"
"MouseMoveEvent 222 129 0 0 0 0 0\n"
"InteractionEvent 222 129 0 0 0 0 0\n"
"TimerEvent 222 129 0 0 0 0 0\n"
"RenderEvent 222 129 0 0 0 0 0\n"
"MouseMoveEvent 223 128 0 0 0 0 0\n"
"InteractionEvent 223 128 0 0 0 0 0\n"
"TimerEvent 223 128 0 0 0 0 0\n"
"RenderEvent 223 128 0 0 0 0 0\n"
"TimerEvent 223 128 0 0 0 0 0\n"
"RenderEvent 223 128 0 0 0 0 0\n"
"TimerEvent 223 128 0 0 0 0 0\n"
"RenderEvent 223 128 0 0 0 0 0\n"
"TimerEvent 223 128 0 0 0 0 0\n"
"RenderEvent 223 128 0 0 0 0 0\n"
"TimerEvent 223 128 0 0 0 0 0\n"
"RenderEvent 223 128 0 0 0 0 0\n"
"LeftButtonReleaseEvent 223 128 0 0 0 0 0\n"
"EndInteractionEvent 223 128 0 0 0 0 0\n"
"RenderEvent 223 128 0 0 0 0 0\n"
"MouseMoveEvent 224 126 0 0 0 0 0\n"
"MouseMoveEvent 225 125 0 0 0 0 0\n"
"MouseMoveEvent 226 123 0 0 0 0 0\n"
"MouseMoveEvent 227 122 0 0 0 0 0\n"
"MouseMoveEvent 228 121 0 0 0 0 0\n"
"MouseMoveEvent 229 120 0 0 0 0 0\n"
"MouseMoveEvent 230 119 0 0 0 0 0\n"
"MouseMoveEvent 231 118 0 0 0 0 0\n"
"MouseMoveEvent 232 117 0 0 0 0 0\n"
"MouseMoveEvent 233 116 0 0 0 0 0\n"
"MouseMoveEvent 233 115 0 0 0 0 0\n"
"MouseMoveEvent 234 114 0 0 0 0 0\n"
"MouseMoveEvent 234 113 0 0 0 0 0\n"
"MouseMoveEvent 234 112 0 0 0 0 0\n"
"MouseMoveEvent 234 111 0 0 0 0 0\n"
"MouseMoveEvent 234 110 0 0 0 0 0\n"
"MouseMoveEvent 233 108 0 0 0 0 0\n"
"MouseMoveEvent 231 107 0 0 0 0 0\n"
"MouseMoveEvent 229 106 0 0 0 0 0\n"
"MouseMoveEvent 226 105 0 0 0 0 0\n"
"MouseMoveEvent 223 105 0 0 0 0 0\n"
"MouseMoveEvent 220 104 0 0 0 0 0\n"
"MouseMoveEvent 216 103 0 0 0 0 0\n"
"MouseMoveEvent 209 101 0 0 0 0 0\n"
"MouseMoveEvent 202 99 0 0 0 0 0\n"
"MouseMoveEvent 195 98 0 0 0 0 0\n"
"MouseMoveEvent 188 96 0 0 0 0 0\n"
"MouseMoveEvent 179 94 0 0 0 0 0\n"
"MouseMoveEvent 168 93 0 0 0 0 0\n"
"MouseMoveEvent 156 91 0 0 0 0 0\n"
"MouseMoveEvent 144 89 0 0 0 0 0\n"
"MouseMoveEvent 135 87 0 0 0 0 0\n"
"MouseMoveEvent 127 86 0 0 0 0 0\n"
"MouseMoveEvent 120 86 0 0 0 0 0\n"
"MouseMoveEvent 116 84 0 0 0 0 0\n"
"MouseMoveEvent 115 84 0 0 0 0 0\n"
"MouseMoveEvent 114 83 0 0 0 0 0\n"
"LeftButtonPressEvent 114 83 0 0 0 0 0\n"
"StartInteractionEvent 114 83 0 0 0 0 0\n"
"TimerEvent 114 83 0 0 0 0 0\n"
"RenderEvent 114 83 0 0 0 0 0\n"
"MouseMoveEvent 108 82 0 0 0 0 0\n"
"InteractionEvent 108 82 0 0 0 0 0\n"
"TimerEvent 108 82 0 0 0 0 0\n"
"RenderEvent 108 82 0 0 0 0 0\n"
"MouseMoveEvent 104 81 0 0 0 0 0\n"
"InteractionEvent 104 81 0 0 0 0 0\n"
"MouseMoveEvent 102 81 0 0 0 0 0\n"
"InteractionEvent 102 81 0 0 0 0 0\n"
"TimerEvent 102 81 0 0 0 0 0\n"
"RenderEvent 102 81 0 0 0 0 0\n"
"MouseMoveEvent 95 81 0 0 0 0 0\n"
"InteractionEvent 95 81 0 0 0 0 0\n"
"MouseMoveEvent 92 81 0 0 0 0 0\n"
"InteractionEvent 92 81 0 0 0 0 0\n"
"TimerEvent 92 81 0 0 0 0 0\n"
"RenderEvent 92 81 0 0 0 0 0\n"
"MouseMoveEvent 86 81 0 0 0 0 0\n"
"InteractionEvent 86 81 0 0 0 0 0\n"
"MouseMoveEvent 83 81 0 0 0 0 0\n"
"InteractionEvent 83 81 0 0 0 0 0\n"
"TimerEvent 83 81 0 0 0 0 0\n"
"RenderEvent 83 81 0 0 0 0 0\n"
"MouseMoveEvent 77 81 0 0 0 0 0\n"
"InteractionEvent 77 81 0 0 0 0 0\n"
"MouseMoveEvent 75 80 0 0 0 0 0\n"
"InteractionEvent 75 80 0 0 0 0 0\n"
"TimerEvent 75 80 0 0 0 0 0\n"
"RenderEvent 75 80 0 0 0 0 0\n"
"MouseMoveEvent 72 80 0 0 0 0 0\n"
"InteractionEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"TimerEvent 72 80 0 0 0 0 0\n"
"RenderEvent 72 80 0 0 0 0 0\n"
"MouseMoveEvent 71 79 0 0 0 0 0\n"
"InteractionEvent 71 79 0 0 0 0 0\n"
"MouseMoveEvent 71 78 0 0 0 0 0\n"
"InteractionEvent 71 78 0 0 0 0 0\n"
"TimerEvent 71 78 0 0 0 0 0\n"
"RenderEvent 71 78 0 0 0 0 0\n"
"MouseMoveEvent 70 74 0 0 0 0 0\n"
"InteractionEvent 70 74 0 0 0 0 0\n"
"MouseMoveEvent 70 73 0 0 0 0 0\n"
"InteractionEvent 70 73 0 0 0 0 0\n"
"TimerEvent 70 73 0 0 0 0 0\n"
"RenderEvent 70 73 0 0 0 0 0\n"
"MouseMoveEvent 70 71 0 0 0 0 0\n"
"InteractionEvent 70 71 0 0 0 0 0\n"
"MouseMoveEvent 70 70 0 0 0 0 0\n"
"InteractionEvent 70 70 0 0 0 0 0\n"
"TimerEvent 70 70 0 0 0 0 0\n"
"RenderEvent 70 70 0 0 0 0 0\n"
"MouseMoveEvent 70 64 0 0 0 0 0\n"
"InteractionEvent 70 64 0 0 0 0 0\n"
"MouseMoveEvent 70 63 0 0 0 0 0\n"
"InteractionEvent 70 63 0 0 0 0 0\n"
"TimerEvent 70 63 0 0 0 0 0\n"
"RenderEvent 70 63 0 0 0 0 0\n"
"MouseMoveEvent 72 59 0 0 0 0 0\n"
"InteractionEvent 72 59 0 0 0 0 0\n"
"MouseMoveEvent 73 58 0 0 0 0 0\n"
"InteractionEvent 73 58 0 0 0 0 0\n"
"TimerEvent 73 58 0 0 0 0 0\n"
"RenderEvent 73 58 0 0 0 0 0\n"
"MouseMoveEvent 77 52 0 0 0 0 0\n"
"InteractionEvent 77 52 0 0 0 0 0\n"
"MouseMoveEvent 78 51 0 0 0 0 0\n"
"InteractionEvent 78 51 0 0 0 0 0\n"
"TimerEvent 78 51 0 0 0 0 0\n"
"RenderEvent 78 51 0 0 0 0 0\n"
"MouseMoveEvent 83 44 0 0 0 0 0\n"
"InteractionEvent 83 44 0 0 0 0 0\n"
"MouseMoveEvent 85 42 0 0 0 0 0\n"
"InteractionEvent 85 42 0 0 0 0 0\n"
"MouseMoveEvent 86 41 0 0 0 0 0\n"
"InteractionEvent 86 41 0 0 0 0 0\n"
"TimerEvent 86 41 0 0 0 0 0\n"
"RenderEvent 86 41 0 0 0 0 0\n"
"MouseMoveEvent 89 38 0 0 0 0 0\n"
"InteractionEvent 89 38 0 0 0 0 0\n"
"MouseMoveEvent 90 37 0 0 0 0 0\n"
"InteractionEvent 90 37 0 0 0 0 0\n"
"TimerEvent 90 37 0 0 0 0 0\n"
"RenderEvent 90 37 0 0 0 0 0\n"
"MouseMoveEvent 94 33 0 0 0 0 0\n"
"InteractionEvent 94 33 0 0 0 0 0\n"
"MouseMoveEvent 95 32 0 0 0 0 0\n"
"InteractionEvent 95 32 0 0 0 0 0\n"
"TimerEvent 95 32 0 0 0 0 0\n"
"RenderEvent 95 32 0 0 0 0 0\n"
"MouseMoveEvent 99 30 0 0 0 0 0\n"
"InteractionEvent 99 30 0 0 0 0 0\n"
"MouseMoveEvent 101 29 0 0 0 0 0\n"
"InteractionEvent 101 29 0 0 0 0 0\n"
"TimerEvent 101 29 0 0 0 0 0\n"
"RenderEvent 101 29 0 0 0 0 0\n"
"MouseMoveEvent 108 25 0 0 0 0 0\n"
"InteractionEvent 108 25 0 0 0 0 0\n"
"TimerEvent 108 25 0 0 0 0 0\n"
"RenderEvent 108 25 0 0 0 0 0\n"
"MouseMoveEvent 111 23 0 0 0 0 0\n"
"InteractionEvent 111 23 0 0 0 0 0\n"
"TimerEvent 111 23 0 0 0 0 0\n"
"RenderEvent 111 23 0 0 0 0 0\n"
"MouseMoveEvent 115 21 0 0 0 0 0\n"
"InteractionEvent 115 21 0 0 0 0 0\n"
"TimerEvent 115 21 0 0 0 0 0\n"
"RenderEvent 115 21 0 0 0 0 0\n"
"MouseMoveEvent 118 19 0 0 0 0 0\n"
"InteractionEvent 118 19 0 0 0 0 0\n"
"TimerEvent 118 19 0 0 0 0 0\n"
"RenderEvent 118 19 0 0 0 0 0\n"
"MouseMoveEvent 122 18 0 0 0 0 0\n"
"InteractionEvent 122 18 0 0 0 0 0\n"
"TimerEvent 122 18 0 0 0 0 0\n"
"RenderEvent 122 18 0 0 0 0 0\n"
"MouseMoveEvent 127 16 0 0 0 0 0\n"
"InteractionEvent 127 16 0 0 0 0 0\n"
"MouseMoveEvent 128 15 0 0 0 0 0\n"
"InteractionEvent 128 15 0 0 0 0 0\n"
"TimerEvent 128 15 0 0 0 0 0\n"
"RenderEvent 128 15 0 0 0 0 0\n"
"MouseMoveEvent 133 13 0 0 0 0 0\n"
"InteractionEvent 133 13 0 0 0 0 0\n"
"TimerEvent 133 13 0 0 0 0 0\n"
"RenderEvent 133 13 0 0 0 0 0\n"
"MouseMoveEvent 139 11 0 0 0 0 0\n"
"InteractionEvent 139 11 0 0 0 0 0\n"
"MouseMoveEvent 140 11 0 0 0 0 0\n"
"InteractionEvent 140 11 0 0 0 0 0\n"
"TimerEvent 140 11 0 0 0 0 0\n"
"RenderEvent 140 11 0 0 0 0 0\n"
"MouseMoveEvent 144 10 0 0 0 0 0\n"
"InteractionEvent 144 10 0 0 0 0 0\n"
"MouseMoveEvent 145 9 0 0 0 0 0\n"
"InteractionEvent 145 9 0 0 0 0 0\n"
"TimerEvent 145 9 0 0 0 0 0\n"
"RenderEvent 145 9 0 0 0 0 0\n"
"MouseMoveEvent 147 8 0 0 0 0 0\n"
"InteractionEvent 147 8 0 0 0 0 0\n"
"TimerEvent 147 8 0 0 0 0 0\n"
"RenderEvent 147 8 0 0 0 0 0\n"
"MouseMoveEvent 150 7 0 0 0 0 0\n"
"InteractionEvent 150 7 0 0 0 0 0\n"
"MouseMoveEvent 151 7 0 0 0 0 0\n"
"InteractionEvent 151 7 0 0 0 0 0\n"
"MouseMoveEvent 154 6 0 0 0 0 0\n"
"InteractionEvent 154 6 0 0 0 0 0\n"
"TimerEvent 154 6 0 0 0 0 0\n"
"RenderEvent 154 6 0 0 0 0 0\n"
"MouseMoveEvent 156 6 0 0 0 0 0\n"
"InteractionEvent 156 6 0 0 0 0 0\n"
"MouseMoveEvent 158 5 0 0 0 0 0\n"
"InteractionEvent 158 5 0 0 0 0 0\n"
"TimerEvent 158 5 0 0 0 0 0\n"
"RenderEvent 158 5 0 0 0 0 0\n"
"MouseMoveEvent 160 4 0 0 0 0 0\n"
"InteractionEvent 160 4 0 0 0 0 0\n"
"TimerEvent 160 4 0 0 0 0 0\n"
"RenderEvent 160 4 0 0 0 0 0\n"
"TimerEvent 160 4 0 0 0 0 0\n"
"RenderEvent 160 4 0 0 0 0 0\n"
"MouseMoveEvent 162 3 0 0 0 0 0\n"
"InteractionEvent 162 3 0 0 0 0 0\n"
"MouseMoveEvent 164 2 0 0 0 0 0\n"
"InteractionEvent 164 2 0 0 0 0 0\n"
"TimerEvent 164 2 0 0 0 0 0\n"
"RenderEvent 164 2 0 0 0 0 0\n"
"MouseMoveEvent 167 1 0 0 0 0 0\n"
"InteractionEvent 167 1 0 0 0 0 0\n"
"TimerEvent 167 1 0 0 0 0 0\n"
"RenderEvent 167 1 0 0 0 0 0\n"
"MouseMoveEvent 171 -1 0 0 0 0 0\n"
"InteractionEvent 171 -1 0 0 0 0 0\n"
"LeaveEvent 171 -1 0 0 0 0 0\n"
"MouseMoveEvent 171 -1 0 0 0 0 0\n"
"InteractionEvent 171 -1 0 0 0 0 0\n"
"TimerEvent 171 -1 0 0 0 0 0\n"
"RenderEvent 171 -1 0 0 0 0 0\n"
"TimerEvent 171 -1 0 0 0 0 0\n"
"RenderEvent 171 -1 0 0 0 0 0\n"
"TimerEvent 171 -1 0 0 0 0 0\n"
"RenderEvent 171 -1 0 0 0 0 0\n"
"LeftButtonReleaseEvent 171 -1 0 0 0 0 0\n"
"EndInteractionEvent 171 -1 0 0 0 0 0\n"
"RenderEvent 171 -1 0 0 0 0 0\n"
"LeaveEvent 171 -1 0 0 0 0 0\n"
"EnterEvent 174 0 0 0 0 0 0\n"
"MouseMoveEvent 174 0 0 0 0 0 0\n"
"MouseMoveEvent 175 1 0 0 0 0 0\n"
"MouseMoveEvent 175 2 0 0 0 0 0\n"
"MouseMoveEvent 175 4 0 0 0 0 0\n"
"MouseMoveEvent 175 6 0 0 0 0 0\n"
"MouseMoveEvent 175 8 0 0 0 0 0\n"
"MouseMoveEvent 175 10 0 0 0 0 0\n"
"MouseMoveEvent 175 12 0 0 0 0 0\n"
"MouseMoveEvent 175 15 0 0 0 0 0\n"
"MouseMoveEvent 175 18 0 0 0 0 0\n"
"MouseMoveEvent 175 21 0 0 0 0 0\n"
"MouseMoveEvent 176 23 0 0 0 0 0\n"
"MouseMoveEvent 178 27 0 0 0 0 0\n"
"MouseMoveEvent 180 29 0 0 0 0 0\n"
"MouseMoveEvent 188 33 0 0 0 0 0\n"
"MouseMoveEvent 198 34 0 0 0 0 0\n"
"MouseMoveEvent 207 36 0 0 0 0 0\n"
"MouseMoveEvent 221 36 0 0 0 0 0\n"
"MouseMoveEvent 238 36 0 0 0 0 0\n"
"MouseMoveEvent 255 36 0 0 0 0 0\n"
"MouseMoveEvent 272 36 0 0 0 0 0\n"
"MouseMoveEvent 289 36 0 0 0 0 0\n"
"LeaveEvent 306 36 0 0 0 0 0\n"
;

int TestGPURayCastTwoComponentsIndependent(int argc, char *argv[])
{
  cout << "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)" << endl;

  int dims[3] = {35, 35, 35};

  // Create a vtkImageData with two components
  vtkNew<vtkImageData> image;
  image->SetDimensions(dims[0], dims[1], dims[2]);
  image->AllocateScalars(VTK_DOUBLE, 2);

  // Fill the first half rectangular parallelopiped along X with the
  // first component values and the second half with second component values
  double * ptr = static_cast<double *> (image->GetScalarPointer(0, 0, 0));

  for (int z = 0; z < dims[2]; ++z)
    {
    for (int y = 0; y < dims[1]; ++y)
      {
      for (int x = 0; x < dims[0]; ++x)
        {
        if (x < dims[0]/2)
          {
          *ptr++ = 1.0;
          *ptr++ = 0.0;
          }
        else
          {
          *ptr++ = 0.0;
          *ptr++ = 1.0;
          }
        }
      }
    }

  vtkNew<vtkRenderWindow> renWin;
  renWin->SetSize(301, 300); // Intentional NPOT size
  renWin->SetMultiSamples(0);

  vtkNew<vtkRenderer> ren;
  renWin->AddRenderer(ren.GetPointer());

  vtkNew<vtkRenderWindowInteractor> iren;
  vtkNew<vtkInteractorStyleTrackballCamera> style;
  iren->SetInteractorStyle(style.GetPointer());
  iren->SetRenderWindow(renWin.GetPointer());

  renWin->Render();

  // Volume render the dataset
  vtkNew<vtkGPUVolumeRayCastMapper> mapper;
  mapper->AutoAdjustSampleDistancesOff();
  mapper->SetSampleDistance(0.9);
  mapper->SetInputData(image.GetPointer());

  // Color transfer function
  vtkNew<vtkColorTransferFunction> ctf1;
  ctf1->AddRGBPoint(0.0, 0.0, 0.0, 0.0);
  ctf1->AddRGBPoint(1.0, 1.0, 0.0, 0.0);

  vtkNew<vtkColorTransferFunction> ctf2;
  ctf2->AddRGBPoint(0.0, 0.0, 0.0, 0.0);
  ctf2->AddRGBPoint(1.0, 0.0, 0.0, 1.0);

  // Opacity functions
  vtkNew<vtkPiecewiseFunction> pf1;
  pf1->AddPoint(0.0, 0.0);
  pf1->AddPoint(1.0, 0.5);

  vtkNew<vtkPiecewiseFunction> pf2;
  pf2->AddPoint(0.0, 0.0);
  pf2->AddPoint(1.0, 0.5);

  // Volume property with independent components ON
  vtkNew<vtkVolumeProperty> property;
  property->IndependentComponentsOn();

  // Set color and opacity functions
  property->SetColor(0, ctf1.GetPointer());
  property->SetColor(1, ctf2.GetPointer());
  property->SetScalarOpacity(0, pf1.GetPointer());
  property->SetScalarOpacity(1, pf2.GetPointer());

  vtkNew<vtkVolume> volume;
  volume->SetMapper(mapper.GetPointer());
  volume->SetProperty(property.GetPointer());
  ren->AddVolume(volume.GetPointer());

  ren->ResetCamera();

  iren->Initialize();
  renWin->Render();

  return vtkTesting::InteractorEventLoop(argc, argv,
                                         iren.GetPointer(),
                                         TestGPURayCastTwoComponentsIndependentLog);
}