]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/CutModule/kernel/CutModelData.cxx
changes in qt for volume rendering with gpu support, if you are working with volume...
[creaMaracasVisu.git] / lib / maracasVisuLib / src / CutModule / kernel / CutModelData.cxx
index 63fa92838a5aaab0c95cb70689138450d4ce8e47..546e416cd15547c95f1a67fd552615074fba483b 100644 (file)
@@ -3,8 +3,8 @@
   Program:   wxMaracas
   Module:    $RCSfile: CutModelData.cxx,v $
   Language:  C++
-  Date:      $Date: 2010/03/31 12:41:58 $
-  Version:   $Revision: 1.6 $
+  Date:      $Date: 2011/02/07 10:30:05 $
+  Version:   $Revision: 1.9 $
 
   Copyright: (c) 2002, 2003
   License:
@@ -15,7 +15,7 @@
 
 =========================================================================*/
 #include "CutModelData.h"
-
+#include "vtkRenderWindow.h"
 /**
 **     Start of the manager class
 **/
@@ -35,6 +35,7 @@ void CutModelData::initializeData(int id, vtkRenderWindowInteractor* interactor,
        createActor();
        createShapes();
        ChangeShape(0);
+        interactor->GetRenderWindow ()->Render();
        checkInvariant();
 }
 
@@ -82,7 +83,8 @@ void CutModelData::setTransform(vtkImageData* img)throw( CutModelException){
        inversModel     = vtkTransform::New();    
 
        vtkMatrix4x4* matrix = vtkMatrix4x4::New();  
-       matrix->Identity();     
+       matrix->Identity();
+        double *ori = img->GetOrigin();
        int *ext = img->GetExtent();
        double *spc = img->GetSpacing();
 
@@ -90,9 +92,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 = (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];
+        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);
@@ -224,11 +226,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)) )
@@ -271,11 +273,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)) )
@@ -332,7 +334,7 @@ vtkTransform* CutModelData::getModelTransform(vtkImageData* copyimage){
 
 void CutModelData::setTransform(vtkTransform* transform, vtkImageData* img)throw( CutModelException){
        
-       double *spc = img->GetSpacing();  // spc unused // JPR
+//     double *spc = img->GetSpacing();  // spc unused // JPR
 
        currentmatrix->Identity();