]> Creatis software - creaMaracasVisu.git/blob - lib/Kernel/ITKVTK/itkvtkcolortransferfunction.txx
Support #1768 CREATIS Licence insertion
[creaMaracasVisu.git] / lib / Kernel / ITKVTK / itkvtkcolortransferfunction.txx
1 /*# ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
4 #                        pour la Sant�)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8 #
9 #  This software is governed by the CeCILL-B license under French law and 
10 #  abiding by the rules of distribution of free software. You can  use, 
11 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
12 #  license as circulated by CEA, CNRS and INRIA at the following URL 
13 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
14 #  or in the file LICENSE.txt.
15 #
16 #  As a counterpart to the access to the source code and  rights to copy,
17 #  modify and redistribute granted by the license, users are provided only
18 #  with a limited warranty  and the software's author,  the holder of the
19 #  economic rights,  and the successive licensors  have only  limited
20 #  liability. 
21 #
22 #  The fact that you are presently reading this means that you have had
23 #  knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */ 
25
26 #ifndef ITKVTKCOLORTRANSFERFUNCTION_TXX
27 #define ITKVTKCOLORTRANSFERFUNCTION_TXX
28
29 namespace itk{
30
31
32 template< class TypeImage>
33 VTKColorTransferFunction<TypeImage>::VTKColorTransferFunction()
34 {
35
36 }
37
38 template< class TypeImage>
39 VTKColorTransferFunction<TypeImage>::~VTKColorTransferFunction()
40 {
41     m_Output->Delete();
42 }
43
44 template< class TypeImage>
45 void VTKColorTransferFunction<TypeImage>::Update(){
46     GenerateOutputInformation();
47     GenerateData();
48 }
49
50 template< class TypeImage>
51 void VTKColorTransferFunction<TypeImage>::GenerateOutputInformation(){
52      m_Output = vtkColorTransferFunction::New();
53 }
54
55
56
57 template< class TypeImage>
58 void VTKColorTransferFunction<TypeImage>::GenerateData(){
59
60
61
62     InputImagePointerType imagergb = this->GetInput();
63
64     if(!imagergb){
65         itkExceptionMacro(<<"Set the image first!");
66     }
67
68
69     typedef itk::ImageRegionConstIterator< InputImageType > rgbiteratorType;
70     rgbiteratorType rgbit(imagergb, imagergb->GetLargestPossibleRegion());
71
72
73     rgbit.GoToBegin();
74
75
76     m_Output->RemoveAllPoints ();
77
78
79     while(!rgbit.IsAtEnd()){
80
81
82         typename InputImageType::PixelType::ComponentType lum = 0.299*rgbit.Get()[0] + 0.587*rgbit.Get()[1] + 0.114*rgbit.Get()[2];
83
84         m_Output->AddRGBPoint(lum, rgbit.Get()[0]/255.0, rgbit.Get()[1]/255.0, rgbit.Get()[2]/255.0);
85
86         ++rgbit;        
87
88     }
89
90
91
92
93 }
94
95 }
96 #endif