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()
16 bbGetInputIn()->GetExtent(ext);
17 int sizeX=ext[1]-ext[0];
18 int sizeY=ext[3]-ext[2];
19 int sizeZ=ext[5]-ext[4];
21 mimage = vtkImageData::New();
22 mimage->SetDimensions(sizeX,sizeY,sizeZ);
23 mimage->SetOrigin(0,0,0);
24 mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
25 mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 );
26 mimage->SetScalarTypeToUnsignedShort();
27 mimage->AllocateScalars();
31 int sizeLstPointR = bbGetInputlstPointR().size();
32 int iAxe,sizeAxe=bbGetInputlstPointX().size();
36 int sizeImage = sizeX*sizeY*sizeZ;
37 double px,py,pz,px1,py1,pz1,px2,py2,pz2;
40 p = (unsigned short*)mimage->GetScalarPointer (0, 0, 0);
41 for ( i=0 ; i<sizeImage ; i++)
47 for (iAxe=0 ; iAxe<sizeAxe; iAxe++)
49 if (sizeLstPointR<iAxe)
51 r = bbGetInputlstPointR()[ bbGetInputlstPointR().size() ];
53 r = bbGetInputlstPointR()[ iAxe ];
55 px = bbGetInputlstPointX()[iAxe];
56 py = bbGetInputlstPointY()[iAxe];
57 pz = bbGetInputlstPointZ()[iAxe];
65 for ( i=px1 ; i<=px2 ; i++ )
67 for ( j=py1 ; j<py2 ; j++ )
69 for ( k=pz1 ; k<pz2 ; k++ )
71 if ( (i>=0) && (i<sizeX) && (j>=0) && (j<sizeY) &&(k>=0) && (k<sizeZ) ){
75 rr = rx*rx + ry*ry + rz*rz;
76 if ( rx*rx + ry*ry + rz*rz <= r*r )
78 p = (unsigned short*)mimage->GetScalarPointer (i, j, k);
86 bbSetOutputOut( mimage );
92 void AxeVolume::bbUserConstructor()
96 void AxeVolume::bbUserCopyConstructor()
100 void AxeVolume::bbUserDestructor()
105 // EO namespace bbcreaMaracasVisu