]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkRescaleSlopeIntercept.cxx
no message
[bbtk.git] / packages / vtk / src / bbvtkRescaleSlopeIntercept.cxx
index 911d6626c66cbce1b5d25077fb9b6f961ddfa889..cb1a77050240e041c2764afd6d908b74d0d23f95 100644 (file)
@@ -92,12 +92,17 @@ void RescaleSlopeIntercept::Process()
                        shift= A + (range[1]*newdifrange/difrange);
                } // if type 3
                
-               filter->SetInput( bbGetInputIn() );
-               filter->SetOutputScalarType( outputformat );
-               filter->SetScale( scale );
-               filter->SetShift( shift );
+               filter1->SetInput( bbGetInputIn() );
+               filter1->SetOutputScalarType( VTK_DOUBLE );
+               filter1->SetShift( 0 );
+               filter1->SetScale( scale );
                
-               mchange->SetInput( filter->GetOutput() );
+               filter2->SetInput( filter1->GetOutput() );
+               filter2->SetOutputScalarType( outputformat );
+               filter2->SetShift( shift );
+               filter2->SetScale( 1 );
+               
+               mchange->SetInput( filter2->GetOutput() );
                mchange->SetExtentTranslation( -ext[0], -ext[2], -ext[4] );
                mchange->SetOutputSpacing (spc);
                mchange->Update();    //important
@@ -121,7 +126,8 @@ void RescaleSlopeIntercept::bbUserSetDefaultValues()
        bbSetInputB(0);
        bbSetInputOutputFormat("SAME");
 
-       filter  = NULL;
+       filter1 = NULL;
+       filter2 = NULL;
        mchange = NULL;
 }
 //===== 
@@ -135,7 +141,8 @@ void RescaleSlopeIntercept::bbUserInitializeProcessing()
 //    but this is where you should allocate the internal/output pointers 
 //    if any 
 
-       filter  = vtkImageShiftScale::New();
+       filter1 = vtkImageShiftScale::New();
+       filter2 = vtkImageShiftScale::New();
        mchange = vtkImageChangeInformation::New();
 
   
@@ -151,7 +158,8 @@ void RescaleSlopeIntercept::bbUserFinalizeProcessing()
 //    but this is where you should desallocate the internal/output pointers 
 //    if any
        mchange->Delete();              
-       filter->Delete();
+       filter1->Delete();
+       filter2->Delete();
 }
        
 }