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];
24 mimage = vtkImageData::New();
25 mimage->SetDimensions(sizeX,sizeY,sizeZ);
26 mimage->SetOrigin(0,0,0);
27 mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
28 mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
29 mimage->SetScalarTypeToUnsignedShort();
30 mimage->AllocateScalars();
34 int sizeLstPointR = bbGetInputlstPointR().size();
35 int iAxe,sizeAxe=bbGetInputlstPointX().size();
39 int sizeImage = sizeX*sizeY*sizeZ;
40 double px,py,pz,px1,py1,pz1,px2,py2,pz2;
43 p = (unsigned short*)mimage->GetScalarPointer (0, 0, 0);
44 for ( i=0 ; i<sizeImage ; i++)
50 for (iAxe=0 ; iAxe<sizeAxe; iAxe++)
52 if (sizeLstPointR<iAxe)
54 if (bbGetInputlstPointR().size()>=1)
56 r = bbGetInputlstPointR()[ bbGetInputlstPointR().size()-1 ];
61 r = bbGetInputlstPointR()[ iAxe ];
63 px = bbGetInputlstPointX()[iAxe];
64 py = bbGetInputlstPointY()[iAxe];
65 pz = bbGetInputlstPointZ()[iAxe];
66 // printf("AxeVolume::Process %d -> %f, %f, %f\n",iAxe, px,py,pz);
75 for ( i=px1 ; i<=px2 ; i++ )
79 for ( j=py1 ; j<py2 ; j++ )
83 for ( k=pz1 ; k<pz2 ; k++ )
85 if ( (i>=0) && (i<sizeX) && (j>=0) && (j<sizeY) &&(k>=0) && (k<sizeZ) ){
86 p = (unsigned short*)mimage->GetScalarPointer (i, j, k);
91 if ( rx + ry + rz <= rr )
101 bbSetOutputOut( mimage );
103 printf("EED AxeVolume::Process end \n");
108 //-----------------------------------------------------------------
109 void AxeVolume::bbUserSetDefaultValues()
114 //-----------------------------------------------------------------
115 void AxeVolume::bbUserInitializeProcessing()
119 //-----------------------------------------------------------------
120 void AxeVolume::bbUserFinalizeProcessing()
124 //-----------------------------------------------------------------
127 // EO namespace bbcreaMaracasVisu