]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Fix for IPAL19178.
authormkr <mkr@opencascade.com>
Wed, 12 Mar 2008 06:13:47 +0000 (06:13 +0000)
committermkr <mkr@opencascade.com>
Wed, 12 Mar 2008 06:13:47 +0000 (06:13 +0000)
src/VVTK/VVTK_PickingDlg.cxx

index 5e05ceac14c805cfc3dbd32260c8f07c7c479bb5..76fead72a22f344af70b91d5c38c956d5e70c394 100644 (file)
@@ -560,6 +560,19 @@ void VVTK_PickingDlg::onSelectionEvent()
 
   VISU::TLocalPntID aLocalPntID = aGaussPointID.second;
   myLocalPointLineEdit->setText( QString::number( aLocalPntID ) );
+
+  myPickingSettings->InvokeEvent( VISU::UpdatePickingSettingsEvent,NULL );
+
+  VISU::PGaussPtsIDMapper anIDMapper = aHelper.myPipeLine->GetGaussPtsIDMapper();
+  vtkIdType anObjVtkId = anIDMapper->GetVTKID( VISU::TGaussPointID( aCellID, aLocalPntID ) );
+  if ( anObjVtkId < 0 )
+    return;
+
+  aHelper.myMapIndex.Clear();
+  aHelper.myMapIndex.Add( anObjVtkId );
+  aHelper.mySelector->AddOrRemoveIndex( aHelper.myIO, aHelper.myMapIndex, false );
+  aHelper.myActor->Highlight( aHelper.myIO );
+  myInteractor->GetDevice()->CreateTimer( VTKI_TIMER_FIRST );
 }
 
 VISU_PickingSettings* 
@@ -662,6 +675,27 @@ void VVTK_PickingDlg::onClickApply()
 
 void VVTK_PickingDlg::onClickClose()
 {
+  SelectorHelper aHelper( myInteractor );
+  if ( !aHelper.get() )
+    return;
+
+  const TColStd_IndexedMapOfInteger& aMapIndex = aHelper.myMapIndex;
+  if ( aMapIndex.Extent() != 1 )
+    return;
+  
+  int anObjId = aHelper.myMapIndex(1);
+  VISU::TGaussPointID aGaussPointID = aHelper.myPipeLine->GetObjID( anObjId );
+  VISU::TCellID aCellID = aGaussPointID.first;
+  VISU::TLocalPntID aLocalPntID = aGaussPointID.second;
+
+  VISU::PGaussPtsIDMapper anIDMapper = aHelper.myPipeLine->GetGaussPtsIDMapper();
+  vtkIdType anObjVtkId = anIDMapper->GetVTKID( VISU::TGaussPointID( aCellID, aLocalPntID ) );
+  if ( anObjVtkId < 0 )
+    return;
+
+  aHelper.myActor->Highlight( false );
+  aHelper.myMapIndex.Clear();
+
   reject();
 }