//=========================================================================
ColorLayerImageView::ColorLayerImageView( )
{
- _z2 = 0;
+ _z2 = 0;
_fix_dynamic = true;
_color_type = false;
}
//----------------------------------------------------------------------------
void ColorLayerImageView::SetGreyLevelBoundaries(std::vector<double> & grey_level_boundary)
{
+ _grey_level_boundary = grey_level_boundary;
+
+//EED 2017 / 11 / 27
+/*
// The size must be greater than or equal to 2 (at least min and max must exist).
if ( grey_level_boundary.size() >= 2)
{
// Otherwise, an exception should be thrown.
else if (grey_level_boundary.size() != 0)
std::cout << "CM ColorLayerImageView::SetGreyLevelBoundaries : ERROR!!! The grey level boundaries vector has an inconsistent size. It must be of a size greater than or equal to 2 (at least min and max must exist), but its size is: " << grey_level_boundary.size() << ". Therefore, the histogram will be equally split." << std::endl;
+*/
+
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
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;
_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();
//----------------------------------------------------------------------------
void ColorLayerImageView::ConfigLookupTable() // virtual
{
+
// CM 2014
// EED 28/01/2015
// Grey level extrema retrieved from the image grey level extrema.
// ------------------ 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)
+ {
+//EED 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;
+//EED 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())
+ {
+//EED 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;
+//EED 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
_transparence_level_boundary.push_back(1);
}
+
// ------------------ Defining the Threshold Table
vtkLookupTable* thresholdTable = GetThresholdTable();
thresholdTable->SetRampToLinear( );
maxColorsThresholdTable = 1000;
- thresholdTable->SetNumberOfTableValues( maxColorsThresholdTable );
+ thresholdTable->SetNumberOfTableValues( maxColorsThresholdTable+1 );
thresholdTable->SetNanColor(0,0,0,0);
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
// thresholdTable->SetBelowRangeColor(0,0,0,0);
thresholdTable->Build( );
-
//EO CM EED
}
//----------------------------------------------------------------------------
int ColorLayerImageView::GrayLevel_TO_colorTableIndex( double VALUE )
{
+
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
GetImage()->Update();
+#else
+ //...
+#endif
+
+
+
//EED 20 oct 2015
// GetImage()->GetScalarRange(_range);