LayerImageBase::LayerImageBase()
{
- _actorPresent = false;
- _X = 0;
- _Y = 0;
- _Z = 0;
+ _actorPresent = false;
+ _X = 0;
+ _Y = 0;
+ _Z = 0;
_thresholdTable = NULL;
- _thresholdMapper = NULL;
+ _thresholdMapper = NULL;
_scalarbarActor = NULL;
_thresholdActor = NULL;
- _image = NULL;
- _baseView = NULL;
- _imageReslicer = vtkImageReslice::New();
+ _image = NULL;
+ _baseView = NULL;
+ _imageReslicer = vtkImageReslice::New();
}
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void LayerImageBase::SetImage(vtkImageData* image)
{
+ double spc[3];
+ int ext[6];
_image = image;
+ _image->GetSpacing(spc);
+ _image->GetWholeExtent(ext);
+ int sx=ext[1]-ext[0]+1;
+ int sy=ext[3]-ext[2]+1;
+ int sz=ext[5]-ext[4]+1;
+ int ssx=(sx/2)*spc[0];
+ int ssy=(sy/2)*spc[1];
+ int ssz=(sz/2)*spc[2];
+ SetX( ssx );
+ SetY( ssy );
+ SetZ( ssz );
+ _image->Update();
+ _image->GetScalarRange( _range );
+ _thresholdTable = vtkLookupTable::New();
+}
+
+void LayerImageBase::SetRangeForColorBar(std::vector<double> &range)
+{
+ _rangeForColorBar=range;
}
+void LayerImageBase::GetRangeForColorBar(double &minRange, double &maxRange)
+{
+ if (_rangeForColorBar.size()==2)
+ {
+ minRange = _rangeForColorBar[0];
+ maxRange = _rangeForColorBar[1];
+ } else {
+ minRange = _range[0];
+ maxRange = _range[1];
+ }
+}
+
+
+
//----------------------------------------------------------------------------
void LayerImageBase::SetwxVtkBaseView(wxVtkBaseView *baseview)
{
if (_baseView==NULL)
{
_baseView = baseview;
-// Old EED 2014 11 13
-// vtkInteractorStyleBaseView *isbv = (vtkInteractorStyleBaseView*)(_baseView->GetInteractorStyleBaseView());
-// isbv->AddInteractorStyleMaracas( new ColorLayerImageBasevtkInteractor(this) );
-
ColorLayerObserver *colorlayerobserver = ColorLayerObserver::New();
_baseView->GetVtkBaseData()->AddObserver( 1, colorlayerobserver );
colorlayerobserver->SetLayerImageBase(this);
return _imageReslicer;
}
+//----------------------------------------------------------------------------
+void LayerImageBase::GetImageScalarRange()
+{
+ double min,max;
+ GetRangeForColorBar(min,max);
+// _image->GetScalarRange(_range);
+ _range[0]=min;
+ _range[1]=max;
+}
+
// EOF