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 printf("EED AxeVolume::Process invSpc %f %f %f\n",invSpc[0],invSpc[1],invSpc[2] );
33 mimage = vtkImageData::New();
34 mimage->SetDimensions(sizeX,sizeY,sizeZ);
35 mimage->SetOrigin(0,0,0);
36 mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
37 mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
38 mimage->SetScalarTypeToUnsignedShort();
39 mimage->SetSpacing(spc);
40 mimage->AllocateScalars();
44 int sizeLstPointR = bbGetInputlstPointR().size();
45 int iAxe,sizeAxe=bbGetInputlstPointX().size();
49 int sizeImage = sizeX*sizeY*sizeZ;
50 double px,py,pz,px1,py1,pz1,px2,py2,pz2;
53 p = (unsigned short*)mimage->GetScalarPointer (0, 0, 0);
54 for ( i=0 ; i<sizeImage ; i++)
60 for (iAxe=0 ; iAxe<sizeAxe; iAxe++)
62 if (sizeLstPointR<iAxe)
64 if (bbGetInputlstPointR().size()>=1)
66 r = bbGetInputlstPointR()[ bbGetInputlstPointR().size()-1 ] * invSpc[0];
71 r = bbGetInputlstPointR()[ iAxe ]* invSpc[0];
73 px = bbGetInputlstPointX()[iAxe] * invSpc[0];
74 py = bbGetInputlstPointY()[iAxe] * invSpc[1];
75 pz = bbGetInputlstPointZ()[iAxe] * invSpc[2];
76 printf("AxeVolume::Process %d -> %f, %f, %f,%f\n",iAxe, px,py,pz,r);
85 for ( i=px1 ; i<=px2 ; i++ )
89 for ( j=py1 ; j<py2 ; j++ )
93 for ( k=pz1 ; k<pz2 ; k++ )
95 if ( (i>=0) && (i<sizeX) && (j>=0) && (j<sizeY) &&(k>=0) && (k<sizeZ) ){
96 p = (unsigned short*)mimage->GetScalarPointer (i, j, k);
101 if ( rx + ry + rz <= rr )
111 bbSetOutputOut( mimage );
113 printf("EED AxeVolume::Process end \n");
118 //-----------------------------------------------------------------
119 void AxeVolume::bbUserSetDefaultValues()
124 //-----------------------------------------------------------------
125 void AxeVolume::bbUserInitializeProcessing()
129 //-----------------------------------------------------------------
130 void AxeVolume::bbUserFinalizeProcessing()
134 //-----------------------------------------------------------------
137 // EO namespace bbcreaMaracasVisu