+// printf("EED vtkTensorsVisu::Process numSourcePts %d numSourceCells %d\n", numSourcePts, numSourceCells);
+
+ vtkDataArray *tensorsArray = pointdata_do->GetArray("tensors");
+ if (tensorsArray)
+ {
+ vtkFloatArray *newScalarArray = vtkFloatArray::New();
+ newScalarArray->SetName( "NormalsEED" );
+ newScalarArray->SetNumberOfComponents(3);
+ int iNumPts,iNumSourcePts;
+ int iNormalsEED=0;
+ double *normalValue;
+ double sumEigenvalue,sumEigenvalue1,sumEigenvalue2,sumEigenvalue3;
+ double dirx,diry,dirz;
+ int idEigen;
+ 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]);
+
+ if ((sumEigenvalue1>=sumEigenvalue2) && (sumEigenvalue1>=sumEigenvalue3))
+ {
+ sumEigenvalue=sumEigenvalue1;
+ idEigen=0;
+ }
+ if ((sumEigenvalue2>sumEigenvalue1) && (sumEigenvalue2>=sumEigenvalue3))
+ {
+ sumEigenvalue=sumEigenvalue2;
+ idEigen=3;
+ }
+ if ((sumEigenvalue3>=sumEigenvalue1) && (sumEigenvalue3>=sumEigenvalue2))
+ {
+ sumEigenvalue=sumEigenvalue3;
+ idEigen=6;
+ }
+
+ dirx = fabs(normalValue[idEigen+0]/sumEigenvalue);
+ diry = fabs(normalValue[idEigen+1]/sumEigenvalue);
+ dirz = fabs(normalValue[idEigen+2]/sumEigenvalue);
+//printf("%f %f %f\n",dirx, diry,dirz );
+//printf("%f %f %f\n",sumEigenvalue1, sumEigenvalue2, sumEigenvalue3 );
+//printf("%f %f %f\n", normalValue[0], normalValue[1], normalValue[2] );
+
+
+ for (iNumSourcePts=0;iNumSourcePts<numSourcePts;iNumSourcePts++)
+ {
+ newScalarArray->InsertTuple3( iNormalsEED, dirx,diry,dirz );
+ iNormalsEED++;
+ } // for iNumSourcePts
+
+ }
+ pointdata_tg->RemoveArray( "NormalsEED" );
+ pointdata_tg->AddArray( newScalarArray );
+ pointdata_pdn->Update();
+ tg->Update();
+ }
+