7 #include "imstkVolumeRenderMaterialPresets.h" 8 #include "imstkVolumeRenderMaterial.h" 10 #include <vtkColorTransferFunction.h> 11 #include <vtkPiecewiseFunction.h> 12 #include <vtkSmartPointer.h> 13 #include <vtkVolumeProperty.h> 17 std::shared_ptr<VolumeRenderMaterial>
20 auto mat = std::make_shared<VolumeRenderMaterial>();
21 auto volProp = mat->getVolumeProperty();
22 auto ctf = vtkSmartPointer<vtkColorTransferFunction>::New();
23 volProp->SetColor(ctf);
24 auto of = vtkSmartPointer<vtkPiecewiseFunction>::New();
25 volProp->SetScalarOpacity(of);
26 auto gf = vtkSmartPointer<vtkPiecewiseFunction>::New();
27 volProp->SetGradientOpacity(gf);
34 ctf->AddRGBPoint(-3024, 0.0, 0.0, 0.0);
35 ctf->AddRGBPoint(143.556, 0.615686, 0.356863, 0.184314);
36 ctf->AddRGBPoint(166.222, 0.882353, 0.603922, 0.290196);
37 ctf->AddRGBPoint(214.389, 1, 1, 1);
38 ctf->AddRGBPoint(419.736, 1, 0.937033, 0.954531);
39 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
42 of->AddPoint(-3024, 0);
43 of->AddPoint(143.556, 0);
44 of->AddPoint(166.222, 0.686275);
45 of->AddPoint(214.389, 0.696078);
46 of->AddPoint(419.736, 0.833333);
47 of->AddPoint(3071, 0.803922);
54 volProp->SetAmbient(0.1);
55 volProp->SetDiffuse(0.9);
56 volProp->SetInterpolationTypeToLinear();
58 volProp->SetSpecular(0.2);
59 volProp->SetSpecularPower(10);
62 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
66 case Presets::CT_AAA2:
69 ctf->AddRGBPoint(-3024, 0, 0, 0);
70 ctf->AddRGBPoint(129.542, 0.54902, 0.25098, 0.14902);
71 ctf->AddRGBPoint(145.244, 0.6, 0.627451, 0.843137);
72 ctf->AddRGBPoint(157.02, 0.890196, 0.47451, 0.6);
73 ctf->AddRGBPoint(169.918, 0.992157, 0.870588, 0.392157);
74 ctf->AddRGBPoint(395.575, 1, 0.886275, 0.658824);
75 ctf->AddRGBPoint(1578.73, 1, 0.829256, 0.957922);
76 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
79 of->AddPoint(-3024, 0);
80 of->AddPoint(129.542, 0);
81 of->AddPoint(145.244, 0.166667);
82 of->AddPoint(157.02, 0.5);
83 of->AddPoint(169.918, 0.627451);
84 of->AddPoint(395.575, 0.8125);
85 of->AddPoint(1578.73, 0.8125);
86 of->AddPoint(3071, 0.8125);
93 volProp->SetAmbient(0.1);
94 volProp->SetDiffuse(0.9);
95 volProp->SetInterpolationTypeToLinear();
97 volProp->SetSpecular(0.2);
98 volProp->SetSpecularPower(10);
101 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
105 case Presets::CT_BONE:
108 ctf->AddRGBPoint(-3024, 0, 0, 0);
109 ctf->AddRGBPoint(-16.4458, 0.729412, 0.254902, 0.301961);
110 ctf->AddRGBPoint(641.385, 0.905882, 0.815686, 0.552941);
111 ctf->AddRGBPoint(3071, 1, 1, 1);
114 of->AddPoint(-3024, 0);
115 of->AddPoint(-16.4458, 0);
116 of->AddPoint(641.385, 0.715686);
117 of->AddPoint(3071, 0.705882);
121 gf->AddPoint(255, 1);
124 volProp->SetAmbient(0.1);
125 volProp->SetDiffuse(0.9);
126 volProp->SetInterpolationTypeToLinear();
127 volProp->SetShade(1);
128 volProp->SetSpecular(0.2);
129 volProp->SetSpecularPower(10);
132 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
136 case Presets::CT_BONES:
139 ctf->AddRGBPoint(-1000, 0.3, 0.3, 1);
140 ctf->AddRGBPoint(-488, 0.3, 1, 0.3);
141 ctf->AddRGBPoint(463.28, 1, 0, 0);
142 ctf->AddRGBPoint(659.15, 1, 0.912535, 0.0374849);
143 ctf->AddRGBPoint(953, 1, 0.3, 0.3);
146 of->AddPoint(152.19, 0);
147 of->AddPoint(278.93, 0.190476);
148 of->AddPoint(952, 0.2);
152 gf->AddPoint(255, 1);
155 volProp->SetAmbient(0.2);
156 volProp->SetDiffuse(1);
157 volProp->SetInterpolationTypeToLinear();
158 volProp->SetShade(1);
159 volProp->SetSpecular(0);
160 volProp->SetSpecularPower(10);
163 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
167 case Presets::CT_CARDIAC:
170 ctf->AddRGBPoint(-3024, 0, 0, 0);
171 ctf->AddRGBPoint(-77.6875, 0.54902, 0.25098, 0.14902);
172 ctf->AddRGBPoint(94.9518, 0.882353, 0.603922, 0.290196);
173 ctf->AddRGBPoint(179.052, 1, 0.937033, 0.954531);
174 ctf->AddRGBPoint(260.439, 0.615686, 0, 0);
175 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
178 of->AddPoint(-3024, 0);
179 of->AddPoint(-77.6875, 0);
180 of->AddPoint(94.9518, 0.285714);
181 of->AddPoint(179.052, 0.553571);
182 of->AddPoint(260.439, 0.848214);
183 of->AddPoint(3071, 0.875);
187 gf->AddPoint(255, 1);
190 volProp->SetAmbient(0.1);
191 volProp->SetDiffuse(0.9);
192 volProp->SetInterpolationTypeToLinear();
193 volProp->SetShade(1);
194 volProp->SetSpecular(0.2);
195 volProp->SetSpecularPower(10);
198 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
202 case Presets::CT_CARDIAC2:
205 ctf->AddRGBPoint(-3024, 0, 0, 0);
206 ctf->AddRGBPoint(42.8964, 0.54902, 0.25098, 0.14902);
207 ctf->AddRGBPoint(163.488, 0.917647, 0.639216, 0.0588235);
208 ctf->AddRGBPoint(277.642, 1, 0.878431, 0.623529);
209 ctf->AddRGBPoint(1587, 1, 1, 1);
210 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
213 of->AddPoint(-3024, 0);
214 of->AddPoint(42.8964, 0);
215 of->AddPoint(163.488, 0.428571);
216 of->AddPoint(277.642, 0.776786);
217 of->AddPoint(1587, 0.754902);
218 of->AddPoint(3071, 0.754902);
222 gf->AddPoint(255, 1);
225 volProp->SetAmbient(0.1);
226 volProp->SetDiffuse(0.9);
227 volProp->SetInterpolationTypeToLinear();
228 volProp->SetShade(1);
229 volProp->SetSpecular(0.2);
230 volProp->SetSpecularPower(10);
233 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
237 case Presets::CT_CARDIAC3:
240 ctf->AddRGBPoint(-3024, 0, 0, 0);
241 ctf->AddRGBPoint(-86.9767, 0, 0.25098, 1);
242 ctf->AddRGBPoint(45.3791, 1, 0, 0);
243 ctf->AddRGBPoint(139.919, 1, 0.894893, 0.894893);
244 ctf->AddRGBPoint(347.907, 1, 1, 0.25098);
245 ctf->AddRGBPoint(1224.16, 1, 1, 1);
246 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
249 of->AddPoint(-3024, 0);
250 of->AddPoint(-86.9767, 0);
251 of->AddPoint(45.3791, 0.169643);
252 of->AddPoint(139.919, 0.589286);
253 of->AddPoint(347.907, 0.607143);
254 of->AddPoint(1224.16, 0.607143);
255 of->AddPoint(3071, 0.616071);
259 gf->AddPoint(255, 1);
262 volProp->SetAmbient(0.1);
263 volProp->SetDiffuse(0.9);
264 volProp->SetInterpolationTypeToLinear();
265 volProp->SetShade(1);
266 volProp->SetSpecular(0.2);
267 volProp->SetSpecularPower(10);
270 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
274 case Presets::CT_CHEST_CONTRAST_ENHANCED:
277 ctf->AddRGBPoint(-3024, 0, 0, 0);
278 ctf->AddRGBPoint(67.0106, 0.54902, 0.25098, 0.14902);
279 ctf->AddRGBPoint(251.105, 0.882353, 0.603922, 0.290196);
280 ctf->AddRGBPoint(439.291, 1, 0.937033, 0.954531);
281 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
284 of->AddPoint(-3024, 0);
285 of->AddPoint(67.0106, 0);
286 of->AddPoint(251.105, 0.446429);
287 of->AddPoint(439.291, 0.625);
288 of->AddPoint(3071, 0.616071);
292 gf->AddPoint(255, 1);
295 volProp->SetAmbient(0.1);
296 volProp->SetDiffuse(0.9);
297 volProp->SetInterpolationTypeToLinear();
298 volProp->SetShade(1);
299 volProp->SetSpecular(0.2);
300 volProp->SetSpecularPower(10);
303 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
307 case Presets::CT_CHEST_VESSELS:
310 ctf->AddRGBPoint(-3024, 0, 0, 0);
311 ctf->AddRGBPoint(-1278.35, 0.54902, 0.25098, 0.14902);
312 ctf->AddRGBPoint(22.8277, 0.882353, 0.603922, 0.290196);
313 ctf->AddRGBPoint(439.291, 1, 0.937033, 0.954531);
314 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
317 of->AddPoint(-3024, 0);
318 of->AddPoint(-1278.35, 0);
319 of->AddPoint(22.8277, 0.428571);
320 of->AddPoint(439.291, 0.625);
321 of->AddPoint(3071, 0.616071);
325 gf->AddPoint(255, 1);
328 volProp->SetAmbient(0.1);
329 volProp->SetDiffuse(1);
330 volProp->SetInterpolationTypeToLinear();
331 volProp->SetShade(1);
332 volProp->SetSpecular(0);
333 volProp->SetSpecularPower(1);
336 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
340 case Presets::CT_CORONARY_ARTERIES:
343 ctf->AddRGBPoint(-2048, 0, 0, 0);
344 ctf->AddRGBPoint(136.47, 0, 0, 0);
345 ctf->AddRGBPoint(159.215, 0.159804, 0.159804, 0.159804);
346 ctf->AddRGBPoint(318.43, 0.764706, 0.764706, 0.764706);
347 ctf->AddRGBPoint(478.693, 1, 1, 1);
348 ctf->AddRGBPoint(3661, 1, 1, 1);
351 of->AddPoint(-2048, 0);
352 of->AddPoint(136.47, 0);
353 of->AddPoint(159.215, 0.258929);
354 of->AddPoint(318.43, 0.571429);
355 of->AddPoint(478.693, 0.776786);
356 of->AddPoint(3661, 1);
360 gf->AddPoint(255, 1);
363 volProp->SetAmbient(0.2);
364 volProp->SetDiffuse(1);
365 volProp->SetInterpolationTypeToLinear();
366 volProp->SetShade(0);
367 volProp->SetSpecular(0);
368 volProp->SetSpecularPower(1);
371 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
375 case Presets::CT_CORONARY_ARTERIES_2:
378 ctf->AddRGBPoint(-2048, 0, 0, 0);
379 ctf->AddRGBPoint(142.677, 0, 0, 0);
380 ctf->AddRGBPoint(145.016, 0.615686, 0, 0.0156863);
381 ctf->AddRGBPoint(192.174, 0.909804, 0.454902, 0);
382 ctf->AddRGBPoint(217.24, 0.972549, 0.807843, 0.611765);
383 ctf->AddRGBPoint(384.347, 0.909804, 0.909804, 1);
384 ctf->AddRGBPoint(3661, 1, 1, 1);
387 of->AddPoint(-2048, 0);
388 of->AddPoint(142.677, 0);
389 of->AddPoint(145.016, 0.116071);
390 of->AddPoint(192.174, 0.5625);
391 of->AddPoint(217.24, 0.776786);
392 of->AddPoint(384.347, 0.830357);
393 of->AddPoint(3661, 0.830357);
397 gf->AddPoint(255, 1);
400 volProp->SetAmbient(0.2);
401 volProp->SetDiffuse(1);
402 volProp->SetInterpolationTypeToLinear();
403 volProp->SetShade(1);
404 volProp->SetSpecular(0);
405 volProp->SetSpecularPower(1);
408 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
412 case Presets::CT_CORONARY_ARTERIES_3:
415 ctf->AddRGBPoint(-2048, 0, 0, 0);
416 ctf->AddRGBPoint(128.643, 0, 0, 0);
417 ctf->AddRGBPoint(129.982, 0.615686, 0, 0.0156863);
418 ctf->AddRGBPoint(173.636, 0.909804, 0.454902, 0);
419 ctf->AddRGBPoint(255.884, 0.886275, 0.886275, 0.886275);
420 ctf->AddRGBPoint(584.878, 0.968627, 0.968627, 0.968627);
421 ctf->AddRGBPoint(3661, 1, 1, 1);
424 of->AddPoint(-2048, 0);
425 of->AddPoint(128.643, 0);
426 of->AddPoint(129.982, 0.0982143);
427 of->AddPoint(173.636, 0.669643);
428 of->AddPoint(255.884, 0.857143);
429 of->AddPoint(584.878, 0.866071);
430 of->AddPoint(3661, 1);
434 gf->AddPoint(255, 1);
437 volProp->SetAmbient(0.1);
438 volProp->SetDiffuse(0.9);
439 volProp->SetInterpolationTypeToLinear();
440 volProp->SetShade(1);
441 volProp->SetSpecular(0.2);
442 volProp->SetSpecularPower(10);
445 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
449 case Presets::CT_VOLUME_BONE:
452 ctf->AddRGBPoint(-2048, 0, 0, 0);
453 ctf->AddRGBPoint(-451, 0, 0, 0);
454 ctf->AddRGBPoint(-450, 0.0556356, 0.0556356, 0.0556356);
455 ctf->AddRGBPoint(1050, 1, 1, 1);
456 ctf->AddRGBPoint(3661, 1, 1, 1);
459 of->AddPoint(-2048, 0);
460 of->AddPoint(-451, 0);
461 of->AddPoint(-450, 1);
462 of->AddPoint(1050, 1);
463 of->AddPoint(3661, 1);
467 gf->AddPoint(255, 1);
470 volProp->SetAmbient(0.2);
471 volProp->SetDiffuse(1);
472 volProp->SetInterpolationTypeToLinear();
473 volProp->SetShade(0);
474 volProp->SetSpecular(0);
475 volProp->SetSpecularPower(1);
478 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
482 case Presets::CT_FAT:
485 ctf->AddRGBPoint(-1000, 0.3, 0.3, 1);
486 ctf->AddRGBPoint(-497.5, 0.3, 1, 0.3);
487 ctf->AddRGBPoint(-99, 0, 0, 1);
488 ctf->AddRGBPoint(-76.946, 0, 1, 0);
489 ctf->AddRGBPoint(-65.481, 0.835431, 0.888889, 0.0165387);
490 ctf->AddRGBPoint(83.89, 1, 0, 0);
491 ctf->AddRGBPoint(463.28, 1, 0, 0);
492 ctf->AddRGBPoint(659.15, 1, 0.912535, 0.0374849);
493 ctf->AddRGBPoint(2952, 1, 0.300267, 0.299886);
496 of->AddPoint(-1000, 0);
497 of->AddPoint(-100, 0);
498 of->AddPoint(-99, 0.15);
499 of->AddPoint(-60, 0.15);
500 of->AddPoint(-59, 0);
501 of->AddPoint(101.2, 0);
502 of->AddPoint(952, 0);
506 gf->AddPoint(255, 1);
509 volProp->SetAmbient(0.2);
510 volProp->SetDiffuse(1);
511 volProp->SetInterpolationTypeToLinear();
512 volProp->SetShade(0);
513 volProp->SetSpecular(0);
514 volProp->SetSpecularPower(1);
517 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
521 case Presets::CT_LIVER_VASCULATURE:
524 ctf->AddRGBPoint(-2048, 0, 0, 0);
525 ctf->AddRGBPoint(149.113, 0, 0, 0);
526 ctf->AddRGBPoint(157.884, 0.501961, 0.25098, 0);
527 ctf->AddRGBPoint(339.96, 0.695386, 0.59603, 0.36886);
528 ctf->AddRGBPoint(388.526, 0.854902, 0.85098, 0.827451);
529 ctf->AddRGBPoint(1197.95, 1, 1, 1);
530 ctf->AddRGBPoint(3661, 1, 1, 1);
533 of->AddPoint(-2048, 0);
534 of->AddPoint(149.113, 0);
535 of->AddPoint(157.884, 0.482143);
536 of->AddPoint(339.96, 0.660714);
537 of->AddPoint(388.526, 0.830357);
538 of->AddPoint(1197.95, 0.839286);
539 of->AddPoint(3661, 0.848214);
543 gf->AddPoint(255, 1);
546 volProp->SetAmbient(0.2);
547 volProp->SetDiffuse(1);
548 volProp->SetInterpolationTypeToLinear();
549 volProp->SetShade(0);
550 volProp->SetSpecular(0);
551 volProp->SetSpecularPower(1);
554 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
558 case Presets::CT_LUNG:
561 ctf->AddRGBPoint(-1000, 0.3, 0.3, 1);
562 ctf->AddRGBPoint(-600, 0, 0, 1);
563 ctf->AddRGBPoint(-530, 0.134704, 0.781726, 0.0724558);
564 ctf->AddRGBPoint(-460, 0.929244, 1, 0.109473);
565 ctf->AddRGBPoint(-400, 0.888889, 0.254949, 0.0240258);
566 ctf->AddRGBPoint(2952, 1, 0.3, 0.3);
569 of->AddPoint(-1000, 0);
570 of->AddPoint(-600, 0);
571 of->AddPoint(-599, 0.15);
572 of->AddPoint(-400, 0.15);
573 of->AddPoint(-399, 0);
574 of->AddPoint(2952, 0);
578 gf->AddPoint(255, 1);
581 volProp->SetAmbient(0.2);
582 volProp->SetDiffuse(1);
583 volProp->SetInterpolationTypeToLinear();
584 volProp->SetShade(1);
585 volProp->SetSpecular(0);
586 volProp->SetSpecularPower(1);
589 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
593 case Presets::CT_MIP:
596 ctf->AddRGBPoint(-3024, 0, 0, 0);
597 ctf->AddRGBPoint(-637.62, 1, 1, 1);
598 ctf->AddRGBPoint(700, 1, 1, 1);
599 ctf->AddRGBPoint(3071, 1, 1, 1);
602 of->AddPoint(-3024, 0);
603 of->AddPoint(-637.62, 0);
604 of->AddPoint(700, 1);
605 of->AddPoint(3071, 1);
609 gf->AddPoint(255, 1);
612 volProp->SetAmbient(0.1);
613 volProp->SetDiffuse(0.9);
614 volProp->SetInterpolationTypeToLinear();
615 volProp->SetShade(0);
616 volProp->SetSpecular(0.2);
617 volProp->SetSpecularPower(10);
620 mat->setBlendMode(VolumeRenderMaterial::BlendMode::MaximumIntensity);
624 case Presets::CT_MUSCLE:
627 ctf->AddRGBPoint(-3024, 0, 0, 0);
628 ctf->AddRGBPoint(-155.407, 0.54902, 0.25098, 0.14902);
629 ctf->AddRGBPoint(217.641, 0.882353, 0.603922, 0.290196);
630 ctf->AddRGBPoint(419.736, 1, 0.937033, 0.954531);
631 ctf->AddRGBPoint(3071, 0.827451, 0.658824, 1);
634 of->AddPoint(-3024, 0);
635 of->AddPoint(-155.407, 0);
636 of->AddPoint(217.641, 0.676471);
637 of->AddPoint(419.736, 0.833333);
638 of->AddPoint(3071, 0.803922);
642 gf->AddPoint(255, 1);
645 volProp->SetAmbient(0.1);
646 volProp->SetDiffuse(0.9);
647 volProp->SetInterpolationTypeToLinear();
648 volProp->SetShade(1);
649 volProp->SetSpecular(0.2);
650 volProp->SetSpecularPower(10);
653 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
657 case Presets::CT_PULMONARY_ARTERIES:
660 ctf->AddRGBPoint(-2048, 0, 0, 0);
661 ctf->AddRGBPoint(-568.625, 0, 0, 0);
662 ctf->AddRGBPoint(-364.081, 0.396078, 0.301961, 0.180392);
663 ctf->AddRGBPoint(-244.813, 0.611765, 0.352941, 0.0705882);
664 ctf->AddRGBPoint(18.2775, 0.843137, 0.0156863, 0.156863);
665 ctf->AddRGBPoint(447.798, 0.752941, 0.752941, 0.752941);
666 ctf->AddRGBPoint(3592.73, 1, 1, 1);
669 of->AddPoint(-2048, 0);
670 of->AddPoint(-568.625, 0);
671 of->AddPoint(-364.081, 0.0714286);
672 of->AddPoint(-244.813, 0.401786);
673 of->AddPoint(18.2775, 0.607143);
674 of->AddPoint(447.798, 0.830357);
675 of->AddPoint(3592.73, 0.839286);
679 gf->AddPoint(255, 1);
682 volProp->SetAmbient(0.2);
683 volProp->SetDiffuse(1);
684 volProp->SetInterpolationTypeToLinear();
685 volProp->SetShade(1);
686 volProp->SetSpecular(0);
687 volProp->SetSpecularPower(1);
690 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
694 case Presets::CT_SOFT_TISSUE:
697 ctf->AddRGBPoint(-2048, 0, 0, 0);
698 ctf->AddRGBPoint(-167.01, 0, 0, 0);
699 ctf->AddRGBPoint(-160, 0.0556356, 0.0556356, 0.0556356);
700 ctf->AddRGBPoint(240, 1, 1, 1);
701 ctf->AddRGBPoint(3661, 1, 1, 1);
704 of->AddPoint(-2048, 0);
705 of->AddPoint(-167.01, 0);
706 of->AddPoint(-160, 1);
707 of->AddPoint(240, 1);
708 of->AddPoint(3661, 1);
712 gf->AddPoint(255, 1);
715 volProp->SetAmbient(0.2);
716 volProp->SetDiffuse(1);
717 volProp->SetInterpolationTypeToLinear();
718 volProp->SetShade(0);
719 volProp->SetSpecular(0);
720 volProp->SetSpecularPower(1);
723 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
727 case Presets::CT_AIR:
730 ctf->AddRGBPoint(-3024, 1, 1, 1);
731 ctf->AddRGBPoint(-900.0, 0.2, 1.0, 1.0);
732 ctf->AddRGBPoint(-500.0, 0.3, 0.3, 1.0);
733 ctf->AddRGBPoint(3071, 0, 0, 0);
736 of->AddPoint(-3024, 0.705882);
737 of->AddPoint(-900.0, 0.715686);
738 of->AddPoint(-500.0, 0);
739 of->AddPoint(3071, 0);
743 gf->AddPoint(255, 1);
746 volProp->SetAmbient(0.9);
747 volProp->SetDiffuse(1);
748 volProp->SetInterpolationTypeToLinear();
749 volProp->SetShade(1);
750 volProp->SetSpecular(0.2);
751 volProp->SetSpecularPower(10);
754 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
758 case Presets::CT_X_RAY:
761 ctf->AddRGBPoint(-3024, 1, 1, 1);
762 ctf->AddRGBPoint(3071, 1, 1, 1);
765 of->AddPoint(-3024, 0);
766 of->AddPoint(-200.0, 0.0);
767 of->AddPoint(1500.0, 0.05);
768 of->AddPoint(3071, 0.05);
772 gf->AddPoint(255, 1);
775 volProp->SetAmbient(0.1);
776 volProp->SetDiffuse(1);
777 volProp->SetInterpolationTypeToLinear();
778 volProp->SetShade(0);
779 volProp->SetSpecular(0.2);
780 volProp->SetSpecularPower(10);
783 mat->setBlendMode(VolumeRenderMaterial::BlendMode::MaximumIntensity);
787 case Presets::MR_ANGIO:
790 ctf->AddRGBPoint(-2048, 0, 0, 0);
791 ctf->AddRGBPoint(151.354, 0, 0, 0);
792 ctf->AddRGBPoint(158.279, 0.74902, 0.376471, 0);
793 ctf->AddRGBPoint(190.112, 1, 0.866667, 0.733333);
794 ctf->AddRGBPoint(200.873, 0.937255, 0.937255, 0.937255);
795 ctf->AddRGBPoint(3661, 1, 1, 1);
798 of->AddPoint(-2048, 0);
799 of->AddPoint(151.354, 0);
800 of->AddPoint(158.279, 0.4375);
801 of->AddPoint(190.112, 0.580357);
802 of->AddPoint(200.873, 0.732143);
803 of->AddPoint(3661, 0.741071);
807 gf->AddPoint(255, 1);
810 volProp->SetAmbient(0.2);
811 volProp->SetDiffuse(1);
812 volProp->SetInterpolationTypeToLinear();
813 volProp->SetShade(1);
814 volProp->SetSpecular(0);
815 volProp->SetSpecularPower(1);
818 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
822 case Presets::MR_DEFAULT:
825 ctf->AddRGBPoint(0, 0, 0, 0);
826 ctf->AddRGBPoint(20, 0.168627, 0, 0);
827 ctf->AddRGBPoint(40, 0.403922, 0.145098, 0.0784314);
828 ctf->AddRGBPoint(120, 0.780392, 0.607843, 0.380392);
829 ctf->AddRGBPoint(220, 0.847059, 0.835294, 0.788235);
830 ctf->AddRGBPoint(1024, 1, 1, 1);
835 of->AddPoint(40, 0.15);
836 of->AddPoint(120, 0.3);
837 of->AddPoint(220, 0.375);
838 of->AddPoint(1024, 0.5);
842 gf->AddPoint(255, 1);
845 volProp->SetAmbient(0.2);
846 volProp->SetDiffuse(1);
847 volProp->SetInterpolationTypeToLinear();
848 volProp->SetShade(1);
849 volProp->SetSpecular(0);
850 volProp->SetSpecularPower(1);
853 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
857 case Presets::MR_MIP:
860 ctf->AddRGBPoint(0, 1, 1, 1);
861 ctf->AddRGBPoint(98.3725, 1, 1, 1);
862 ctf->AddRGBPoint(416.637, 1, 1, 1);
863 ctf->AddRGBPoint(2800, 1, 1, 1);
867 of->AddPoint(98.3725, 0);
868 of->AddPoint(416.637, 1);
869 of->AddPoint(2800, 1);
873 gf->AddPoint(255, 1);
876 volProp->SetAmbient(0.2);
877 volProp->SetDiffuse(1);
878 volProp->SetInterpolationTypeToLinear();
879 volProp->SetShade(0);
880 volProp->SetSpecular(0);
881 volProp->SetSpecularPower(1);
884 mat->setBlendMode(VolumeRenderMaterial::BlendMode::MaximumIntensity);
888 case Presets::MR_T2_BRAIN:
891 ctf->AddRGBPoint(0, 0, 0, 0);
892 ctf->AddRGBPoint(98.7223, 0.956863, 0.839216, 0.192157);
893 ctf->AddRGBPoint(412.406, 0, 0.592157, 0.807843);
894 ctf->AddRGBPoint(641, 1, 1, 1);
898 of->AddPoint(36.05, 0);
899 of->AddPoint(218.302, 0.171429);
900 of->AddPoint(412.406, 1);
901 of->AddPoint(641, 1);
905 gf->AddPoint(255, 1);
908 volProp->SetAmbient(0.3);
909 volProp->SetDiffuse(1);
910 volProp->SetInterpolationTypeToLinear();
911 volProp->SetShade(1);
912 volProp->SetSpecular(0.5);
913 volProp->SetSpecularPower(40);
916 mat->setBlendMode(VolumeRenderMaterial::BlendMode::Alpha);
926 VolumeRenderMaterialPresets::getPresetName(Presets p)
928 if (p >= Presets::NUM_PRESETS)
932 const char* presets[] = {
940 "CT_CHEST_CONTRAST_ENHANCED",
942 "CT_CORONARY_ARTERIES",
943 "CT_CORONARY_ARTERIES_2",
944 "CT_CORONARY_ARTERIES_3",
947 "CT_LIVER_VASCULATURE",
951 "CT_PULMONARY_ARTERIES",
960 return presets[
static_cast<int>(p)];
static std::shared_ptr< VolumeRenderMaterial > getPreset(Presets p=Presets::CT_BONES)
TODO.