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]+1;
21 int sizeY=ext[3]-ext[2]+1;
22 int sizeZ=ext[5]-ext[4]+1;
25 bbGetInputIn()->GetSpacing(spc);
31 mimage = vtkImageData::New();
32 mimage->SetSpacing(bbGetInputIn()->GetSpacing());
33 mimage->SetDimensions(bbGetInputIn()->GetDimensions());
34 mimage->SetExtent(bbGetInputIn()->GetExtent());
35 mimage->SetOrigin(bbGetInputIn()->GetOrigin());
36 //mimage->SetDimensions(sizeX,sizeY,sizeZ);
37 //mimage->SetOrigin(0,0,0);
38 //mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
39 //mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
40 mimage->SetScalarTypeToUnsignedShort();
41 //mimage->SetSpacing(spc);
42 mimage->AllocateScalars();
47 int sizeLstPointR = bbGetInputlstPointR().size();
48 int iAxe,sizeAxe=bbGetInputlstPointX().size();
52 int sizeImage = sizeX*sizeY*sizeZ;
53 double px,py,pz,px1,py1,pz1,px2,py2,pz2;
56 p = (unsigned short*)mimage->GetScalarPointer (0, 0, 0);
57 for ( i=0 ; i<sizeImage ; i++)
63 for (iAxe=0 ; iAxe<sizeAxe-1; iAxe++)
65 if (sizeLstPointR<iAxe)
67 if (bbGetInputlstPointR().size()>=1)
69 r = bbGetInputlstPointR()[ bbGetInputlstPointR().size()-1 ] * invSpc[0];
74 r = bbGetInputlstPointR()[ iAxe ]* invSpc[0];
76 px = bbGetInputlstPointX()[iAxe] * invSpc[0];
77 py = bbGetInputlstPointY()[iAxe] * invSpc[1];
78 pz = bbGetInputlstPointZ()[iAxe] * invSpc[2];
87 for ( i=px1 ; i<=px2 ; i++ )
91 for ( j=py1 ; j<py2 ; j++ )
95 for ( k=pz1 ; k<pz2 ; k++ )
97 if ( (i>=0) && (i<sizeX) && (j>=0) && (j<sizeY) &&(k>=0) && (k<sizeZ) ){
98 p = (unsigned short*)mimage->GetScalarPointer (i, j, k);
103 if ( rx + ry + rz <= rr )
113 bbSetOutputOut( mimage );
115 printf("EED AxeVolume::Process end \n");
120 //-----------------------------------------------------------------
121 void AxeVolume::bbUserSetDefaultValues()
126 //-----------------------------------------------------------------
127 void AxeVolume::bbUserInitializeProcessing()
131 //-----------------------------------------------------------------
132 void AxeVolume::bbUserFinalizeProcessing()
136 //-----------------------------------------------------------------
139 // EO namespace bbcreaMaracasVisu