Go to the documentation of this file.00001
00017 #pragma once
00018
00031 #if defined(GrayscaleColorMap_RECURSES)
00032 #error Recursive header files inclusion detected in GrayscaleColorMap.h
00033 #else // defined(GrayscaleColorMap_RECURSES)
00034
00035 #define GrayscaleColorMap_RECURSES
00036
00037 #if !defined GrayscaleColorMap_h
00038
00039 #define GrayscaleColorMap_h
00040
00042
00043 #include <iostream>
00044 #include "DGtal/base/Common.h"
00045 #include "Board/Board.h"
00046 #include "Board/Color.h"
00048
00049 namespace DGtal
00050 {
00051
00053
00080 template <typename PValueType>
00081 class GrayscaleColorMap
00082 {
00083
00084 public:
00085
00086 typedef PValueType ValueType;
00087
00088
00089 public:
00090
00097 GrayscaleColorMap( const PValueType & min,
00098 const PValueType & max );
00099
00100
00108 LibBoard::Color operator()( const PValueType & value ) const;
00109
00113 ~GrayscaleColorMap();
00114
00119 GrayscaleColorMap ( const GrayscaleColorMap & other );
00120
00126 GrayscaleColorMap & operator= ( const GrayscaleColorMap & other );
00127
00128
00129 public:
00130
00135 void selfDisplay ( std::ostream & out ) const;
00136
00141 bool isValid() const;
00142
00148 const PValueType & min() const;
00149
00155 const PValueType & max() const;
00156
00157
00158
00159
00169 static LibBoard::Color getColor( const PValueType & min,
00170 const PValueType & max,
00171 const PValueType & value );
00172
00173
00174 private:
00175
00176
00177 private:
00178
00179
00180 protected:
00181
00182 PValueType myMin;
00183 PValueType myMax;
00189 GrayscaleColorMap();
00190
00191
00192 private:
00193
00194 };
00195
00196
00203 template <typename PValueType>
00204 std::ostream&
00205 operator<< ( std::ostream & out, const GrayscaleColorMap<PValueType> & object );
00206
00207 }
00208
00209
00211
00212 #include "DGtal/io/colormaps/GrayscaleColorMap.ih"
00213
00214
00216
00217 #endif // !defined GrayscaleColorMap_h
00218
00219 #undef GrayscaleColorMap_RECURSES
00220 #endif // else defined(GrayscaleColorMap_RECURSES)