From: Eduardo DAVILA Date: Tue, 7 Aug 2018 13:28:32 +0000 (+0200) Subject: #3212 BBTK Feature New Normal - vtk8itk4wx3-mingw64 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=19dda39fbfb4f8e1019c4f0dd37aa3afc8a3d1d6;p=bbtk.git #3212 BBTK Feature New Normal - vtk8itk4wx3-mingw64 --- 19dda39fbfb4f8e1019c4f0dd37aa3afc8a3d1d6 diff --cc packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx index c1d16ba,faabc03..39ff153 --- a/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx +++ b/packages/gdcmvtk/src/bbgdcmvtkGetXCoherentInfoGdcmReader.cxx @@@ -146,11 -139,9 +146,9 @@@ void GetXCoherentInfoGdcmReader::Proces // Should only contain one! l = sh->GetFirstSingleSerieUIDFileSet(); - int nbFiles; - double zspacing = 0.; - nbFiles = l->size() ; + double zspacing = 0.; sh->OrderFileList(l); // this one should compute the *actual* Z Spacing! - zspacing = sh->GetZSpacing(); + zspacing = sh->GetZSpacing(); std::vector v_pixelspacing; v_pixelspacing.push_back( f->GetXSpacing() ); v_pixelspacing.push_back( f->GetYSpacing() ); @@@ -170,9 -191,8 +197,8 @@@ //reader->SetFileName( bbGetInputIn().c_str() ); reader->SetCoherentFileList(l); reader->Update(); + reader->GetOutput(); + - printf("EED GetXCoherentInfoGdcmReader::Process \n"); bbSetOutputOut( reader->GetOutput() ); } #endif diff --cc packages/vtk/src/bbvtkCreateImage.cxx index cb9d77b,c5f71b5..007c347 --- a/packages/vtk/src/bbvtkCreateImage.cxx +++ b/packages/vtk/src/bbvtkCreateImage.cxx @@@ -53,10 -53,9 +53,10 @@@ void CreateImage::Process( // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') - double spc[6]; + double spc[3]; int dim[3]; int outputformat = VTK_UNSIGNED_SHORT; + if (bbGetInputOutputFormat()=="VTK_BIT") outputformat = VTK_BIT; // 1 else if (bbGetInputOutputFormat()=="VTK_CHAR") outputformat = VTK_CHAR; // 2 else if (bbGetInputOutputFormat()=="MET_CHAR") outputformat = VTK_CHAR; // 2 @@@ -79,33 -78,37 +79,47 @@@ else if (bbGetInputOutputFormat()=="MET_FLOAT") outputformat = VTK_FLOAT; // 10 else if (bbGetInputOutputFormat()=="VTK_DOUBLE") outputformat = VTK_DOUBLE; // 11 else if (bbGetInputOutputFormat()=="MET_DOUBLE") outputformat = VTK_DOUBLE; // 11 + - spc[0] = bbGetInputSpacing()[0]; spc[1] = bbGetInputSpacing()[1]; spc[2] = bbGetInputSpacing()[2]; dim[0] = bbGetInputDimensions()[0]; dim[1] = bbGetInputDimensions()[1]; dim[2] = bbGetInputDimensions()[2]; - + if ((dim[0]<=0)||(dim[1]<=0)||(dim[2]<=0)) + { + dim[0]=1; + dim[1]=1; + dim[2]=1; + } + if ((spc[0]<=0)||(spc[1]<=0)||(spc[2]<=0)) + { + spc[0]=1; + spc[1]=1; + spc[2]=1; + } + //EED 2017-12-7 + if (imageoutput!=NULL) + { + imageoutput->Delete(); + } + imageoutput = vtkImageData::New(); imageoutput->Initialize(); - imageoutput->SetScalarType( outputformat ); imageoutput->SetSpacing( spc ); imageoutput->SetDimensions( dim[0], dim[1], dim[2] ); + +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) + imageoutput->SetScalarType( outputformat ); imageoutput->AllocateScalars(); +#endif +#if (VTK_MAJOR_VERSION >= 6) + imageoutput->AllocateScalars( outputformat,1 ); +#endif + - int i,j,k; long sizeBlock; + for (i=0; iSetScalarComponentFromDouble(i,0,0, 0, bbGetInputInitialValue() ); @@@ -122,16 -123,7 +136,16 @@@ { memcpy( imageoutput->GetScalarPointer(0,0,k) ,imageoutput->GetScalarPointer() , sizeBlock ); } // for k - ++ + +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) imageoutput->Update(); +#endif +#if (VTK_MAJOR_VERSION >= 6) + // .. +#endif + imageoutput->Modified(); bbSetOutputOut(imageoutput); } diff --cc packages/vtk/src/bbvtkImagePlanes.cxx index 6f28082,d3cd9d4..9f6bc7d --- a/packages/vtk/src/bbvtkImagePlanes.cxx +++ b/packages/vtk/src/bbvtkImagePlanes.cxx @@@ -474,33 -402,17 +476,34 @@@ namespace bbvt plane3pts->SetPoint2((origin[0]+vect2[0]*factor)*xSpacing, (origin[1]+vect2[1]*factor)*ySpacing, (origin[2]+vect2[2]*factor)*zSpacing); + +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) plane3pts->GetResliceOutput()->Update(); +#endif +#if (VTK_MAJOR_VERSION >= 6) + // .. +#endif + //To get the slice of image out of the selected volume - if (_imageReslicer==NULL){ + if (_imageReslicer==NULL) + { _imageReslicer = vtkImageReslice::New(); _imageReslicer->SetOutputDimensionality(2); _transform = vtkTransform::New(); _matrix = vtkMatrix4x4::New(); - } + } // if _imageReslicer->SetInterpolationMode( bbGetInputInterpolation() ); + +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) _imageReslicer->SetInput( bbGetInputIn() ); +#endif +#if (VTK_MAJOR_VERSION >= 6) + _imageReslicer->SetInputData( bbGetInputIn() ); +#endif + + _imageReslicer->SetInformationInput(bbGetInputIn()); //fill out the information with the created vectors and using the spacing of the image _imageReslicer->SetResliceAxesDirectionCosines(newx[0]*xSpacing,newx[1]*xSpacing,newx[2]*xSpacing, diff --cc packages/vtk/src/bbvtkImageVtkProperties.cxx index 5050643,2057727..a065023 --- a/packages/vtk/src/bbvtkImageVtkProperties.cxx +++ b/packages/vtk/src/bbvtkImageVtkProperties.cxx @@@ -53,16 -55,8 +55,15 @@@ void ImageVtkProperties::Process( if ( bbGetInputIn() ) { bbGetInputIn()->Modified(); - +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) bbGetInputIn()->Update(); bbGetInputIn()->GetWholeExtent(ext); +#endif +#if (VTK_MAJOR_VERSION >= 6) + bbGetInputIn()->GetExtent(ext); +#endif + vsize.push_back(ext[1]-ext[0]+1); vsize.push_back(ext[3]-ext[2]+1); vsize.push_back(ext[5]-ext[4]+1); diff --cc packages/vtk/src/bbvtkInversCrop.cxx index 8581943,75d4e53..29be94c --- a/packages/vtk/src/bbvtkInversCrop.cxx +++ b/packages/vtk/src/bbvtkInversCrop.cxx @@@ -26,106 -26,92 +26,162 @@@ void InversCrop::Process( // * TYPE is the C++ type of the input/output // (the one provided in the attribute 'type' of the tag 'input') - if ((bbGetInputImageFix()!=NULL) && (bbGetInputImageMove()!=NULL) ) - { - if ( bbGetInputImageFix()->GetScalarType()==bbGetInputImageMove()->GetScalarType() ) - { - // Creating Image - int dim[3]; - int ext[6]; + if (bbGetInputActive()==true) + { + if ( (bbGetInputImageFix()!=NULL) && (bbGetInputImageMove()!=NULL) ) + { + if ( bbGetInputImageFix()->GetScalarType()==bbGetInputImageMove()->GetScalarType() ) + { + // Creating Image + int dim[3]; + int ext[6]; - bbGetInputImageFix()->GetWholeExtent(ext); - dim[0]= ext[1]-ext[0]+1; - dim[1]= ext[3]-ext[2]+1; - dim[2]= ext[5]-ext[4]+1; +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) + bbGetInputImageFix()->GetWholeExtent(ext); +#endif +#if (VTK_MAJOR_VERSION >= 6) + bbGetInputImageFix()->GetExtent(ext); +#endif + dim[0]= ext[1]-ext[0]+1; + dim[1]= ext[3]-ext[2]+1; + dim[2]= ext[5]-ext[4]+1; - if (bbGetInputType()==0) + if (bbGetInputType()==0) + { + _imageoutput = vtkImageData::New(); + _imageoutput->Initialize(); + _imageoutput->SetSpacing( bbGetInputImageFix()->GetSpacing() ); + _imageoutput->SetDimensions( dim[0], dim[1], dim[2] ); +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) + _imageoutput->SetScalarType( bbGetInputImageFix()->GetScalarType() ); + _imageoutput->AllocateScalars(); +#endif +#if (VTK_MAJOR_VERSION >= 6) + _imageoutput->AllocateScalars(bbGetInputImageFix()->GetScalarType() , 1); +#endif + } + if (bbGetInputType()==1) + { + _imageoutput=bbGetInputImageFix(); + } + + + // Duplicating Fix Image + long sizeimage = dim[0]*dim[1]*dim[2]*bbGetInputImageFix()->GetScalarSize(); + memcpy( _imageoutput->GetScalarPointer() , bbGetInputImageFix()->GetScalarPointer() , sizeimage); + + // Copy the Move Image + int j,k; + int px,py,pz; + +//EED 2017-01-01 Migration VTK7 +#if (VTK_MAJOR_VERSION <= 5) + bbGetInputImageMove()->GetWholeExtent(ext); +#endif +#if (VTK_MAJOR_VERSION >= 6) + bbGetInputImageMove()->GetExtent(ext); +#endif + + int dimMoveX = ext[1]-ext[0]+1; + int dimMoveY = ext[3]-ext[2]+1; + int dimMoveZ = ext[5]-ext[4]+1; + + int spxM=0; // start px MoveImage + int sizeXM=0; // sizeX MoveImage + + px=bbGetInputOrigin()[0]; + spxM=0; + if (px<=0) + { + spxM=px*(-1); + px=0; + } + sizeXM = dimMoveX-spxM; + if (px+sizeXM>=dim[0]) sizeXM=dim[0]-px; + + sizeXM=sizeXM*bbGetInputImageFix()->GetScalarSize(); + for (k=0; k=0) && (pz>=0) && + (sizeXM>0) ) { - memcpy( _imageoutput->GetScalarPointer(px,py,pz) , bbGetInputImageMove()->GetScalarPointer(spxM,j,k) , sizeXM ); + _imageoutput = vtkImageData::New(); + _imageoutput->Initialize(); + _imageoutput->SetScalarType( bbGetInputImageFix()->GetScalarType() ); + _imageoutput->SetSpacing( bbGetInputImageFix()->GetSpacing() ); + _imageoutput->SetDimensions( dim[0], dim[1], dim[2] ); + _imageoutput->AllocateScalars(); + // Duplicating Fix Image + long sizeimage = dim[0]*dim[1]*dim[2]*bbGetInputImageFix()->GetScalarSize(); + memcpy( _imageoutput->GetScalarPointer() , bbGetInputImageFix()->GetScalarPointer() , sizeimage); + } + if (bbGetInputType()==1) + { + _imageoutput=bbGetInputImageFix(); } - } // for j - } // for k - _imageoutput->Modified(); - } // If Image Fixe Move the same GetScalarType - else { - printf ("ERROR: InversCrop both ImageFixe and ImageMove need the same format.\n"); - } - } // If Image Fixe Move != NULL - else { - printf ("ERROR: InversCrop need ImageFixe and ImageMove to run.\n"); - } - bbSetOutputOut(_imageoutput); + + + // Copy the Move Image + int j,k; + int px,py,pz; + + bbGetInputImageMove()->GetWholeExtent(ext); + int dimMoveX = ext[1]-ext[0]+1; + int dimMoveY = ext[3]-ext[2]+1; + int dimMoveZ = ext[5]-ext[4]+1; + + int spxM = 0; // start px MoveImage + int sizeXM = 0; // sizeX MoveImage + + px = bbGetInputOrigin()[0]; + spxM = 0; + if (px<0) + { + spxM=px*(-1); + px=0; + } + sizeXM = dimMoveX-spxM; + if (px+sizeXM>=dim[0]) sizeXM=dim[0]-px; + sizeXM=sizeXM*bbGetInputImageFix()->GetScalarSize(); + for (k=0; k=0) && (pz>=0) && + (sizeXM>0) ) + { + memcpy( _imageoutput->GetScalarPointer(px,py,pz) , bbGetInputImageMove()->GetScalarPointer(spxM,j,k) , sizeXM ); + } + + } // for j + } // for k + _imageoutput->Modified(); + } // If Image Fixe Move the same GetScalarType + else { + printf ("ERROR: InversCrop both ImageFixe and ImageMove need the same format.\n"); + printf (" type ImageFix:%d type ImageMove:%d\n", bbGetInputImageFix()->GetScalarType(), bbGetInputImageMove()->GetScalarType() ); + + } + } // If Image Fixe Move != NULL + else { + printf ("ERROR: InversCrop need ImageFixe and ImageMove to run.\n"); + } + bbSetOutputOut(_imageoutput); + + } // if Active + } //===== diff --cc packages/vtk/src/bbvtkPolyDataToActor.cxx index 0a2fdfd,d56af36..ed7966c --- a/packages/vtk/src/bbvtkPolyDataToActor.cxx +++ b/packages/vtk/src/bbvtkPolyDataToActor.cxx @@@ -110,14 -109,18 +109,24 @@@ namespace bbvt if (bbGetInputActive()==true) { - polydatamapper->SetInput( bbGetInputIn() ); - vtkactor->GetProperty()->SetRepresentation( bbGetInputRepresentation() ); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 + polydatamapper->SetInput( bbGetInputIn() ); +#else + polydatamapper->SetInputData( bbGetInputIn() ); +#endif + + vtkactor->GetProperty()->SetRepresentation( bbGetInputRepresentation() ); ++ + if (bbGetInputRepresentation()==1) + { + vtkactor->GetProperty()->SetAmbient(1); + vtkactor->GetProperty()->SetDiffuse(1); + vtkactor->GetProperty()->SetSpecular(0); + } else { + printf("EED WARNNING! PolyDataToActor::DoProcess which is the default values of Ambient, Diffuse, Specular ? \n"); + } + - vtkactor->GetProperty()->SetLineWidth( bbGetInputLineWidth() ); vtkactor->GetProperty()->SetColor( bbGetInputColour()[0],