]> Creatis software - creaRigidRegistration.git/blob - PackRecalage/src/bbPackRecalageReSlicerBox.cxx
avoid warning
[creaRigidRegistration.git] / PackRecalage / src / bbPackRecalageReSlicerBox.cxx
1 #include "bbPackRecalageReSlicerBox.h"
2 #include "bbPackRecalagePackage.h"
3
4 namespace bbPackRecalage
5 {
6
7 BBTK_ADD_BLACK_BOX_TO_PACKAGE(PackRecalage,ReSlicerBox)
8 BBTK_BLACK_BOX_IMPLEMENTATION(ReSlicerBox,bbtk::AtomicBlackBox);
9 void ReSlicerBox::Process()
10 {
11  
12         if(bbGetInputOrigin()[0])
13         {
14                 image = vtkImageChangeInformation::New();
15                 image->SetInput( bbGetInputIn() );
16                 image->SetOutputSpacing( 1,1,1 ); 
17         
18                 slicer =vtkImageReslice::New();
19                 slicer->SetInput( image->GetOutput() );
20                 slicer->SetResliceTransform(bbGetInputTransform());
21                 slicer->SetOutputOrigin( 0 , 0 , 0 );
22                 slicer->SetOutputOrigin( -(bbGetInputOrigin()[0]) , -(bbGetInputOrigin()[1]) , -(bbGetInputOrigin()[2]) );
23                 slicer->Update();
24         
25                 imageResult = vtkImageChangeInformation::New();
26                 imageResult->SetInput( slicer->GetOutput() );
27                 double spc[3];
28                 bbGetInputIn()->GetSpacing(spc);
29                 imageResult->SetOutputSpacing( spc ); 
30                 imageResult->SetOutputOrigin( 0,0,0 ); 
31         
32                 bbSetOutputOut( imageResult->GetOutput() );             
33         }
34         else
35         {
36                 bbSetOutputOut( bbGetInputIn() );
37         }
38           
39 }
40 void ReSlicerBox::bbUserSetDefaultValues()
41 {
42  
43         std::vector<int> nuevo(3,0);
44         nuevo.push_back(0);
45         bbSetInputOrigin(nuevo); 
46     bbSetInputIn(NULL); 
47     bbSetInputTransform(vtkIdentityTransform::New());
48     bbSetOutputOut(NULL);
49   
50 }
51 void ReSlicerBox::bbUserInitializeProcessing()
52 {
53  
54 //  THE INITIALIZATION METHOD BODY : 
55 //    Here does nothing  
56 //    but this is where you should allocate the internal/output pointers  
57 //    if any  
58         image = vtkImageChangeInformation::New();
59     slicer =vtkImageReslice::New();
60         imageResult = vtkImageChangeInformation::New();
61 }
62 void ReSlicerBox::bbUserFinalizeProcessing()
63 {
64  
65 //  THE FINALIZATION METHOD BODY : 
66 //    Here does nothing  
67 //    but this is where you should desallocate the internal/output pointers  
68 //    if any 
69         image->Delete();
70         slicer->Delete();
71     imageResult->Delete();
72 }
73 }
74 // EO namespace bbPackRecalage
75