1 #include "bbmaracasvisuAxeVolume.h"
2 #include "bbcreaMaracasVisuPackage.h"
3 namespace bbcreaMaracasVisu
6 BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,AxeVolume)
7 BBTK_BLACK_BOX_IMPLEMENTATION(AxeVolume,bbtk::AtomicBlackBox);
8 void AxeVolume::Process()
11 printf("EED AxeVolume::Process start \n");
19 bbGetInputIn()->GetExtent(ext);
20 int sizeX=ext[1]-ext[0];
21 int sizeY=ext[3]-ext[2];
22 int sizeZ=ext[5]-ext[4];
25 bbGetInputIn()->GetSpacing(spc);
31 mimage = vtkImageData::New();
32 mimage->SetDimensions(sizeX,sizeY,sizeZ);
33 mimage->SetOrigin(0,0,0);
34 mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
35 mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
36 mimage->SetScalarTypeToUnsignedShort();
37 mimage->SetSpacing(spc);
38 mimage->AllocateScalars();
42 int sizeLstPointR = bbGetInputlstPointR().size();
43 int iAxe,sizeAxe=bbGetInputlstPointX().size();
47 int sizeImage = sizeX*sizeY*sizeZ;
48 double px,py,pz,px1,py1,pz1,px2,py2,pz2;
51 p = (unsigned short*)mimage->GetScalarPointer (0, 0, 0);
52 for ( i=0 ; i<sizeImage ; i++)
58 for (iAxe=0 ; iAxe<sizeAxe; iAxe++)
60 if (sizeLstPointR<iAxe)
62 if (bbGetInputlstPointR().size()>=1)
64 r = bbGetInputlstPointR()[ bbGetInputlstPointR().size()-1 ] * invSpc[0];
69 r = bbGetInputlstPointR()[ iAxe ]* invSpc[0];
71 px = bbGetInputlstPointX()[iAxe] * invSpc[0];
72 py = bbGetInputlstPointY()[iAxe] * invSpc[1];
73 pz = bbGetInputlstPointZ()[iAxe] * invSpc[2];
82 for ( i=px1 ; i<=px2 ; i++ )
86 for ( j=py1 ; j<py2 ; j++ )
90 for ( k=pz1 ; k<pz2 ; k++ )
92 if ( (i>=0) && (i<sizeX) && (j>=0) && (j<sizeY) &&(k>=0) && (k<sizeZ) ){
93 p = (unsigned short*)mimage->GetScalarPointer (i, j, k);
98 if ( rx + ry + rz <= rr )
108 bbSetOutputOut( mimage );
110 printf("EED AxeVolume::Process end \n");
115 //-----------------------------------------------------------------
116 void AxeVolume::bbUserSetDefaultValues()
121 //-----------------------------------------------------------------
122 void AxeVolume::bbUserInitializeProcessing()
126 //-----------------------------------------------------------------
127 void AxeVolume::bbUserFinalizeProcessing()
131 //-----------------------------------------------------------------
134 // EO namespace bbcreaMaracasVisu