]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/vtkVectorsVisu.cpp
VectorField 2D view
[creaVtk.git] / lib / creaVtk / vtkVectorsVisu.cpp
index 376d4036211699121b49e0d31a4b75de98b1f118..7c8a6bc1776e0d0d29ffa25e3e81e88ce74e9f8f 100644 (file)
@@ -38,8 +38,9 @@ vtkVectorsVisu::vtkVectorsVisu()
   :vtkVectorsTensorsVisuBase()
 {
        _vtkarrowsource         = vtkArrowSource::New();
-       _vtkglyph                       = vtkGlyph3D::New();
-       _vtklinesource          = vtkLineSource::New();
+       _vtkglyph                       = NULL;
+       _vtklinesource          = vtkLineSource ::New();
+       _trans                          = vtkTransform  ::New();
 
        double point1[3];
        double point2[3];
@@ -64,6 +65,19 @@ void vtkVectorsVisu::Process()
 {
      if(_active==true)
      {
+               if (_vtkglyph==NULL) 
+               {
+                       if (GetOrientation()==0)
+                       {
+                               _vtkglyph = vtkGlyph3D::New(); 
+                       } // _orientation                       
+                       if ((GetOrientation()>=1) && (GetOrientation()<=3))
+                       {
+                               _vtkglyph = vtkGlyph2D::New(); 
+                       } // _orientation                       
+               } // _vtkglyph NULL
+
+
 #if VTK_MAJOR_VERSION <= 5
          _vtkglyph->SetInput( GetDataObject() );  
 #else
@@ -101,11 +115,11 @@ vtkPointData      *data   = _vtkglyph->GetOutput()->GetPointData();
 //_vtkglyph->GetOutput()->Print(std::cout);
 //printf("EED -------------------------------------------\n");
 //data->Print(std::cout);
-int i,sizeDa = data->GetNumberOfArrays();
-for (i=0;i<sizeDa;i++)
-{
-       data->GetArray(i)->Print(std::cout);
-}
+//int i,sizeDa = data->GetNumberOfArrays();
+//for (i=0;i<sizeDa;i++)
+//{
+//     data->GetArray(i)->Print(std::cout);
+//}
 
        _pdm->ScalarVisibilityOn();
        _pdm->SetColorModeToMapScalars();
@@ -130,6 +144,27 @@ for (i=0;i<sizeDa;i++)
 #else
          _pdm->Update();
 #endif
+
+               // Orientation 0 3D     OK
+               // Orientation 1 2D xy  OK
+
+               // Orientation 2 2D yz  
+               if (GetOrientation()==2) 
+               {
+                       _trans->Identity();
+                       _trans->Translate(900,0,0);
+                       _trans->RotateWXYZ(-90,0,1,0);
+                       _actor->SetUserTransform(_trans);
+               }
+
+               // Orientation 3 2D xz  
+               if (GetOrientation()==3) 
+               {
+                       _trans->Identity();
+                       _trans->RotateWXYZ(90,1,0,0);
+                       _actor->SetUserTransform(_trans);
+               }
+
          _actor->SetMapper( _pdm );
          _actor->GetProperty()->SetOpacity( GetOpacity() );
     }// if _active