+//----------------------------------------------------------------------------
+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;
+ }
+
+ // Grey level extrema are set by default to the image grey level extrema.
+ int minTot = floor (_range[0]);
+ int maxTot = ceil (_range[1]);
+
+ _grey_level_boundary.push_back((double)minTot);
+
+ // By default, the histogram is split into BaseColorNb areas of equal width.
+ double delta = (maxTot - minTot)/GetBaseColorNb();
+ for (int i = 1; i <= GetBaseColorNb() ; i ++)
+ {
+ _grey_level_boundary.push_back((double)minTot + i * delta);
+ }
+}
+
+//----------------------------------------------------------------------------
+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(1.0);
+ // Yellow.
+ _base_color.push_back(1.0);
+ _base_color.push_back(1.0);
+ _base_color.push_back(0.0);
+ // Red.
+ _base_color.push_back(1.0);
+ _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;
+ }
+
+ int minTot = floor (_range[0]);
+ int maxTot = ceil (_range[1]);
+
+ _grey_level_boundary.push_back((double)minTot);
+
+ // By default, the histogram is split into three areas of equal width.
+ double delta = (maxTot - minTot)/3.0;
+ _grey_level_boundary.push_back(minTot + delta);
+ _grey_level_boundary.push_back(minTot + 2*delta);
+
+ _grey_level_boundary.push_back((double)maxTot);
+}