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