+//----------------------------------------------------------------------------
+void ColorLayerImageView::SetPlainOrGradientColor(bool color_type)
+{
+ _color_type = color_type;
+}
+
+//----------------------------------------------------------------------------
+int ColorLayerImageView::GetBaseColorNb()
+{
+ return _base_color.size()/3;
+}
+
+//----------------------------------------------------------------------------
+void ColorLayerImageView::SetDefaultGreyLevelBoundary()
+{
+
+ // CM Sets the default behaviour concerning the lookup table keeping the base colors already set.
+ _grey_level_boundary.clear();
+
+ // This avoids a potential division by 0 through delta during the lookup table configuration.
+ if (_range[1]==0)
+ {
+ _range[1]=255;
+ }
+
+ int i;
+ double delta;
+ // Grey level extrema are set by default to the image grey level extrema.
+ double minTot = _range[0];
+ double maxTot = _range[1];
+
+ if (_color_type)
+ {
+ delta = (maxTot - minTot)/GetBaseColorNb();
+ // By default, the histogram is split into BaseColorNb areas of equal width.
+ for (i = 0; i <= GetBaseColorNb() ; i ++)
+ {
+ _grey_level_boundary.push_back(minTot + i * delta);
+ } // for
+ } else {
+ delta = (maxTot - minTot)/(GetBaseColorNb()-1);
+ for (i = 0; i < GetBaseColorNb() ; i ++)
+ {
+ _grey_level_boundary.push_back(minTot + i * delta);
+ } // for
+ } // if
+}
+
+//----------------------------------------------------------------------------
+void ColorLayerImageView::SetDefaultBaseColorAndGreyLevelBoundary()
+{
+
+ // CM Sets the default behaviour concerning the lookup table.
+ _grey_level_boundary.clear();
+ _base_color.clear();
+ // Base colors are set to blue, yellow and red.
+ // Blue.
+ _base_color.push_back(0.0);
+ _base_color.push_back(0.0);
+ _base_color.push_back(0.5);
+
+ _base_color.push_back(0.0);
+ _base_color.push_back(0.0);
+ _base_color.push_back(1.0);
+
+ _base_color.push_back(0.0);
+ _base_color.push_back(1.0);
+ _base_color.push_back(1.0);
+
+ _base_color.push_back(1.0);
+ _base_color.push_back(1.0);
+ _base_color.push_back(0.0);
+
+ _base_color.push_back(1.0);
+ _base_color.push_back(0.0);
+ _base_color.push_back(0.0);
+
+ _base_color.push_back(0.5);
+ _base_color.push_back(0.0);
+ _base_color.push_back(0.0);
+
+
+ // This avoids a potential division by 0 through delta during the lookup table configuration.
+ if (_range[1]==0)
+ {
+ _range[1]=255;
+ }
+
+// double minTot = floor (_range[0]);
+// double maxTot = ceil (_range[1]);
+ double minTot = _range[0];
+ double maxTot = _range[1];
+
+ double delta = (maxTot - minTot)/8.0;
+ // By default, the histogram is split into three areas of equal width.
+
+ _grey_level_boundary.push_back(minTot + delta*0);
+ _grey_level_boundary.push_back(minTot + delta*1);
+// _grey_level_boundary.push_back(minTot + delta*2);
+ _grey_level_boundary.push_back(minTot + delta*3);
+// _grey_level_boundary.push_back(minTot + delta*4);
+ _grey_level_boundary.push_back(minTot + delta*5);
+ // _grey_level_boundary.push_back(minTot + delta*6);
+ _grey_level_boundary.push_back(minTot + delta*7);
+ _grey_level_boundary.push_back(minTot + delta*8);
+}