BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: colorMap.h,v 1.2.18.1 2007/03/25 21:25:40 oliver Exp $ 00005 // 00006 00007 #ifndef BALL_VIEW_DATATYPE_COLORMAP_H 00008 #define BALL_VIEW_DATATYPE_COLORMAP_H 00009 00010 #ifndef BALL_VIEW_DATATYPE_COLORRGBA_H 00011 # include <BALL/VIEW/DATATYPE/colorRGBA.h> 00012 #endif 00013 00014 #ifndef BALL_MATHS_VECTOR4_H 00015 # include <BALL/MATHS/vector4.h> 00016 #endif 00017 00018 #include <vector> 00019 00020 namespace BALL 00021 { 00022 namespace VIEW 00023 { 00028 class BALL_VIEW_EXPORT ColorMap 00029 : public vector<ColorRGBA> 00030 { 00031 public: 00032 00033 BALL_CREATE(ColorMap) 00034 00035 00038 00042 ColorMap(); 00043 00048 ColorMap(Size color_number); 00049 00054 ColorMap(const ColorMap& color_Map); 00055 00061 ColorMap(Size size, const ColorRGBA& color, bool alpha_blending=false); 00062 00065 ColorMap(const ColorMap& color_Map, Index from, Index to, bool alpha_blending=false); 00066 00069 ColorMap(const ColorRGBA* color_array, Size array_size, bool alpha_blending=false); 00070 00073 virtual ~ColorMap(); 00075 00079 00081 void createMapJet(const Size color_number); 00082 00084 void setBaseColors(const ColorRGBA* color_array, Size array_size); 00085 00087 void setNumberOfColors(const Size color_number); 00088 00090 Size getNumberOfColors() const; 00091 00093 void setAlphaBlending(bool blending); 00094 00096 bool getAlphaBlending() const; 00097 00101 Size createMap(); 00102 00105 void setMinMaxColors(ColorRGBA min, ColorRGBA max); 00106 00109 void setRange(float min, float max); 00110 00113 ColorRGBA& map(float value); 00114 00117 const ColorRGBA& map(float value) const; 00118 00124 bool setInterpolationBoundaries(const vector<Vector4>& boundaries); 00125 00127 00130 00133 virtual void dump(std::ostream& s = std::cout, Size depth = 0) const; 00135 00136 protected: 00137 00138 Size color_number_; 00139 bool alpha_blending_; 00140 ColorRGBA min_color_; 00141 ColorRGBA max_color_; 00142 bool has_min_max_colors_; 00143 float min_; 00144 float max_; 00145 00146 vector<Vector4> interpolation_boundaries_; 00147 }; 00148 00149 } // namespace VIEW 00150 } // namespace BALL 00151 00152 #endif // BALL_VIEW_DATATYPE_COLORMAP_H