X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_VTKUtils.cxx;h=16eecc6966c619b774b44d4767a6d63af6624940;hb=c15810268833e2cf4972f26c0bbe4249986cf7ea;hp=ac064ec25a41bd753af8242a86d2464219513e69;hpb=b33324fe602b1fe1158c14a866c3802df12370fa;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx index ac064ec25..16eecc696 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx @@ -15,7 +15,7 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com #include "SMESHGUI_VTKUtils.h" @@ -31,14 +31,11 @@ #include #include -#include "SalomeApp_SelectionMgr.h" +#include "LightApp_SelectionMgr.h" #include "SVTK_Selector.h" #include "SVTK_ViewModel.h" #include "SVTK_ViewWindow.h" -#include "SVTK_RenderWindow.h" -#include "SVTK_InteractorStyle.h" -#include "SVTK_RenderWindowInteractor.h" #include "utilities.h" @@ -53,7 +50,7 @@ #include "SMESH_ObjectDef.h" #include -#include +#include #include #include @@ -93,7 +90,7 @@ namespace SMESH{ if(!aMesh->_is_nil()){ aVisualObj.reset(new SMESH_MeshObj(aMesh)); aVisualObj->Update(); - TVisualObjCont::value_type aValue(aKey,aVisualObj); + TVisualObjCont::value_type aValue(aKey,aVisualObj); VISUAL_OBJ_CONT.insert(aValue); return aVisualObj; } @@ -145,8 +142,9 @@ namespace SMESH{ SVTK_ViewWindow* GetViewWindow(const SalomeApp_Module* theModule) { - if(SalomeApp_Application* anApp = theModule->getApp()) + if (SalomeApp_Application* anApp = theModule->getApp()) return dynamic_cast(anApp->desktop()->activeWindow()); + return NULL; } SVTK_ViewWindow* FindVtkViewWindow( SUIT_ViewManager* theMgr, @@ -338,6 +336,7 @@ namespace SMESH{ case eDisplay: case eDisplayOnly: anActor->SetVisibility(true); + if (theAction == eDisplayOnly) aRenderer->ResetCameraClippingRange(); break; case eErase: anActor->SetVisibility(false); @@ -372,7 +371,7 @@ namespace SMESH{ void UpdateView(){ if(SVTK_ViewWindow* aWnd = SMESH::GetCurrentVtkView()){ - SalomeApp_SelectionMgr* mgr = SMESHGUI::selectionMgr(); + LightApp_SelectionMgr* mgr = SMESHGUI::selectionMgr(); SALOME_ListIO selected; mgr->selectedObjects( selected ); if( selected.Extent() == 0){ @@ -447,85 +446,83 @@ namespace SMESH{ double SP1 = mgr->doubleValue( "SMESH", "selection_precision_node", 0.025 ), SP2 = mgr->doubleValue( "SMESH", "selection_precision_element", 0.001 ); - for ( int i=0, n=views.count(); igetRWInteractor(); - if (anInteractor) { - // mesh element selection - anInteractor->SetSelectionProp(aSelColor.red()/255., aSelColor.green()/255., - aSelColor.blue()/255., SW ); - - // tolerances - anInteractor->SetSelectionTolerance(SP1, SP2); - - // pre-selection - SVTK_InteractorStyle* aStyle = - dynamic_cast( anInteractor->GetInteractorStyle() ); - if (aStyle) { - aStyle->setPreselectionProp(aPreColor.red()/255., aPreColor.green()/255., - aPreColor.blue()/255., PW); - } - } + for ( int i=0, n=views.count(); iSetSelectionProp(aSelColor.red()/255., + aSelColor.green()/255., + aSelColor.blue()/255., + SW ); + // tolerances + aVtkView->SetSelectionTolerance(SP1, SP2); + + // pre-selection + aVtkView->SetPreselectionProp(aPreColor.red()/255., + aPreColor.green()/255., + aPreColor.blue()/255., + PW); // update actors vtkRenderer* aRenderer = aVtkView->getRenderer(); vtkActorCollection *aCollection = aRenderer->GetActors(); aCollection->InitTraversal(); while(vtkActor *anAct = aCollection->GetNextActor()){ if(SMESH_Actor *anActor = dynamic_cast(anAct)){ - anActor->SetHighlightColor(aHiColor.red()/255., aHiColor.green()/255., + anActor->SetHighlightColor(aHiColor.red()/255., + aHiColor.green()/255., aHiColor.blue()/255.); - anActor->SetPreHighlightColor(aPreColor.red()/255., aPreColor.green()/255., + anActor->SetPreHighlightColor(aPreColor.red()/255., + aPreColor.green()/255., aPreColor.blue()/255.); } } + } } } //---------------------------------------------------------------------------- - SVTK_InteractorStyle* GetInteractorStyle(SUIT_ViewWindow *theWindow){ - if(SVTK_ViewWindow* aWnd = GetVtkViewWindow(theWindow)){ - if(SVTK_RenderWindowInteractor* anInteractor = aWnd->getRWInteractor()){ - return dynamic_cast( anInteractor->GetInteractorStyle() ); - } - } + SVTK_Selector* + GetSelector(SUIT_ViewWindow *theWindow) + { + if(SVTK_ViewWindow* aWnd = GetVtkViewWindow(theWindow)) + return aWnd->GetSelector(); + return NULL; } void SetFilter(const Handle(VTKViewer_Filter)& theFilter, - SVTK_InteractorStyle* theStyle) + SVTK_Selector* theSelector) { - if (theStyle) - theStyle->SetFilter(theFilter); + if (theSelector) + theSelector->SetFilter(theFilter); } - Handle(VTKViewer_Filter) GetFilter(int theId, SVTK_InteractorStyle* theStyle) + Handle(VTKViewer_Filter) GetFilter(int theId, SVTK_Selector* theSelector) { - return theStyle->GetFilter(theId); + return theSelector->GetFilter(theId); } - bool IsFilterPresent(int theId, SVTK_InteractorStyle* theStyle) + bool IsFilterPresent(int theId, SVTK_Selector* theSelector) { - return theStyle->IsFilterPresent(theId); + return theSelector->IsFilterPresent(theId); } - void RemoveFilter(int theId, SVTK_InteractorStyle* theStyle) + void RemoveFilter(int theId, SVTK_Selector* theSelector) { - theStyle->RemoveFilter(theId); + theSelector->RemoveFilter(theId); } - void RemoveFilters(SVTK_InteractorStyle* theStyle) + void RemoveFilters(SVTK_Selector* theSelector) { - for ( int id = SMESHGUI_NodeFilter; theStyle && id < SMESHGUI_LastFilter; id++ ) - theStyle->RemoveFilter( id ); + for ( int id = SMESHGUI_NodeFilter; theSelector && id < SMESHGUI_LastFilter; id++ ) + theSelector->RemoveFilter( id ); } bool IsValid(SALOME_Actor* theActor, int theCellId, - SVTK_InteractorStyle* theStyle) + SVTK_Selector* theSelector) { - return theStyle->IsValid(theActor,theCellId); + return theSelector->IsValid(theActor,theCellId); } @@ -568,8 +565,8 @@ namespace SMESH{ //---------------------------------------------------------------------------- - int GetNameOfSelectedNodes(SVTK_Selector* theSelector, - const Handle(SALOME_InteractiveObject)& theIO, + int GetNameOfSelectedNodes(SVTK_Selector* theSelector, + const Handle(SALOME_InteractiveObject)& theIO, QString& theName) { theName = ""; @@ -582,8 +579,8 @@ namespace SMESH{ return aMapIndex.Extent(); } - int GetNameOfSelectedElements(SVTK_Selector* theSelector, - const Handle(SALOME_InteractiveObject)& theIO, + int GetNameOfSelectedElements(SVTK_Selector* theSelector, + const Handle(SALOME_InteractiveObject)& theIO, QString& theName) { theName = ""; @@ -603,12 +600,12 @@ namespace SMESH{ } - int GetEdgeNodes(SVTK_Selector* theSelector, + int GetEdgeNodes(SVTK_Selector* theSelector, const TVisualObjPtr& theVisualObject, - int& theId1, + int& theId1, int& theId2) { - const SALOME_ListIO& selected = theSelector->StoredIObjects(); + const SALOME_ListIO& selected = theSelector->StoredIObjects(); if ( selected.Extent() != 1 ) return -1; @@ -638,7 +635,7 @@ namespace SMESH{ } //---------------------------------------------------------------------------- - int GetNameOfSelectedNodes(SalomeApp_SelectionMgr *theMgr, + int GetNameOfSelectedNodes(LightApp_SelectionMgr *theMgr, const Handle(SALOME_InteractiveObject)& theIO, QString& theName) { @@ -656,7 +653,7 @@ namespace SMESH{ return -1; } - int GetNameOfSelectedNodes(SalomeApp_SelectionMgr *theMgr, QString& theName){ + int GetNameOfSelectedNodes(LightApp_SelectionMgr *theMgr, QString& theName){ theName = ""; SALOME_ListIO selected; theMgr->selectedObjects( selected ); if(selected.Extent() == 1){ @@ -665,9 +662,9 @@ namespace SMESH{ } return -1; } - - int GetNameOfSelectedElements(SalomeApp_SelectionMgr *theMgr, + + int GetNameOfSelectedElements(LightApp_SelectionMgr *theMgr, const Handle(SALOME_InteractiveObject)& theIO, QString& theName) { @@ -691,7 +688,7 @@ namespace SMESH{ } - int GetNameOfSelectedElements(SalomeApp_SelectionMgr *theMgr, QString& theName) + int GetNameOfSelectedElements(LightApp_SelectionMgr *theMgr, QString& theName) { theName = ""; SALOME_ListIO selected; theMgr->selectedObjects( selected ); @@ -703,7 +700,7 @@ namespace SMESH{ return -1; } - int GetSelected(SalomeApp_SelectionMgr* theMgr, + int GetSelected(LightApp_SelectionMgr* theMgr, TColStd_IndexedMapOfInteger& theMap, const bool theIsElement) { @@ -721,7 +718,7 @@ namespace SMESH{ } - int GetEdgeNodes( SalomeApp_SelectionMgr* theMgr, int& theId1, int& theId2 ) + int GetEdgeNodes( LightApp_SelectionMgr* theMgr, int& theId1, int& theId2 ) { SALOME_ListIO selected; theMgr->selectedObjects( selected ); @@ -763,7 +760,7 @@ namespace SMESH{ vtkRenderer *aRenderer = aWnd->getRenderer(); vtkActorCollection *aCollection = aRenderer->GetActors(); aCollection->InitTraversal(); - + while ( vtkActor *anAct = aCollection->GetNextActor()) { if ( SMESH_Actor *anActor = dynamic_cast( anAct ) )