X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaVtk%2FvtkTensorsVisu.cpp;h=182f1d734cefcb6145d9b87b5849cceab0e3c117;hb=8e95b9a1830e678c320f21603f14fc6d7fdd917f;hp=7d451f31699b4025d4f1f5f652de92e14f49bd51;hpb=757629f8d0ef2c660febc7f1ce734021559a3763;p=creaVtk.git diff --git a/lib/creaVtk/vtkTensorsVisu.cpp b/lib/creaVtk/vtkTensorsVisu.cpp index 7d451f3..182f1d7 100644 --- a/lib/creaVtk/vtkTensorsVisu.cpp +++ b/lib/creaVtk/vtkTensorsVisu.cpp @@ -35,12 +35,14 @@ 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(); } //------------------------------------------------------------------------ @@ -52,30 +54,57 @@ vtkTensorsVisu::~vtkTensorsVisu() //------------------------------------------------------------------------ void vtkTensorsVisu::Process() { -printf("EED vtkTensorsVisu::Process Start\n"); - if (_active==true) { 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 } +#if VTK_MAJOR_VERSION <= 5 tg->SetInput( GetDataObject() ); +#else + tg->SetInputData( GetDataObject() ); +#endif // tg->ScalingOn(); // tg->SetScaling(25); tg->SetScaleFactor( GetScaleFactor() ); //The normals are needed to generate the right colors and if // not used some of the glyphs are black. +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 pdn->SetInput(tg->GetOutput()); _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() ); @@ -83,8 +112,15 @@ printf("EED vtkTensorsVisu::Process Start\n"); // tg->SetColorModeToScalars(); tg->Update(); +//EED 2017-01-01 Migration VTK7 +#if VTK_MAJOR_VERSION <= 5 pd = tg->GetOutput(); pd->Update(); +#else + tg->Update(); + pd = tg->GetOutput(); +#endif + pod = pd->GetPointData(); pod->Update(); @@ -103,8 +139,10 @@ printf("EED vtkTensorsVisu::Process Start\n"); 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"); @@ -113,7 +151,7 @@ printf("EED vtkTensorsVisu::Process Start\n"); 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; @@ -121,10 +159,10 @@ printf("EED vtkTensorsVisu::Process Start\n"); int idEigen; for (iNumPts=0;iNumPtsGetTuple9(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]); + 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]); if ((sumEigenvalue1>=sumEigenvalue2) && (sumEigenvalue1>=sumEigenvalue3)) { @@ -154,20 +192,22 @@ printf("EED vtkTensorsVisu::Process Start\n"); } // 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(); @@ -175,6 +215,12 @@ printf("EED vtkTensorsVisu::Process Start\n"); _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(); @@ -187,12 +233,7 @@ printf("EED vtkTensorsVisu::Process Start\n"); } */ - - } // _active - - VisibilityActor(); - -printf("EED vtkTensorsVisu::Process End.\n"); + VisibilityActor(); }