From 59926455954694b913c1470db6501bf441de24e3 Mon Sep 17 00:00:00 2001 From: apo Date: Tue, 27 May 2008 06:36:41 +0000 Subject: [PATCH] Fix for Bug NPAL13676 - EDF 318 : VISU Post-processing on quadratic elements --- src/CONVERTOR/VISU_ConvertorUtils.cxx | 17 +++++++++++++++++ src/CONVERTOR/VISU_ConvertorUtils.hxx | 5 +++++ src/VISUGUI/VisuGUI_Selection.cxx | 22 +++++++++++++++------- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/CONVERTOR/VISU_ConvertorUtils.cxx b/src/CONVERTOR/VISU_ConvertorUtils.cxx index a4cee79f..9a2dd969 100644 --- a/src/CONVERTOR/VISU_ConvertorUtils.cxx +++ b/src/CONVERTOR/VISU_ConvertorUtils.cxx @@ -233,6 +233,23 @@ namespace VISU return aDataSetAttributes->GetArray("VISU_FIELD") != NULL; } + //--------------------------------------------------------------- + bool + IsElnoData(vtkDataSet* theDataSet) + { + theDataSet->Update(); + + if ( vtkDataSetAttributes *aDataSetAttributes = theDataSet->GetCellData() ) + if ( aDataSetAttributes->GetArray( "ELNO_FIELD" ) != NULL ) + return true; + + if ( vtkDataSetAttributes *aDataSetAttributes = theDataSet->GetPointData() ) + if ( aDataSetAttributes->GetArray( "ELNO_POINT_COORDS" ) != NULL ) + return true; + + return false; + } + //--------------------------------------------------------------- vtkIdType diff --git a/src/CONVERTOR/VISU_ConvertorUtils.hxx b/src/CONVERTOR/VISU_ConvertorUtils.hxx index 17c12fde..2c1bff92 100644 --- a/src/CONVERTOR/VISU_ConvertorUtils.hxx +++ b/src/CONVERTOR/VISU_ConvertorUtils.hxx @@ -90,6 +90,11 @@ namespace VISU bool IsDataOnCells(vtkDataSet* theDataSet); + //--------------------------------------------------------------- + VISU_CONVERTOR_EXPORT + bool + IsElnoData(vtkDataSet* theDataSet); + //--------------------------------------------------------------- VISU_CONVERTOR_EXPORT diff --git a/src/VISUGUI/VisuGUI_Selection.cxx b/src/VISUGUI/VisuGUI_Selection.cxx index 4670d7cf..d2e699a8 100644 --- a/src/VISUGUI/VisuGUI_Selection.cxx +++ b/src/VISUGUI/VisuGUI_Selection.cxx @@ -54,6 +54,8 @@ #include "SVTK_ViewWindow.h" #include "SVTK_Selector.h" +#include "VISU_ConvertorUtils.hxx" + #include "utilities.h" // OCCT Includes @@ -445,22 +447,28 @@ void VisuGUI_SelectionDlg::onSelectionEvent() { case 0: { int aVTKID = anVISUActor->GetNodeVTKID(anID); - if(aVTKID >= 0){ + if ( aVTKID >= 0 ) { vtkFloatingPointType* aCoord = anVISUActor->GetNodeCoord(anID); myXValLbl->setText( QString::number( aCoord[0] ) ); myYValLbl->setText( QString::number( aCoord[1] ) ); myZValLbl->setText( QString::number( aCoord[2] ) ); - myIDValLbl->setText( QString::number(anID) ); - myScalarValLbl->setText(getValue(aPntData, aVTKID)); - myVectorValLbl->setText(getVector(aPntData, aVTKID)); + myIDValLbl->setText( QString::number( anID ) ); + if ( !VISU::IsElnoData( aDataSet ) ) { + myScalarValLbl->setText( getValue( aPntData, aVTKID ) ); + myVectorValLbl->setText( getVector( aPntData, aVTKID ) ); + } else { + myScalarValLbl->setText( "< ELNO data >" ); + myVectorValLbl->setText( "< ELNO data >" ); + } + const VISU::PIDMapper& aMapper = aPrs3d->GetPipeLine()->GetIDMapper(); - VISU::TStructuredId aStructuredId = aMapper->GetIndexesOfNode(anID); + VISU::TStructuredId aStructuredId = aMapper->GetIndexesOfNode( anID ); myKValLbl->setText( GetNumber( aStructuredId, 2 ) ); myJValLbl->setText( GetNumber( aStructuredId, 1 ) ); myIValLbl->setText( GetNumber( aStructuredId, 0 ) ); - } - } + } + } break; case 1: { -- 2.39.2