]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/CutModule/kernel/CutModelData.cxx
#3418 creaMaracasVisu Feature New Normal - ManualPaint_model with openmp
[creaMaracasVisu.git] / lib / maracasVisuLib / src / CutModule / kernel / CutModelData.cxx
index 7b23c7ff52f15b0e800543e918067a198e104174..ccd36989a479e62849484c255e0a17ff5b793999 100644 (file)
@@ -1,10 +1,35 @@
+/*# ---------------------------------------------------------------------
+#
+# 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.
+# ------------------------------------------------------------------------ */
+
 /*=========================================================================
 
   Program:   wxMaracas
   Module:    $RCSfile: CutModelData.cxx,v $
   Language:  C++
-  Date:      $Date: 2011/02/07 09:16:29 $
-  Version:   $Revision: 1.8 $
+  Date:      $Date: 2012/11/15 14:15:48 $
+  Version:   $Revision: 1.10 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -15,7 +40,7 @@
 
 =========================================================================*/
 #include "CutModelData.h"
-
+#include "vtkRenderWindow.h"
 /**
 **     Start of the manager class
 **/
@@ -35,6 +60,7 @@ void CutModelData::initializeData(int id, vtkRenderWindowInteractor* interactor,
        createActor();
        createShapes();
        ChangeShape(0);
+        interactor->GetRenderWindow ()->Render();
        checkInvariant();
 }
 
@@ -91,9 +117,9 @@ void CutModelData::setTransform(vtkImageData* img)throw( CutModelException){
        matrix->SetElement(1,1,(ext[3]-ext[2])/4*spc[1]);       
        matrix->SetElement(2,2,(ext[5]-ext[4])/4*spc[2]);
 
-       double orgx = (ori[0] + (ext[1]-ext[0])/2)*spc[0];
-       double orgy = (ori[1] + (ext[3]-ext[2])/2)*spc[1];
-       double orgz = (ori[2] + (ext[5]-ext[4])/2)*spc[2];
+        double orgx = (ext[1]+ext[0])/2.*spc[0];
+        double orgy = (ext[3]+ext[2])/2.*spc[1];
+        double orgz = (ext[5]+ext[4])/2.*spc[2];
 
        matrix->SetElement(0,3,orgx);
        matrix->SetElement(1,3,orgy);
@@ -142,12 +168,29 @@ void CutModelData::ShowViewBox(bool check)throw( CutModelException){
 void CutModelData::ChangeShape(int selection)throw( CutModelException){
        checkInvariant();
        
-       if(selection == 0){
+       if(selection == 0)
+       {
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
                _Mapper->SetInput(_spherefigure->getPolyData());
+#else
+               _Mapper->SetInputData(_spherefigure->getPolyData());
+#endif
        }else if(selection == 1){
+
+#if VTK_MAJOR_VERSION <= 5
                _Mapper->SetInput(_cylinderfigure->getPolyData());
+#else
+               _Mapper->SetInputData(_cylinderfigure->getPolyData());
+#endif
+
        }else if(selection == 2){
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
                _Mapper->SetInput(_cubefigure->getPolyData());
+#else
+               _Mapper->SetInputData(_cubefigure->getPolyData());
+#endif
        }else{
                throw CutModelException("Shape type not found");
        }
@@ -225,11 +268,11 @@ void CutModelData::ExecuteCut( double* range, bool isinside, vtkImageData* copyi
        
        copyimage->GetExtent(ext);        
        
-       for (xx=ext[0];xx<ext[1]; xx++)
+        for (xx=ext[0];xx<=ext[1]; xx++)
        {
-               for (yy=ext[2];yy<ext[3]; yy++)
+                for (yy=ext[2];yy<=ext[3]; yy++)
                {
-                       for (zz=ext[4];zz<ext[5];zz++)
+                        for (zz=ext[4];zz<=ext[5];zz++)
                        {
                                inside=actualCuttingModel->IfPointInside(xx,yy,zz);
                                if (  ((inside==true)&&(isinside==true)) || ((!inside==true)&&(!isinside)) )
@@ -272,11 +315,11 @@ void CutModelData::ExecuteUnCut(bool isinside, vtkImageData* image, vtkImageData
 
        copyimage->GetExtent(ext);        
 
-       for (xx=ext[0];xx<ext[1]; xx++)
+        for (xx=ext[0];xx<=ext[1]; xx++)
        {
-               for (yy=ext[2];yy<ext[3]; yy++)
+                for (yy=ext[2];yy<=ext[3]; yy++)
                {
-                       for (zz=ext[4];zz<ext[5];zz++)
+                        for (zz=ext[4];zz<=ext[5];zz++)
                        {
                                inside=actualCuttingModel->IfPointInside(xx,yy,zz);
                                if (  ((inside==true)&&(isinside==true)) || ((!inside==true)&&(!isinside)) )