]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx
Bug #1679
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / wxVtkMPR2DView.cxx
index 13ed4a85d063ee745ce2371d20e012ac48961675..0bd418b97977409f6bca5000cdc194fb7bc1fb46 100644 (file)
@@ -44,7 +44,10 @@ vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata()
        return (vtkMPRBaseData*)GetVtkBaseData();
 }
 //-------------------------------------------------------------------
-void wxVtkMPR2DView::Configure(){
+void wxVtkMPR2DView::Configure()
+{
+       printf("EED wxVtkMPR2DView::Configure");
+       
        wxVtk2DBaseView::Configure();
 
 
@@ -87,7 +90,7 @@ void wxVtkMPR2DView::Configure(){
        if(_lineAActor==NULL){
                _lineAActor = vtkActor::New();
                _lineAActor->GetProperty()->SetDiffuseColor(1,0,0);
-               _lineAActor->GetProperty()->SetLineWidth(2);
+               _lineAActor->GetProperty()->SetLineWidth(0.5);
 
                _ptsA = vtkPoints::New();
                _ptsA->SetNumberOfPoints(2);
@@ -117,7 +120,7 @@ void wxVtkMPR2DView::Configure(){
        if(_lineBActor==NULL){
                _lineBActor                                             =       vtkActor::New();
                _lineBActor->GetProperty()->SetDiffuseColor(1,0,0);
-               _lineBActor->GetProperty()->SetLineWidth(2);
+               _lineBActor->GetProperty()->SetLineWidth(0.5);
                _lineBMapper                                    =       vtkPolyDataMapper::New();
                _lineBActor->SetMapper(_lineBMapper);
 
@@ -150,29 +153,30 @@ void wxVtkMPR2DView::Configure(){
                vtkCamera *camera =_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->GetActiveCamera();
 
        //EED 17Avril2009
-       /*
-               if (_direction==0) {
-                       camera->SetViewUp               (   0   ,    -1         ,     0         );
-                       camera->SetPosition             ( -10000,(y1+y2)/2      , (z1+z2)/2     );
+    //EED 21 mars 2012  FLIP problem  ..PLOP..
+
+               if (_direction==0) {  // YZ
+                       camera->SetViewUp               (   0   ,    0          ,     1         );
+                       camera->SetPosition             ( 10000,(y1+y2)/2       , (z1+z2)/2     );
                        camera->SetFocalPoint   (   0   , (y1+y2)/2     , (z1+z2)/2     );
                        camera->SetParallelScale( (z2-z1)/3.0 );
                }
 
-               if (_direction==1) {
-                       camera->SetViewUp               (       0               ,       0       ,       -1              );
-                       camera->SetPosition             ((x1+x2)/2      , 10000 , (z1+z2)/2     );
+               if (_direction==1) { // XZ
+                       camera->SetViewUp               (       0               ,       0       ,                     );
+                       camera->SetPosition             ((x1+x2)/2      , -10000        , (z1+z2)/2     );
                        camera->SetFocalPoint   ((x1+x2)/2      ,   0   , (z1+z2)/2     );
                        camera->SetParallelScale( (x2-x1)/3.0 );
                }
 
-               if (_direction==2) {
+               if (_direction==2) {  // XY
                        camera->SetViewUp               (       0               ,       -1              ,       0       );
                        camera->SetPosition             ((x1+x2)/2      , (y1+y2)/2     , -10000);
                        camera->SetFocalPoint   ((x1+x2)/2      , (y1+y2)/2     ,       0       );
                        camera->SetParallelScale( (x2-x1)/3.0 );
                }
-       */
 
+/*
                if (_direction==0) {    // YZ
                        camera->SetViewUp               (   0   ,     1         ,     0         );
                        camera->SetPosition             (  10000,(y1+y2)/2      , (z1+z2)/2     );
@@ -193,7 +197,7 @@ void wxVtkMPR2DView::Configure(){
                        camera->SetFocalPoint   ((x1+x2)/2      , (y1+y2)/2     ,       0       );
                        camera->SetParallelScale( (x2-x1)/3.0 );
                }
-
+*/
 
        //      _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow (160);
        //      _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel (800);
@@ -224,6 +228,7 @@ void wxVtkMPR2DView::SetVisibleAxis(bool ok)
 void wxVtkMPR2DView::Refresh()
 {
 
+       printf("wxVtkMPR2DView::Refresh start\n");
 
        //wxVtk2DBaseView::Refresh();
 
@@ -237,7 +242,9 @@ void wxVtkMPR2DView::Refresh()
        int xx = 0, yy = 0, zz = 0;
        double *spc     = 0;
        double *origin  = 0;
-
+       
+       double xx1,yy1,zz1,xx2,yy2,zz2;
+       
 
        //GetVtkmprbasedata()->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
 
@@ -253,13 +260,22 @@ void wxVtkMPR2DView::Refresh()
                y2 += origin[1];
                z1 += origin[2];
                z2 += origin[2];
+               
+               xx1 =           x1*spc[0];
+               yy1 =           y1*spc[1];
+               zz1 =           z1*spc[2];
+               
+               xx2 =           x2*spc[0];
+               yy2 =           y2*spc[1];
+               zz2 =           z2*spc[2];
+               
                x1 = (int)(x1*spc[0]);
                y1 = (int)(y1*spc[1]);
                z1 = (int)(z1*spc[2]);
-
-               x2 = (int)(x2*spc[0]);
-               y2 = (int)(y2*spc[1]);
-               z2 = (int)(z2*spc[2]);
+               
+               x2      = (int)(x2*spc[0]);
+               y2      = (int)(y2*spc[1]);
+               z2      = (int)(z2*spc[2]);
 
                xx = (int)(GetVtkmprbasedata()->GetX());
                yy = (int)(GetVtkmprbasedata()->GetY());
@@ -268,37 +284,62 @@ void wxVtkMPR2DView::Refresh()
                x =  round(xx*spc[0]);
                y =  round(yy*spc[1]);
                z =  round(zz*spc[2]);
-
+               
                if ((xx!=_backX) || (yy!=_backY) || (zz!=_backZ)) {
 
                        if (_direction==0) {    // YZ
                                if(_imageViewer2XYZ)
+                               {
                                        _imageViewer2XYZ->SetXSlice( (int)(GetVtkmprbasedata()->GetX()) );
-                               _ptsA->SetPoint(0, x2, y1  , z );
-                               _ptsA->SetPoint(1, x2, y2  , z );
-                               _ptsB->SetPoint(0, x2, y   , z1);
-                               _ptsB->SetPoint(1, x2, y   , z2);
+                               }
+//EED 21 mars 2012  FLIP probleme  ..PLOP..
+                               //_ptsA->SetPoint(0, x2, y1  , z );
+                               //_ptsA->SetPoint(1, x2, y2  , z );
+                               //_ptsB->SetPoint(0, x2, y   , z1);
+                               //_ptsB->SetPoint(1, x2, y   , z2);
+                               _ptsA->SetPoint(0, xx2, yy1  , z  );
+                               _ptsA->SetPoint(1, xx2, yy2  , z  );
+                               _ptsB->SetPoint(0, xx2, y    , zz1);
+                               _ptsB->SetPoint(1, xx2, y    , zz2);
                        }
                        if (_direction==1) {    // XZ
                                if(_imageViewer2XYZ)
+                               {
                                        _imageViewer2XYZ->SetYSlice( (int)(GetVtkmprbasedata()->GetY()) );
-                           _ptsA->SetPoint(0, x1 , y2 , z );
-                               _ptsA->SetPoint(1, x2 , y2 , z );
-                               _ptsB->SetPoint(0, x  , y2 , z1);
-                               _ptsB->SetPoint(1, x  , y2 , z2);
+                               }
+//EED 21 mars 2012  FLIP probleme  ..PLOP..
+                           //_ptsA->SetPoint(0, x1 , y2 , z );
+                               //_ptsA->SetPoint(1, x2 , y2 , z );
+                               //_ptsB->SetPoint(0, x  , y2 , z1);
+                               //_ptsB->SetPoint(1, x  , y2 , z2);
+                           _ptsA->SetPoint(0, xx1 , y1 , z  );
+                               _ptsA->SetPoint(1, xx2 , y1 , z  );
+                               _ptsB->SetPoint(0, x   , y1 , zz1);
+                               _ptsB->SetPoint(1, x   , y1 , zz2);
                        }
                        if (_direction==2) {    // XY
                                if(_imageViewer2XYZ)
+                               {
                                        _imageViewer2XYZ->SetZSlice( (int)(GetVtkmprbasedata()->GetZ()) );
+                               }
                        //      _ptsA->SetPoint(0, x1 , y , -z2 );
                        //      _ptsA->SetPoint(1, x2 , y , -z2 );
                        //      _ptsB->SetPoint(0, x  , y1, -z2 );
                        //      _ptsB->SetPoint(1, x  , y2, -z2 );
 
-                               _ptsA->SetPoint(0, x1 , y , z2 );
-                               _ptsA->SetPoint(1, x2 , y , z2 );
-                               _ptsB->SetPoint(0, x  , y1, z2 );
-                               _ptsB->SetPoint(1, x  , y2, z2 );
+                               
+//EED 21 mars 2012  FLIP probleme  ..PLOP..
+                               //_ptsA->SetPoint(0, x1 , y , z2 );
+                               //_ptsA->SetPoint(1, x2 , y , z2 );
+                               //_ptsB->SetPoint(0, x  , y1, z2 );
+                               //_ptsB->SetPoint(1, x  , y2, z2 );
+                               
+                               _ptsA->SetPoint(0, xx1 , y  , z1 );
+                               _ptsA->SetPoint(1, xx2 , y  , z1 );
+                               _ptsB->SetPoint(0, x   , yy1, z1 );
+                               _ptsB->SetPoint(1, x   , yy2, z1 );
+                               
+                               
                        }
                        _backX=xx;
                        _backY=yy;
@@ -309,6 +350,9 @@ void wxVtkMPR2DView::Refresh()
 _imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->Modified();
 
                wxVtkBaseView::Refresh();
+               
+               printf("wxVtkMPR2DView::Refresh end\n");
+               
        }
 }
 //-------------------------------------------------------------------