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 itkHSVColormapFunction_h 19 #define itkHSVColormapFunction_h 20 21 #include "itkColormapFunction.h" 22 23 namespace itk 24 { 25 namespace Function 26 { 27 /** 28 * \class HSVColormapFunction 29 * \brief Function object which maps a scalar value into an RGB colormap value. 30 * 31 * \image html HSVColormapFunction.png "HSV colormap." 32 * 33 * \author Nicholas Tustison, Hui Zhang, Gaetan Lehmann, Paul Yushkevich 34 * and James C. Gee 35 * 36 * This code was contributed in the Insight Journal paper: 37 * 38 * "Meeting Andy Warhol Somewhere Over the Rainbow: RGB Colormapping and ITK" 39 * http://www.insight-journal.org/browse/publication/285 40 * https://hdl.handle.net/1926/1452 41 * 42 * \ingroup ITKColormap 43 */ 44 template< typename TScalar, typename TRGBPixel > 45 class ITK_TEMPLATE_EXPORT HSVColormapFunction: 46 public ColormapFunction< TScalar, TRGBPixel > 47 { 48 public: 49 ITK_DISALLOW_COPY_AND_ASSIGN(HSVColormapFunction); 50 51 using Self = HSVColormapFunction; 52 using Superclass = ColormapFunction< TScalar, TRGBPixel >; 53 using Pointer = SmartPointer< Self >; 54 using ConstPointer = SmartPointer< const Self >; 55 56 /** Method for creation through the object factory. */ 57 itkNewMacro(Self); 58 59 using RGBPixelType = typename Superclass::RGBPixelType; 60 using ScalarType = typename Superclass::ScalarType; 61 using RealType = typename Superclass::RealType; 62 63 RGBPixelType operator()(const TScalar &) const override; 64 65 protected: 66 HSVColormapFunction() = default; 67 ~HSVColormapFunction() override = default; 68 }; 69 } // end namespace Function 70 } // end namespace itk 71 72 #ifndef ITK_MANUAL_INSTANTIATION 73 #include "itkHSVColormapFunction.hxx" 74 #endif 75 76 #endif 77