X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk%2Fsrc%2FbbmaracasvisuAxeVolume.cxx;h=79e5ac0cf0fbfb4ccbed8ce1268a661ec33599f3;hb=a7017a8ade695bd14a4c7ee70b197d63b5e76765;hp=1711efe09d9ef16a19ee44e2c28cf78e64cdcc10;hpb=0c3a32b70caed542c709c9c4f21419c3e9761800;p=creaMaracasVisu.git diff --git a/bbtk/src/bbmaracasvisuAxeVolume.cxx b/bbtk/src/bbmaracasvisuAxeVolume.cxx index 1711efe..79e5ac0 100644 --- a/bbtk/src/bbmaracasvisuAxeVolume.cxx +++ b/bbtk/src/bbmaracasvisuAxeVolume.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + #include "bbmaracasvisuAxeVolume.h" #include "bbcreaMaracasVisuPackage.h" namespace bbcreaMaracasVisu @@ -17,9 +42,9 @@ void AxeVolume::Process() int ext[6]; bbGetInputIn()->GetExtent(ext); - int sizeX=ext[1]-ext[0]; - int sizeY=ext[3]-ext[2]; - int sizeZ=ext[5]-ext[4]; + int sizeX=ext[1]-ext[0]+1; + int sizeY=ext[3]-ext[2]+1; + int sizeZ=ext[5]-ext[4]+1; double spc[3]; bbGetInputIn()->GetSpacing(spc); @@ -29,23 +54,30 @@ void AxeVolume::Process() invSpc[2] = 1/spc[2]; mimage = vtkImageData::New(); - mimage->SetDimensions(sizeX,sizeY,sizeZ); - mimage->SetOrigin(0,0,0); - mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 ); - mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 ); + mimage->SetSpacing(bbGetInputIn()->GetSpacing()); + mimage->SetDimensions(bbGetInputIn()->GetDimensions()); + mimage->SetExtent(bbGetInputIn()->GetExtent()); + mimage->SetOrigin(bbGetInputIn()->GetOrigin()); + //mimage->SetDimensions(sizeX,sizeY,sizeZ); + //mimage->SetOrigin(0,0,0); + //mimage->SetExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 ); + //mimage->SetWholeExtent( 0 , sizeX-1 , 0 , sizeY-1 , 0, sizeZ-1 ); mimage->SetScalarTypeToUnsignedShort(); - mimage->SetSpacing(spc); + //mimage->SetSpacing(spc); mimage->AllocateScalars(); + int i,j,k; - int sizeLstPointR = bbGetInputlstPointR().size(); - int iAxe,sizeAxe=bbGetInputlstPointX().size(); + int sizeLstPointR = bbGetInputlstPointR().size(); + int iAxe,sizeAxe = bbGetInputlstPointX().size(); double rx,ry,rz; double r,rr; unsigned short *p; - int sizeImage = sizeX*sizeY*sizeZ; - double px,py,pz,px1,py1,pz1,px2,py2,pz2; + int sizeImage = sizeX*sizeY*sizeZ; + double px,py,pz; + double px1,py1,pz1; + double px2,py2,pz2; // Clean image p = (unsigned short*)mimage->GetScalarPointer (0, 0, 0); @@ -57,16 +89,16 @@ void AxeVolume::Process() for (iAxe=0 ; iAxe=1) { r = bbGetInputlstPointR()[ bbGetInputlstPointR().size()-1 ] * invSpc[0]; } else { r = 1; } - } else { - r = bbGetInputlstPointR()[ iAxe ]* invSpc[0]; } px = bbGetInputlstPointX()[iAxe] * invSpc[0]; py = bbGetInputlstPointY()[iAxe] * invSpc[1];