2 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
4 #include "bbcreaVtkImageCutByAxis.h"
5 #include "bbcreaVtkPackage.h"
9 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,ImageCutByAxis)
10 BBTK_BLACK_BOX_IMPLEMENTATION(ImageCutByAxis,bbtk::AtomicBlackBox);
12 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
14 void ImageCutByAxis::Process()
17 // THE MAIN PROCESSING METHOD BODY
18 // Here we simply set the input 'In' value to the output 'Out'
19 // And print out the output value
20 // INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
21 // void bbSet{Input|Output}NAME(const TYPE&)
22 // const TYPE& bbGet{Input|Output}NAME() const
24 // * NAME is the name of the input/output
25 // (the one provided in the attribute 'name' of the tag 'input')
26 // * TYPE is the C++ type of the input/output
27 // (the one provided in the attribute 'type' of the tag 'input')
29 // bbSetOutputOut( bbGetInputIn() );
30 // std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
33 vtkImageData *newData=vtkImageData::New();
34 newData->DeepCopy( bbGetInputIn() );
38 //EED 2017-01-01 Migration VTK7
39 #if VTK_MAJOR_VERSION <= 5
40 bbGetInputIn()->GetWholeExtent(ext);
42 bbGetInputIn()->GetExtent(ext);
45 double dimX=ext[1]-ext[0]+1;
46 double dimY=ext[3]-ext[2]+1;
47 double dimZ=ext[5]-ext[4]+1;
49 int x=bbGetInputPoint()[0];
50 int y=bbGetInputPoint()[1];
51 int z=bbGetInputPoint()[2];
59 if ( bbGetInputType()=="x-y-z+" )
61 if (bbGetInputTypeOrientation()==0) { c1=false; c2=true; c3=true; c4=true; }
62 if (bbGetInputTypeOrientation()==1) { c1=true; c2=false; c3=true; c4=true; }
63 if (bbGetInputTypeOrientation()==2) { c1=true; c2=false; c3=true; c4=true; }
66 if (bbGetInputInsideVol()==true)
75 int xmin,xmax,ymin,ymax;
78 // imgPtr=bbGetInputIn()->GetScalarPointer(x,y,z,0);
79 // memset( bbGetInputIn()->GetScalarPointer() );
83 if (bbGetInputTypeOrientation()==0) { xmin=0; xmax=x; ymin=0; ymax=y; }
84 if (bbGetInputTypeOrientation()==1) { xmin=0; xmax=x; ymin=dimY-z; ymax=dimY; }
85 if (bbGetInputTypeOrientation()==2) { xmin=0; xmax=y; ymin=dimY-z; ymax=dimY; }
86 for (j=ymin;j<ymax;j++){
87 for (i=xmin;i<xmax;i++){newData->SetScalarComponentFromDouble(i,j,0,0,0);} // for i
93 if (bbGetInputTypeOrientation()==0) { xmin=0; xmax=x; ymin=y; ymax=dimY; }
94 if (bbGetInputTypeOrientation()==1) { xmin=0; xmax=x; ymin=0; ymax=dimY-z; }
95 if (bbGetInputTypeOrientation()==2) { xmin=0; xmax=y; ymin=0; ymax=dimY-z; }
96 for (j=ymin;j<ymax;j++){
97 for (i=xmin;i<xmax;i++){newData->SetScalarComponentFromDouble(i,j,0,0,0);} // for i
103 if (bbGetInputTypeOrientation()==0) { xmin=x; xmax=dimX; ymin=0; ymax=y; }
104 if (bbGetInputTypeOrientation()==1) { xmin=x; xmax=dimX; ymin=dimY-z; ymax=dimY; }
105 if (bbGetInputTypeOrientation()==2) { xmin=y; xmax=dimX; ymin=dimY-z; ymax=dimY; }
106 for (j=ymin;j<ymax;j++){
107 for (i=xmin;i<xmax;i++){newData->SetScalarComponentFromDouble(i,j,0,0,0);} // for i
113 if (bbGetInputTypeOrientation()==0) { xmin=x; xmax=dimX; ymin=y; ymax=dimY; }
114 if (bbGetInputTypeOrientation()==1) { xmin=x; xmax=dimX; ymin=0; ymax=dimY-z; }
115 if (bbGetInputTypeOrientation()==2) { xmin=y; xmax=dimX; ymin=0; ymax=dimY-z; }
116 for (j=ymin;j<ymax;j++){
117 for (i=xmin;i<xmax;i++){newData->SetScalarComponentFromDouble(i,j,0,0,0);} // for i
122 bbSetOutputOut( newData );
126 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
128 void ImageCutByAxis::bbUserSetDefaultValues()
131 // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
132 // Here we initialize the input 'In' to 0
134 bbSetInputType("x+y+z+");
135 bbSetInputInsideVol(true);
136 std::vector<int> point;
140 bbSetInputPoint(point);
143 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
145 void ImageCutByAxis::bbUserInitializeProcessing()
148 // THE INITIALIZATION METHOD BODY :
150 // but this is where you should allocate the internal/output pointers
156 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
158 void ImageCutByAxis::bbUserFinalizeProcessing()
161 // THE FINALIZATION METHOD BODY :
163 // but this is where you should desallocate the internal/output pointers
168 // EO namespace bbcreaVtk