1 /*=========================================================================
2  *
3  *  Copyright Insight Software Consortium
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *         http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkCopperColormapFunction_hxx
19 #define itkCopperColormapFunction_hxx
20 
21 #include "itkCopperColormapFunction.h"
22 
23 namespace itk
24 {
25 namespace Function
26 {
27 template< typename TScalar, typename TRGBPixel >
28 typename CopperColormapFunction< TScalar, TRGBPixel >::RGBPixelType
29 CopperColormapFunction< TScalar, TRGBPixel >
operator ()(const TScalar & v) const30 ::operator()(const TScalar & v) const
31 {
32   // Map the input scalar between [0, 1].
33   RealType value = this->RescaleInputValue(v);
34 
35   // Apply the color map.
36   RealType red = 1.2 * value;
37 
38   red = std::min(1.0, red);
39 
40   RealType green = 0.8 * value;
41 
42   RealType blue = 0.5 * value;
43 
44   // Set the rgb components after rescaling the values.
45   RGBPixelType pixel;
46   NumericTraits<TRGBPixel>::SetLength(pixel, 3);
47 
48   pixel[0] = this->RescaleRGBComponentValue(red);
49   pixel[1] = this->RescaleRGBComponentValue(green);
50   pixel[2] = this->RescaleRGBComponentValue(blue);
51 
52   return pixel;
53 }
54 } // end namespace Function
55 } // end namespace itk
56 
57 #endif
58