]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/vtkTensorsVisu.cpp
#3470 merge vtk8itk5wx3-mingw64
[creaVtk.git] / lib / creaVtk / vtkTensorsVisu.cpp
index f1a73ec92eb835c40dd4697fd3f583a5ce349131..182f1d734cefcb6145d9b87b5849cceab0e3c117 100644 (file)
 vtkTensorsVisu::vtkTensorsVisu() : vtkVectorsTensorsVisuBase()
 {
        ss                                      = vtkSphereSource::New();
-       superquadratic  = vtkSuperquadricSource::New();
+       superquadratic          = vtkSuperquadricSource::New();
        cs                                      = vtkCubeSource::New(); 
-       tg                                      = vtkTensorGlyph::New();
-       pdn                                     = vtkPolyDataNormals::New();
+
+       tg                                      = NULL;
+
+       pdn                             = vtkPolyDataNormals::New();
        pd                                      = vtkPolyData::New();
-       pod                                     = vtkPointData::New();
+       pod                             = vtkPointData::New();
 }
 
 //------------------------------------------------------------------------
@@ -56,23 +58,28 @@ void vtkTensorsVisu::Process()
   {
        if(GetTypeForm()==2)                                                            // source superquadratic
        {
+               if (tg==NULL) { tg = vtkTensorGlyph::New(); }
+
                superquadratic->SetThetaResolution(20);
                superquadratic->SetPhiResolution(20);
 #if VTK_MAJOR_VERSION <= 5
                tg->SetSource(superquadratic->GetOutput());
 #else
+               superquadratic->Update();
                tg->SetSourceData(superquadratic->GetOutput());
 #endif
        } else if(GetTypeForm()==1) {                                   // source sphere
 #if VTK_MAJOR_VERSION <= 5
                tg->SetSource(ss->GetOutput());
 #else
+               ss->Update();
                tg->SetSourceData(ss->GetOutput());
 #endif
        } else {                                                                                                // source cube
 #if VTK_MAJOR_VERSION <= 5
                tg->SetSource(cs->GetOutput());         
 #else
+               cs->Update();
                tg->SetSourceData(cs->GetOutput());     
 #endif
        }
@@ -94,7 +101,9 @@ void vtkTensorsVisu::Process()
        _pdm->SetInput( pdn->GetOutput() );
 #else
        pdn->SetInputData(tg->GetOutput());
+       pdn->Update();
        _pdm->SetInputData( pdn->GetOutput() );
+       _pdm->Update();
 #endif
        _actor->SetMapper( _pdm );
    _actor->GetProperty()->SetOpacity( GetOpacity() );
@@ -130,8 +139,10 @@ void vtkTensorsVisu::Process()
        vtkIdType numSourcePts;
 //     vtkIdType numSourceCells;
 
-       vtkPoints *sourcePts = tg->GetSource()->GetPoints();
-       numSourcePts = sourcePts->GetNumberOfPoints();
+       vtkPoints *sourcePts    = tg->GetSource()->GetPoints();
+
+
+       numSourcePts                    = sourcePts->GetNumberOfPoints();
 //     numSourceCells = tg->GetSource()->GetNumberOfCells();
 
        vtkDataArray *tensorsArray = pointdata_do->GetArray("tensors");
@@ -140,7 +151,7 @@ void vtkTensorsVisu::Process()
                vtkDoubleArray  *newScalarArray                         = vtkDoubleArray::New();
                newScalarArray->SetName( "NormalsEED" );
                newScalarArray->SetNumberOfComponents(3); 
-               int             iNumPts,iNumSourcePts;
+               int     iNumPts,iNumSourcePts;
                int             iNormalsEED=0;
                double  *normalValue;
                double   sumEigenvalue,sumEigenvalue1,sumEigenvalue2,sumEigenvalue3;
@@ -149,9 +160,9 @@ void vtkTensorsVisu::Process()
                for (iNumPts=0;iNumPts<numPnts;iNumPts++)
                {
                        normalValue = tensorsArray->GetTuple9(iNumPts);
-         sumEigenvalue1 = sqrt (normalValue[0]*normalValue[0] + normalValue[1]*normalValue[1] + normalValue[2]*normalValue[2]);
-         sumEigenvalue2 = sqrt (normalValue[3]*normalValue[3] + normalValue[4]*normalValue[4] + normalValue[5]*normalValue[5]);
-         sumEigenvalue3 = sqrt (normalValue[6]*normalValue[6] + normalValue[7]*normalValue[7] + normalValue[8]*normalValue[8]);
+               sumEigenvalue1 = sqrt (normalValue[0]*normalValue[0] + normalValue[1]*normalValue[1] + normalValue[2]*normalValue[2]);
+               sumEigenvalue2 = sqrt (normalValue[3]*normalValue[3] + normalValue[4]*normalValue[4] + normalValue[5]*normalValue[5]);
+               sumEigenvalue3 = sqrt (normalValue[6]*normalValue[6] + normalValue[7]*normalValue[7] + normalValue[8]*normalValue[8]);
 
                        if ((sumEigenvalue1>=sumEigenvalue2) && (sumEigenvalue1>=sumEigenvalue3))
                        {
@@ -181,20 +192,22 @@ void vtkTensorsVisu::Process()
                        } // for iNumSourcePts
 
                } // for iNumPts
+
+
                pointdata_tg->RemoveArray( "NormalsEED" );
                pointdata_tg->AddArray( newScalarArray );
 //             pointdata_pdn->Update();
                tg->Update();
        } // if  tensorsArray
 
-
-
        _pdm->ScalarVisibilityOn();
        _pdm->SetColorModeToMapScalars();
        //_pdm->SetColorModeToDefault();
        // _pdm->SetColorModeToDirectScalars();  // NOT compile
        _pdm->SetScalarModeToUsePointFieldData();
-       _pdm->ImmediateModeRenderingOn();
+
+//EED2021-09-03 Deprecated. Removed in vtk 8.1
+//     _pdm->ImmediateModeRenderingOn();
 
        _LutEED->SetVectorModeToComponent();
        //_LutEED->SetVectorModeToRGBColors();
@@ -202,6 +215,12 @@ void vtkTensorsVisu::Process()
        _pdm->SetLookupTable( _LutEED );
        _pdm->SelectColorArray( "NormalsEED" );
 
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
+  //...
+#else
+       _pdm->Update();
+#endif
 
 /*
                        int i,sizeDa = pointdata_tg->GetNumberOfArrays();
@@ -214,11 +233,7 @@ void vtkTensorsVisu::Process()
 
                        }
 */
-
-
   } // _active
-
-    VisibilityActor(); 
-
+  VisibilityActor(); 
 }