]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/ThresholdImageView/ColorLayerImageView.cxx
#3086 creaMaracasVisu Bug New Normal - Init opacity in ColorLayer box
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / ThresholdImageView / ColorLayerImageView.cxx
index 1f66131a66e8263cea5772564875569df9136b97..299b737dc7a1a2605446d95a3a43972bd744e0a5 100644 (file)
@@ -45,7 +45,7 @@
 //=========================================================================
 ColorLayerImageView::ColorLayerImageView( )
 {
-  _z2                                  =       0;
+  _z2                          =       0;
   _fix_dynamic         =       true;
   _color_type          =       false;
 }
@@ -207,13 +207,14 @@ int ColorLayerImageView::GetBaseColorNb()
 //----------------------------------------------------------------------------
 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;
+       // 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;
@@ -237,12 +238,12 @@ void ColorLayerImageView::SetDefaultGreyLevelBoundary()
                        _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();
@@ -313,17 +314,31 @@ void ColorLayerImageView::ConfigLookupTable()  // virtual
   // ------------------ Setting Default Values
   // Checks the size consistency of vectors _base_color and _grey_level_boundary.
   // In case of inconsistency, an exception should be thrown. Instead, the default values are set.
-  if (GetBaseColorNb() == 0)
+
+       if (GetBaseColorNb() == 0)
        {
                SetDefaultBaseColorAndGreyLevelBoundary();
-       }
-   else {  // If at least one color has been set, set the grey level boundaries to build an equipartition of the image grey levels, keeping the base colors defined.
-      if (GetBaseColorNb() != (int)_grey_level_boundary.size() )
-      {
-                       std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size() - 1 (=" << _grey_level_boundary.size() - 1 << ")." << std::endl;
-                       std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl;
-                       SetDefaultGreyLevelBoundary();     
-      }
+       } else {  // If at least one color has been set, set the grey level boundaries to build an equipartition of the image grey levels, keeping the base colors defined.
+               if (_color_type==true)  // Plain
+               {
+               if (GetBaseColorNb() != (int)_grey_level_boundary.size()-1)
+               {
+                               std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size()+1 (=" << _grey_level_boundary.size()<<"+1)." << std::endl;
+                               std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl;
+                               SetDefaultGreyLevelBoundary();     
+               } // if 
+               } // _color_type 
+
+               if (_color_type==false)  // Gradiant
+               {
+               if (GetBaseColorNb() != (int)_grey_level_boundary.size())
+               {
+                               std::cout << "CM ColorLayerImageView::ConfigLookupTable : ERROR!!! Inconsistency between the sizes of vectors _base_color and _grey_level_boundary. _base_color.size()/3 (=" <<_base_color.size()/3 << ") should be equal to _grey_level_boundary.size() (=" << _grey_level_boundary.size()<<")." << std::endl;
+                               std::cout << "CM The default values for the base colors and the grey level boundaries will be set." << std::endl;
+                               SetDefaultGreyLevelBoundary();     
+               } // if 
+               } // _color_type 
+
    }
   // ------------------ End Of Setting Default Values
 
@@ -333,6 +348,7 @@ void ColorLayerImageView::ConfigLookupTable()  // virtual
       _transparence_level_boundary.push_back(1);
        }
 
+
   // ------------------ Defining the Threshold Table
   vtkLookupTable* thresholdTable = GetThresholdTable();
 
@@ -355,7 +371,7 @@ void ColorLayerImageView::ConfigLookupTable()  // virtual
   thresholdTable->SetRampToLinear( );
 
   maxColorsThresholdTable = 1000;
-  thresholdTable->SetNumberOfTableValues( maxColorsThresholdTable );
+  thresholdTable->SetNumberOfTableValues( maxColorsThresholdTable+1 );
   thresholdTable->SetNanColor(0,0,0,0);
 
 
@@ -406,6 +422,7 @@ void ColorLayerImageView::ConfigLookupTable()  // virtual
                                end     = GrayLevel_TO_colorTableIndex( GetGreyLevelBoundaries(iColor+1) );  
                        t1              = _transparence_level_boundary[iColor];
                                t2              = _transparence_level_boundary[iColor+1];
+printf("EED ColorLayerImageView::ConfigLookupTable   Make something with transparence \n");
                                FillColorTable( start,end, r1,g1,b1, r2,g2,b2, t1,t2 );
                        }// for 
                } //if                          
@@ -422,6 +439,7 @@ void ColorLayerImageView::ConfigLookupTable()  // virtual
 
   thresholdTable->Build( );
 
+
   //EO CM EED
 }