X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=vv%2FvvSlicer.cxx;h=a5c2641bd1a8f24c249bcf8fda6376441c5bc961;hb=dfb1627eab468417ab2682a03a4a66cf6830b921;hp=03ecaaaff126bcf49f27ddb5643c3b4b6d470e0a;hpb=89480b23b6f4f748dc29f0241ddc015fb092f365;p=clitk.git diff --git a/vv/vvSlicer.cxx b/vv/vvSlicer.cxx index 03ecaaa..a5c2641 100644 --- a/vv/vvSlicer.cxx +++ b/vv/vvSlicer.cxx @@ -1,28 +1,22 @@ /*========================================================================= + Program: vv http://www.creatis.insa-lyon.fr/rio/vv - Program: vv - Language: C++ - Author : Pierre Seroul (pierre.seroul@gmail.com) + Authors belong to: + - University of LYON http://www.universite-lyon.fr/ + - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr - Copyright (C) 2008 - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr - CREATIS-LRMN http://www.creatis.insa-lyon.fr + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the copyright notices for more information. - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, version 3 of the License. + It is distributed under dual licence - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + - BSD See included LICENSE.txt file + - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + ======================================================================-====*/ - You should have received a copy of the GNU General Public License - along with this program. If not, see . - - =========================================================================*/ #include "vvSlicer.h" - #include "vvImage.h" #include "vvSlicerManagerCommand.h" #include "vvGlyphSource.h" @@ -1145,50 +1139,50 @@ void vvSlicer::SetColorLevel(double level) // Returns the min an the max value in a 41x41 region around the mouse pointer void vvSlicer::GetExtremasAroundMousePointer(double & min, double & max) { - //Get mouse pointer position in view coordinates - double fLocalExtents[6]; - for(int i=0; i<3; i++) + //Get mouse pointer position in view coordinates + double fLocalExtents[6]; + for(int i=0; i<3; i++) { - fLocalExtents[i*2 ] = mCurrent[i]; - fLocalExtents[i*2+1] = mCurrent[i]; + fLocalExtents[i*2 ] = mCurrent[i]; + fLocalExtents[i*2+1] = mCurrent[i]; } - this->Renderer->WorldToView(fLocalExtents[0], fLocalExtents[2], fLocalExtents[4]); - this->Renderer->WorldToView(fLocalExtents[1], fLocalExtents[3], fLocalExtents[5]); - for(int i=0; i<3; i++) + this->Renderer->WorldToView(fLocalExtents[0], fLocalExtents[2], fLocalExtents[4]); + this->Renderer->WorldToView(fLocalExtents[1], fLocalExtents[3], fLocalExtents[5]); + for(int i=0; i<3; i++) { - if (i!=SliceOrientation) //SR: assumes that SliceOrientation is valid in ViewCoordinates (???) + if (i!=SliceOrientation) //SR: assumes that SliceOrientation is valid in ViewCoordinates (???) { - fLocalExtents[i*2 ] -= 0.2; - fLocalExtents[i*2+1] += 0.2; + fLocalExtents[i*2 ] -= 0.2; + fLocalExtents[i*2+1] += 0.2; } } - this->Renderer->ViewToWorld(fLocalExtents[0], fLocalExtents[2], fLocalExtents[4]); - this->Renderer->ViewToWorld(fLocalExtents[1], fLocalExtents[3], fLocalExtents[5]); + this->Renderer->ViewToWorld(fLocalExtents[0], fLocalExtents[2], fLocalExtents[4]); + this->Renderer->ViewToWorld(fLocalExtents[1], fLocalExtents[3], fLocalExtents[5]); - //Convert to image pixel coordinates (rounded) - int iLocalExtents[6]; - for(int i=0; i<3; i++) + //Convert to image pixel coordinates (rounded) + int iLocalExtents[6]; + for(int i=0; i<3; i++) { - fLocalExtents[i*2 ] = (fLocalExtents[i*2 ] - this->GetInput()->GetOrigin()[i])/this->GetInput()->GetSpacing()[i]; - fLocalExtents[i*2+1] = (fLocalExtents[i*2+1] - this->GetInput()->GetOrigin()[i])/this->GetInput()->GetSpacing()[i]; + fLocalExtents[i*2 ] = (fLocalExtents[i*2 ] - this->GetInput()->GetOrigin()[i])/this->GetInput()->GetSpacing()[i]; + fLocalExtents[i*2+1] = (fLocalExtents[i*2+1] - this->GetInput()->GetOrigin()[i])/this->GetInput()->GetSpacing()[i]; - iLocalExtents[i*2 ] = lrint(fLocalExtents[i*2 ]); - iLocalExtents[i*2+1] = lrint(fLocalExtents[i*2+1]); + iLocalExtents[i*2 ] = lrint(fLocalExtents[i*2 ]); + iLocalExtents[i*2+1] = lrint(fLocalExtents[i*2+1]); - if(iLocalExtents[i*2 ]>iLocalExtents[i*2+1]) - std::swap(iLocalExtents[i*2], iLocalExtents[i*2+1]); + if(iLocalExtents[i*2 ]>iLocalExtents[i*2+1]) + std::swap(iLocalExtents[i*2], iLocalExtents[i*2+1]); } - vtkSmartPointer voiFilter = vtkExtractVOI::New(); - voiFilter->SetInput(this->GetInput()); - voiFilter->SetVOI(iLocalExtents); + vtkSmartPointer voiFilter = vtkExtractVOI::New(); + voiFilter->SetInput(this->GetInput()); + voiFilter->SetVOI(iLocalExtents); - vtkSmartPointer accFilter = vtkImageAccumulate::New(); - accFilter->SetInput(voiFilter->GetOutput()); - accFilter->Update(); + vtkSmartPointer accFilter = vtkImageAccumulate::New(); + accFilter->SetInput(voiFilter->GetOutput()); + accFilter->Update(); - min = *(accFilter->GetMin()); - max = *(accFilter->GetMax()); + min = *(accFilter->GetMin()); + max = *(accFilter->GetMax()); } //----------------------------------------------------------------------------