]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/creaVtkPlaneWidget.cpp
#3474 PlaneWidget Box with representation:Wireframe and resolution
[creaVtk.git] / lib / creaVtk / creaVtkPlaneWidget.cpp
index 76af319eed93e38ad28984905625250d0e3d5413..39cca10c7502c937298b74332a66cd9d1c81057c 100644 (file)
@@ -48,7 +48,8 @@ void creaVtkCallbackPlaneWidget::Execute(vtkObject *caller, unsigned long, void*
 //------------------------------------------------------------------------
 creaVtkPlaneWidget::creaVtkPlaneWidget()
 {
-       _firsttime      = true;
+       _firsttime              = true;
+       _representation = 1;
        _vPlaneWidget   = vtkPlaneWidget::New();
        _vPlaneSource   = vtkPlaneSource::New();
 }
@@ -114,6 +115,19 @@ int creaVtkPlaneWidget::GetResolution()
 }
 
 
+//------------------------------------------------------------------------
+void creaVtkPlaneWidget::SetRepresentation(int representation)
+{
+       _representation = representation;
+}
+
+//------------------------------------------------------------------------
+int creaVtkPlaneWidget::GetRepresentation()
+{
+       return _representation;
+}
+
+
 
 //------------------------------------------------------------------------
 std::vector<double> creaVtkPlaneWidget::GetCenter()
@@ -139,6 +153,10 @@ std::vector<double> creaVtkPlaneWidget::GetNormal()
        return vecNormal;
 }
 
+void creaVtkPlaneWidget::SetOrigin(std::vector<double> origin)
+{
+       _origin = origin;
+}
 
 //------------------------------------------------------------------------
 void creaVtkPlaneWidget::Process()
@@ -146,34 +164,41 @@ void creaVtkPlaneWidget::Process()
     if ((GetActive()==true) && (GetRenderer()!=NULL))
     { 
 
-//EED 2017-01-01 Migration VTK7
-#if VTK_MAJOR_VERSION <= 5
-       _vPlaneWidget->SetInput( GetImage() );
-#else
-       _vPlaneWidget->SetInputData( GetImage() );
-#endif
-
-       _vPlaneWidget->SetInteractor( GetRenderer()->GetRenderWindow()->GetInteractor() );
-       _vPlaneWidget->NormalToXAxisOn();
-       _vPlaneWidget->NormalToZAxisOn();
-       _vPlaneWidget->SetResolution(10);
-       _vPlaneWidget->SetRepresentationToOutline();
-       _vPlaneWidget->SetPlaceFactor(1); //defini zoom initial
-       _vPlaneWidget->On();
-       if (_firsttime==true )  
-       { 
-               _firsttime = false;
-               _vPlaneWidget->PlaceWidget();
-               creaVtkCallbackPlaneWidget *creavtkcallbackplanewidget = creaVtkCallbackPlaneWidget::New();
-               creavtkcallbackplanewidget->creavtkplanewidget   = this ;
-               _vPlaneWidget->AddObserver( vtkCommand::InteractionEvent , creavtkcallbackplanewidget );
-               _vPlaneWidget->AddObserver( vtkCommand::StartInteractionEvent , creavtkcallbackplanewidget );
-               _vPlaneWidget->AddObserver( vtkCommand::EnableEvent , creavtkcallbackplanewidget );
-       }
-       UpdatePlane();
+       //EED 2017-01-01 Migration VTK7
+       #if VTK_MAJOR_VERSION <= 5
+               _vPlaneWidget->SetInput( GetImage() );
+       #else
+               _vPlaneWidget->SetInputData( GetImage() );
+       #endif
+               _vPlaneWidget->SetInteractor( GetRenderer()->GetRenderWindow()->GetInteractor() );
+               _vPlaneWidget->NormalToXAxisOn();
+               _vPlaneWidget->NormalToZAxisOn();
+               _vPlaneWidget->SetResolution(_resolution);
+               if (_representation==0){ _vPlaneWidget->SetRepresentationToOutline();   }
+               if (_representation==1){ _vPlaneWidget->SetRepresentationToWireframe(); }
+               if (_representation==2){ _vPlaneWidget->SetRepresentationToSurface();   }
+               _vPlaneWidget->SetPlaceFactor(1); //defini zoom initial
+               _vPlaneWidget->SetHandleSize(0.01); 
+               _vPlaneWidget->On();
+               _vPlaneWidget->Print(std::cout);
+               if (_origin.size()==3)
+               {
+                       _vPlaneWidget->SetCenter( _origin[0] , _origin[1] , _origin[2] );
+               } // if _origin
+               if (_firsttime==true )  
+               { 
+                       _firsttime = false;
+                       _vPlaneWidget->PlaceWidget();
+                       creaVtkCallbackPlaneWidget *creavtkcallbackplanewidget  = creaVtkCallbackPlaneWidget::New();
+                       creavtkcallbackplanewidget->creavtkplanewidget                  = this ;
+                       _vPlaneWidget->AddObserver( vtkCommand::InteractionEvent , creavtkcallbackplanewidget );
+                       _vPlaneWidget->AddObserver( vtkCommand::StartInteractionEvent , creavtkcallbackplanewidget );
+                       _vPlaneWidget->AddObserver( vtkCommand::EnableEvent , creavtkcallbackplanewidget );
+               }
+               UpdatePlane();
     } else {
-       _vPlaneWidget->Off();
-    }
+               _vPlaneWidget->Off();
+    } // if Active Render
 }