From ef4760590e23dd8948e8d82b8a33c88a73dddb7d Mon Sep 17 00:00:00 2001 From: nds Date: Thu, 3 Nov 2005 08:19:27 +0000 Subject: [PATCH] Remove dependency from KERNEL --- src/SVTK/Makefile.in | 11 +- src/SVTK/SVTK.h | 27 +- src/SVTK/SVTK_Actor.cxx | 2 - src/SVTK/SVTK_InteractorStyle.cxx | 16 - src/SVTK/SVTK_RenderWindowInteractor.cxx | 11 - src/SVTK/SVTK_Selector.cxx | 1 - src/SVTK/SVTK_ViewModel.cxx | 897 ++++++++++---------- src/VTKViewer/VTKViewer_InteractorStyle.cxx | 15 - src/VTKViewer/VTKViewer_ShrinkFilter.cxx | 8 - 9 files changed, 476 insertions(+), 512 deletions(-) diff --git a/src/SVTK/Makefile.in b/src/SVTK/Makefile.in index a39b7cb8d..c395159b7 100755 --- a/src/SVTK/Makefile.in +++ b/src/SVTK/Makefile.in @@ -50,14 +50,9 @@ LIB_MOC = SVTK_RenderWindowInteractor.h \ SVTK_ViewModel.h \ SVTK_ViewManager.h -LIB_CLIENT_IDL = SALOMEDS.idl \ - SALOME_Exception.idl \ - SALOME_ModuleCatalog.idl \ - SALOME_GenericObj.idl +CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(BOOST_CPPFLAGS) -CPPFLAGS+=$(QT_INCLUDES) $(OCC_INCLUDES) $(VTK_INCLUDES) $(BOOST_CPPFLAGS) -I$(KERNEL_ROOT_DIR)/include/salome - -LDFLAGS+=$(QT_MT_LIBS) $(OCC_LIBS) $(VTK_LIBS) -L$(KERNEL_ROOT_DIR)/lib/salome -LIBS+= -lsuit -lCAM -lSalomeObject -lSalomePrs -lVTKViewer -lOpUtil +LDFLAGS+=$(QT_MT_LIBS) $(OCC_LIBS) $(VTK_LIBS) +LIBS+= -lsuit -lCAM -lSalomeObject -lSalomePrs -lVTKViewer @CONCLUDE@ diff --git a/src/SVTK/SVTK.h b/src/SVTK/SVTK.h index d650c084c..d6c7c52c1 100755 --- a/src/SVTK/SVTK.h +++ b/src/SVTK/SVTK.h @@ -1,13 +1,14 @@ -#ifdef WNT -#ifdef SVTK_EXPORTS -#define SVTK_EXPORT __declspec(dllexport) -#else -#define SVTK_EXPORT __declspec(dllimport) -#endif -#else -#define SVTK_EXPORT -#endif - -#if defined WNT -#pragma warning ( disable: 4251 ) -#endif +#ifdef WNT +#ifdef SVTK_EXPORTS +#define SVTK_EXPORT __declspec(dllexport) +#else +#define SVTK_EXPORT __declspec(dllimport) +#endif +#else +#define SVTK_EXPORT +#endif + +#if defined WNT +#pragma warning ( disable: 4251 ) +#pragma warning ( disable: 4786 ) +#endif diff --git a/src/SVTK/SVTK_Actor.cxx b/src/SVTK/SVTK_Actor.cxx index 1ec5fa4b1..c958f2852 100644 --- a/src/SVTK/SVTK_Actor.cxx +++ b/src/SVTK/SVTK_Actor.cxx @@ -31,8 +31,6 @@ #include #include -//#include "utilities.h" - using namespace std; #ifdef _DEBUG_ diff --git a/src/SVTK/SVTK_InteractorStyle.cxx b/src/SVTK/SVTK_InteractorStyle.cxx index 0a5e19f49..6564c0007 100644 --- a/src/SVTK/SVTK_InteractorStyle.cxx +++ b/src/SVTK/SVTK_InteractorStyle.cxx @@ -29,8 +29,6 @@ #include "SVTK_InteractorStyle.h" -#include "utilities.h" - #include "VTKViewer_CellRectPicker.h" #include "VTKViewer_Utilities.h" #include "VTKViewer_RectPicker.h" @@ -74,12 +72,6 @@ using namespace std; -#ifdef _DEBUG_ -static int MYDEBUG = 0; -#else -static int MYDEBUG = 0; -#endif - namespace { int @@ -147,7 +139,6 @@ SVTK_InteractorStyle SVTK_InteractorStyle ::~SVTK_InteractorStyle() { - if(MYDEBUG) INFOS("SVTK_InteractorStyle::~SVTK_InteractorStyle()"); myViewWindow->RemoveActor(myPreSelectionActor); } @@ -911,7 +902,6 @@ SVTK_InteractorStyle Handle(SALOME_InteractiveObject) anIO = aSActor->getIO(); if(aSelectionMode != EdgeOfCellSelection) { if(CheckDimensionId(aSelectionMode,aSActor,anObjId)){ - if(MYDEBUG) INFOS(" CellId : "<IsSelected(anIO)) { // This IO is already in the selection GetSelector()->AddOrRemoveIndex(anIO,anObjId,myShiftState); @@ -931,7 +921,6 @@ SVTK_InteractorStyle } int anEdgeId = GetEdgeId(picker,aSActor,anObjId); if (anEdgeId >= 0) { - if(MYDEBUG) INFOS(" CellId : "<AddOrRemoveIndex(anIO,anObjId,false); GetSelector()->AddOrRemoveIndex(anIO,-anEdgeId-1,true); GetSelector()->AddIObject(aSActor); @@ -957,7 +946,6 @@ SVTK_InteractorStyle this->HighlightProp( NULL ); GetSelector()->ClearIObjects(); } - if(MYDEBUG) INFOS(" PointId : "<AddOrRemoveIndex(anIO,anObjId,myShiftState); GetSelector()->AddIObject(aSActor); } @@ -1087,7 +1075,6 @@ SVTK_InteractorStyle continue; VTKViewer_CellDataSet cellList = picker->GetCellData(aActor); if ( !cellList.empty() ) { - if(MYDEBUG) INFOS ( " NAME Actor : " << aSActor->getName() ); TColStd_MapOfInteger anIndexes; VTKViewer_CellDataSet::iterator it; for ( it = cellList.begin(); it != cellList.end(); ++it ) { @@ -1273,7 +1260,6 @@ SVTK_InteractorStyle if(aResult){ mySelectedActor = aSActor; myElemId = anObjId; - if(MYDEBUG) INFOS(" CellId : "<setCellData(anObjId,aSActor,myPreSelectionActor); } } @@ -1288,7 +1274,6 @@ SVTK_InteractorStyle mySelectedActor = aSActor; myEdgeId = anEdgeId; myElemId = anObjId; - if(MYDEBUG) INFOS(" CellId : "<setEdgeData(anObjId,aSActor,-anEdgeId-1,myPreSelectionActor); } } @@ -1309,7 +1294,6 @@ SVTK_InteractorStyle if(!anIsSameObjId) { mySelectedActor = aSActor; myNodeId = anObjId; - if(MYDEBUG) INFOS(" PointId : "<setPointData(anObjId,aSActor,myPreSelectionActor); } myPreSelectionActor->GetProperty()->SetRepresentationToSurface(); diff --git a/src/SVTK/SVTK_RenderWindowInteractor.cxx b/src/SVTK/SVTK_RenderWindowInteractor.cxx index a80733492..55dd794e7 100644 --- a/src/SVTK/SVTK_RenderWindowInteractor.cxx +++ b/src/SVTK/SVTK_RenderWindowInteractor.cxx @@ -54,17 +54,8 @@ #include -#include "utilities.h" - using namespace std; -#ifdef _DEBUG_ -static int MYDEBUG = 0; -#else -static int MYDEBUG = 0; -#endif - - SVTK_RenderWindowInteractor* SVTK_RenderWindowInteractor ::New() @@ -113,8 +104,6 @@ SVTK_RenderWindowInteractor SVTK_RenderWindowInteractor ::~SVTK_RenderWindowInteractor() { - if(MYDEBUG) INFOS("SVTK_RenderWindowInteractor::~SVTK_RenderWindowInteractor()"); - delete mTimer ; myViewWindow->RemoveActor(myCellActor); diff --git a/src/SVTK/SVTK_Selector.cxx b/src/SVTK/SVTK_Selector.cxx index f330cfed4..625593eca 100644 --- a/src/SVTK/SVTK_Selector.cxx +++ b/src/SVTK/SVTK_Selector.cxx @@ -36,7 +36,6 @@ #include "SVTK_ViewWindow.h" #include "SVTK_SelectorDef.h" -#include "utilities.h" SVTK_SelectorDef ::SVTK_SelectorDef() diff --git a/src/SVTK/SVTK_ViewModel.cxx b/src/SVTK/SVTK_ViewModel.cxx index 624db780d..52afb907f 100644 --- a/src/SVTK/SVTK_ViewModel.cxx +++ b/src/SVTK/SVTK_ViewModel.cxx @@ -1,438 +1,459 @@ -#include -#include - -#include -#include -#include - -#include "SUIT_Session.h" - -#include "SVTK_Selection.h" -#include "SVTK_ViewModel.h" -#include "SVTK_ViewWindow.h" -#include "SVTK_Prs.h" - -#include "SVTK_RenderWindowInteractor.h" -#include "SVTK_RenderWindow.h" - -#include "ToolsGUI.h" - -#include "SALOME_Actor.h" -#include "SALOME_InteractiveObject.hxx" - -#include "Utils_ORB_INIT.hxx" -#include "Utils_SINGLETON.hxx" -#include "SALOME_ModuleCatalog_impl.hxx" -#include "SALOME_NamingService.hxx" - -#include "SALOMEDSClient.hxx" -#include "SALOMEDS_StudyManager.hxx" - -// in order NOT TO link with SalomeApp, here the code returns SALOMEDS_Study. -// SalomeApp_Study::studyDS() does it as well, but -- here it is retrieved from -// SALOMEDS::StudyManager - no linkage with SalomeApp. - -static _PTR(Study) getStudyDS() -{ - SALOMEDSClient_Study* aStudy = NULL; - _PTR(StudyManager) aMgr( new SALOMEDS_StudyManager() ); - - // get id of SUIT_Study, if it's a SalomeApp_Study, it will return - // id of its underlying SALOMEDS::Study - SUIT_Application* app = SUIT_Session::session()->activeApplication(); - if ( !app ) return _PTR(Study)(aStudy); - SUIT_Study* stud = app->activeStudy(); - if ( !stud ) return _PTR(Study)(aStudy); - const int id = stud->id(); // virtual method, must return SALOMEDS_Study id - // get SALOMEDS_Study with this id from StudyMgr - return aMgr->GetStudyByID( id ); -} - -//========================================================== -SVTK_Viewer::SVTK_Viewer() -{ - myTrihedronSize = 100; -} - -//========================================================== -SVTK_Viewer::~SVTK_Viewer() -{ -} - -QColor SVTK_Viewer::backgroundColor() const -{ - return myBgColor; -} - -void SVTK_Viewer::setBackgroundColor( const QColor& c ) -{ - if ( c.isValid() ) - myBgColor = c; -} - -//========================================================== -SUIT_ViewWindow* SVTK_Viewer::createView( SUIT_Desktop* theDesktop ) -{ - SVTK_ViewWindow* vw = new SVTK_ViewWindow( theDesktop, this ); - vw->setBackgroundColor( backgroundColor() ); - vw->SetTrihedronSize( trihedronSize() ); - return vw; -} - -int SVTK_Viewer::trihedronSize() const -{ - return myTrihedronSize; -} - -void SVTK_Viewer::setTrihedronSize( const int sz ) -{ - myTrihedronSize = sz; - - SUIT_ViewManager* vm = getViewManager(); - if ( !vm ) - return; - - QPtrVector vec = vm->getViews(); - for ( int i = 0; i < vec.count(); i++ ) - { - SUIT_ViewWindow* win = vec.at( i ); - if ( !win || !win->inherits( "SVTK_ViewWindow" ) ) - continue; - - SVTK_ViewWindow* vw = (SVTK_ViewWindow*)win; - vw->SetTrihedronSize( sz ); - } -} - -//========================================================== -void SVTK_Viewer::setViewManager(SUIT_ViewManager* theViewManager) -{ - SUIT_ViewModel::setViewManager(theViewManager); - - if ( !theViewManager ) - return; - - connect(theViewManager, SIGNAL(mousePress(SUIT_ViewWindow*, QMouseEvent*)), - this, SLOT(onMousePress(SUIT_ViewWindow*, QMouseEvent*))); - - connect(theViewManager, SIGNAL(mouseMove(SUIT_ViewWindow*, QMouseEvent*)), - this, SLOT(onMouseMove(SUIT_ViewWindow*, QMouseEvent*))); - - connect(theViewManager, SIGNAL(mouseRelease(SUIT_ViewWindow*, QMouseEvent*)), - this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*))); -} - -//========================================================== -void SVTK_Viewer::contextMenuPopup( QPopupMenu* thePopup ) -{ - thePopup->insertItem( tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) ); - thePopup->insertItem( tr( "MEN_CHANGE_BACKGROUD" ), this, SLOT( onChangeBgColor() ) ); - - thePopup->insertSeparator(); - - SVTK_ViewWindow* aView = (SVTK_ViewWindow*)(myViewManager->getActiveView()); - if ( aView && !aView->getToolBar()->isVisible() ) - thePopup->insertItem( tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) ); -} - -//========================================================== -void SVTK_Viewer::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event) -{ - if(SVTK_ViewWindow* aVW = dynamic_cast(vw)){ - if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){ - switch(event->button()) { - case LeftButton: - aRWI->LeftButtonPressed(event) ; - break ; - case MidButton: - aRWI->MiddleButtonPressed(event) ; - break ; - case RightButton: - aRWI->RightButtonPressed(event) ; - break; - default: - break ; - } - } - } -} - -//========================================================== -void -SVTK_Viewer -::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event) -{ - if(SVTK_ViewWindow* aVW = dynamic_cast(vw)){ - if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){ - aRWI->MouseMove( event ); - } - } -} - -//========================================================== -void -SVTK_Viewer -::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event) -{ - if(SVTK_ViewWindow* aVW = dynamic_cast(vw)){ - if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){ - switch(event->button()) { - case LeftButton: - aRWI->LeftButtonReleased(event) ; - break ; - case MidButton: - aRWI->MiddleButtonReleased(event) ; - break ; - case RightButton: - aRWI->RightButtonReleased(event) ; - break; - default: - break ; - } - } - } -} - -//========================================================== -void -SVTK_Viewer -::enableSelection(bool isEnabled) -{ - mySelectionEnabled = isEnabled; - //!! To be done for view windows -} - -//========================================================== -void -SVTK_Viewer -::enableMultiselection(bool isEnable) -{ - myMultiSelectionEnabled = isEnable; - //!! To be done for view windows -} - -void SVTK_Viewer::onDumpView() -{ - SVTK_ViewWindow* aView = (SVTK_ViewWindow*)(myViewManager->getActiveView()); - if ( aView ) - aView->onDumpView(); -} - -//========================================================== -void SVTK_Viewer::onChangeBgColor() -{ - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)){ - QColor aColor = QColorDialog::getColor( aView->backgroundColor(), aView); - if ( aColor.isValid() ) - aView->setBackgroundColor(aColor); - } -} - -//========================================================== -void -SVTK_Viewer -::onShowToolbar() -{ - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) - aView->getToolBar()->show(); -} - -//========================================================== -void -SVTK_Viewer -::Display( const SALOME_VTKPrs* prs ) -{ - // try do downcast object - if(const SVTK_Prs* aPrs = dynamic_cast( prs )){ - if(aPrs->IsNull()) - return; - if(vtkActorCollection* anActorCollection = aPrs->GetObjects()){ - // get SALOMEDS Study - _PTR(Study) aStudy(getStudyDS()); - anActorCollection->InitTraversal(); - while(vtkActor* anActor = anActorCollection->GetNextActor()){ - if(SALOME_Actor* anAct = SALOME_Actor::SafeDownCast(anActor)){ - // Set visibility flag - Handle(SALOME_InteractiveObject) anObj = anAct->getIO(); - if(!anObj.IsNull() && anObj->hasEntry() && aStudy){ - ToolsGUI::SetVisibility(aStudy,anObj->getEntry(),true,this); - } - // just display the object - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){ - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)){ - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)){ - if(SVTK_RenderWindowInteractor* aRWI = aView->getRWInteractor()){ - aRWI->Display(anAct,false); - if(anAct->IsSetCamera()){ - vtkRenderer* aRenderer = aView->getRenderer(); - anAct->SetCamera( aRenderer->GetActiveCamera() ); - } - } - } - } - } - } - } - } - } -} - -//========================================================== -void -SVTK_Viewer -::Erase( const SALOME_VTKPrs* prs, const bool forced ) -{ - // try do downcast object - if(const SVTK_Prs* aPrs = dynamic_cast( prs )){ - if(aPrs->IsNull()) - return; - if(vtkActorCollection* anActorCollection = aPrs->GetObjects()){ - // get SALOMEDS Study - _PTR(Study) aStudy(getStudyDS()); - anActorCollection->InitTraversal(); - while(vtkActor* anActor = anActorCollection->GetNextActor()) - if(SALOME_Actor* anAct = SALOME_Actor::SafeDownCast(anActor)){ - // Set visibility flag - Handle(SALOME_InteractiveObject) anObj = anAct->getIO(); - if(!anObj.IsNull() && anObj->hasEntry() && aStudy){ - ToolsGUI::SetVisibility(aStudy,anObj->getEntry(),false,this); - } - // just display the object - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){ - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) - if(SVTK_RenderWindowInteractor* aRWI = aView->getRWInteractor()) - if ( forced ) - aRWI->Remove(anAct,false); - else - aRWI->Erase(anAct,forced); - } - } - } - } -} - -//========================================================== -void -SVTK_Viewer -::EraseAll( const bool forced ) -{ - _PTR(Study) aStudy(getStudyDS()); - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){ - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)){ - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)){ - vtkRenderer* aRenderer = aView->getRenderer(); - vtkActorCollection* anActorCollection = aRenderer->GetActors(); - anActorCollection->InitTraversal(); - while(vtkActor* anActor = anActorCollection->GetNextActor()){ - if(SALOME_Actor* anAct = SALOME_Actor::SafeDownCast(anActor)){ - // Set visibility flag - Handle(SALOME_InteractiveObject) anObj = anAct->getIO(); - if(!anObj.IsNull() && anObj->hasEntry() && aStudy) - ToolsGUI::SetVisibility(aStudy,anObj->getEntry(),false,this); - if(forced) - aRenderer->RemoveActor(anAct); - else{ - // just erase actor - anAct->SetVisibility( false ); - // erase dependent actors - vtkActorCollection* aCollection = vtkActorCollection::New(); - anAct->GetChildActors( aCollection ); - aCollection->InitTraversal(); - while(vtkActor* aSubAct = aCollection->GetNextActor()) - aSubAct->SetVisibility( false ); - aCollection->Delete(); - } - } - } - } - } - } - Repaint(); -} - -//========================================================== -SALOME_Prs* -SVTK_Viewer -::CreatePrs( const char* entry ) -{ - SVTK_Prs* prs = new SVTK_Prs(); - if ( entry ) { - vtkRenderer* rnr = ( (SVTK_ViewWindow*) getViewManager()->getActiveView() )->getRenderer(); - vtkActorCollection* theActors = rnr->GetActors(); - theActors->InitTraversal(); - vtkActor* ac; - while( ( ac = theActors->GetNextActor() ) ) { - SALOME_Actor* anActor = SALOME_Actor::SafeDownCast( ac ); - if ( anActor && anActor->hasIO() && !strcmp( anActor->getIO()->getEntry(), entry ) ) { - prs->AddObject( ac ); - } - } - } - return prs; -} - -//========================================================== -void -SVTK_Viewer -::BeforeDisplay( SALOME_Displayer* d ) -{ - d->BeforeDisplay( this, SALOME_VTKViewType() ); -} - -//========================================================== -void -SVTK_Viewer::AfterDisplay( SALOME_Displayer* d ) -{ - d->AfterDisplay( this, SALOME_VTKViewType() ); -} - -//========================================================== -bool -SVTK_Viewer -::isVisible( const Handle(SALOME_InteractiveObject)& io ) -{ - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) - if(SVTK_RenderWindowInteractor* aRWI = aView->getRWInteractor()) - if(!aRWI->isVisible( io )) - return false; - return true; -} - -//========================================================== -void -SVTK_Viewer -::Repaint() -{ -// if (theUpdateTrihedron) onAdjustTrihedron(); - QPtrVector aViews = myViewManager->getViews(); - for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) - if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) - if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) - if(SVTK_RenderWindow* aRW = aView->getRenderWindow()) - { - aView->getRenderer()->Render(); - aView->getRWInteractor()->unHighlightAll(); - aRW->update(); - } -} - -void -SVTK_Viewer -::onSelectionChanged() -{ - emit selectionChanged(); -} - +#include +#include + +#include +#include +#include + +#include "SUIT_Session.h" + +#include "SVTK_Selection.h" +#include "SVTK_ViewModel.h" +#include "SVTK_ViewWindow.h" +#include "SVTK_Prs.h" + +#include "VTKViewer_ViewModel.h" + +#include "SVTK_RenderWindowInteractor.h" +#include "SVTK_RenderWindow.h" + +//#include + +#include +#include + +// Temporarily commented to avoid awful dependecy on SALOMEDS +// TODO: better mechanism of storing display/erse status in a study +// should be provided... +//#include "Utils_ORB_INIT.hxx" +//#include "Utils_SINGLETON.hxx" +//#include "SALOME_ModuleCatalog_impl.hxx" +//#include "SALOME_NamingService.hxx" + +//#include "SALOMEDSClient.hxx" +//#include "SALOMEDS_StudyManager.hxx" + +// in order NOT TO link with SalomeApp, here the code returns SALOMEDS_Study. +// SalomeApp_Study::studyDS() does it as well, but -- here it is retrieved from +// SALOMEDS::StudyManager - no linkage with SalomeApp. + +// Temporarily commented to avoid awful dependecy on SALOMEDS +// TODO: better mechanism of storing display/erse status in a study +// should be provided... +//static _PTR(Study) getStudyDS() +//{ +// SALOMEDSClient_Study* aStudy = NULL; +// _PTR(StudyManager) aMgr( new SALOMEDS_StudyManager() ); + // get id of SUIT_Study, if it's a SalomeApp_Study, it will return + // id of its underlying SALOMEDS::Study +// SUIT_Application* app = SUIT_Session::session()->activeApplication(); +// if ( !app ) return _PTR(Study)(aStudy); +// SUIT_Study* stud = app->activeStudy(); +// if ( !stud ) return _PTR(Study)(aStudy); +// const int id = stud->id(); // virtual method, must return SALOMEDS_Study id + // get SALOMEDS_Study with this id from StudyMgr +// return aMgr->GetStudyByID( id ); +//} + +//========================================================== +SVTK_Viewer::SVTK_Viewer() +{ + myTrihedronSize = 100; +} + +//========================================================== +SVTK_Viewer::~SVTK_Viewer() +{ +} + +QColor SVTK_Viewer::backgroundColor() const +{ + return myBgColor; +} + +void SVTK_Viewer::setBackgroundColor( const QColor& c ) +{ + if ( c.isValid() ) + myBgColor = c; +} + +//========================================================== +SUIT_ViewWindow* SVTK_Viewer::createView( SUIT_Desktop* theDesktop ) +{ + SVTK_ViewWindow* vw = new SVTK_ViewWindow( theDesktop, this ); + vw->setBackgroundColor( backgroundColor() ); + vw->SetTrihedronSize( trihedronSize() ); + return vw; +} + +int SVTK_Viewer::trihedronSize() const +{ + return myTrihedronSize; +} + +void SVTK_Viewer::setTrihedronSize( const int sz ) +{ + myTrihedronSize = sz; + + SUIT_ViewManager* vm = getViewManager(); + if ( !vm ) + return; + + QPtrVector vec = vm->getViews(); + for ( int i = 0; i < vec.count(); i++ ) + { + SUIT_ViewWindow* win = vec.at( i ); + if ( !win || !win->inherits( "SVTK_ViewWindow" ) ) + continue; + + SVTK_ViewWindow* vw = (SVTK_ViewWindow*)win; + vw->SetTrihedronSize( sz ); + } +} + +//========================================================== +void SVTK_Viewer::setViewManager(SUIT_ViewManager* theViewManager) +{ + SUIT_ViewModel::setViewManager(theViewManager); + + if ( !theViewManager ) + return; + + connect(theViewManager, SIGNAL(mousePress(SUIT_ViewWindow*, QMouseEvent*)), + this, SLOT(onMousePress(SUIT_ViewWindow*, QMouseEvent*))); + + connect(theViewManager, SIGNAL(mouseMove(SUIT_ViewWindow*, QMouseEvent*)), + this, SLOT(onMouseMove(SUIT_ViewWindow*, QMouseEvent*))); + + connect(theViewManager, SIGNAL(mouseRelease(SUIT_ViewWindow*, QMouseEvent*)), + this, SLOT(onMouseRelease(SUIT_ViewWindow*, QMouseEvent*))); +} + +//========================================================== +void SVTK_Viewer::contextMenuPopup( QPopupMenu* thePopup ) +{ + thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_DUMP_VIEW" ), this, SLOT( onDumpView() ) ); + thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_CHANGE_BACKGROUD" ), this, SLOT( onChangeBgColor() ) ); + + thePopup->insertSeparator(); + + SVTK_ViewWindow* aView = (SVTK_ViewWindow*)(myViewManager->getActiveView()); + if ( aView && !aView->getToolBar()->isVisible() ) + thePopup->insertItem( VTKViewer_Viewer::tr( "MEN_SHOW_TOOLBAR" ), this, SLOT( onShowToolbar() ) ); +} + +//========================================================== +void SVTK_Viewer::onMousePress(SUIT_ViewWindow* vw, QMouseEvent* event) +{ + if(SVTK_ViewWindow* aVW = dynamic_cast(vw)){ + if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){ + switch(event->button()) { + case LeftButton: + aRWI->LeftButtonPressed(event) ; + break ; + case MidButton: + aRWI->MiddleButtonPressed(event) ; + break ; + case RightButton: + aRWI->RightButtonPressed(event) ; + break; + default: + break ; + } + } + } +} + +//========================================================== +void +SVTK_Viewer +::onMouseMove(SUIT_ViewWindow* vw, QMouseEvent* event) +{ + if(SVTK_ViewWindow* aVW = dynamic_cast(vw)){ + if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){ + aRWI->MouseMove( event ); + } + } +} + +//========================================================== +void +SVTK_Viewer +::onMouseRelease(SUIT_ViewWindow* vw, QMouseEvent* event) +{ + if(SVTK_ViewWindow* aVW = dynamic_cast(vw)){ + if(SVTK_RenderWindowInteractor* aRWI = aVW->getRWInteractor()){ + switch(event->button()) { + case LeftButton: + aRWI->LeftButtonReleased(event) ; + break ; + case MidButton: + aRWI->MiddleButtonReleased(event) ; + break ; + case RightButton: + aRWI->RightButtonReleased(event) ; + break; + default: + break ; + } + } + } +} + +//========================================================== +void +SVTK_Viewer +::enableSelection(bool isEnabled) +{ + mySelectionEnabled = isEnabled; + //!! To be done for view windows +} + +//========================================================== +void +SVTK_Viewer +::enableMultiselection(bool isEnable) +{ + myMultiSelectionEnabled = isEnable; + //!! To be done for view windows +} + +void SVTK_Viewer::onDumpView() +{ + SVTK_ViewWindow* aView = (SVTK_ViewWindow*)(myViewManager->getActiveView()); + if ( aView ) + aView->onDumpView(); +} + +//========================================================== +void SVTK_Viewer::onChangeBgColor() +{ + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)){ + QColor aColor = QColorDialog::getColor( aView->backgroundColor(), aView); + if ( aColor.isValid() ) + aView->setBackgroundColor(aColor); + } +} + +//========================================================== +void +SVTK_Viewer +::onShowToolbar() +{ + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) + aView->getToolBar()->show(); +} + +//========================================================== +void +SVTK_Viewer +::Display( const SALOME_VTKPrs* prs ) +{ + // try do downcast object + if(const SVTK_Prs* aPrs = dynamic_cast( prs )){ + if(aPrs->IsNull()) + return; + if(vtkActorCollection* anActorCollection = aPrs->GetObjects()){ + // get SALOMEDS Study + // Temporarily commented to avoid awful dependecy on SALOMEDS + // TODO: better mechanism of storing display/erse status in a study + // should be provided... + // _PTR(Study) aStudy(getStudyDS()); + anActorCollection->InitTraversal(); + while(vtkActor* anActor = anActorCollection->GetNextActor()){ + if(SALOME_Actor* anAct = SALOME_Actor::SafeDownCast(anActor)){ + // Set visibility flag + // Temporarily commented to avoid awful dependecy on SALOMEDS + // TODO: better mechanism of storing display/erse status in a study + // should be provided... + //Handle(SALOME_InteractiveObject) anObj = anAct->getIO(); + //if(!anObj.IsNull() && anObj->hasEntry() && aStudy){ + // ToolsGUI::SetVisibility(aStudy,anObj->getEntry(),true,this); + //} + // just display the object + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){ + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)){ + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)){ + if(SVTK_RenderWindowInteractor* aRWI = aView->getRWInteractor()){ + aRWI->Display(anAct,false); + if(anAct->IsSetCamera()){ + vtkRenderer* aRenderer = aView->getRenderer(); + anAct->SetCamera( aRenderer->GetActiveCamera() ); + } + } + } + } + } + } + } + } + } +} + +//========================================================== +void +SVTK_Viewer +::Erase( const SALOME_VTKPrs* prs, const bool forced ) +{ + // try do downcast object + if(const SVTK_Prs* aPrs = dynamic_cast( prs )){ + if(aPrs->IsNull()) + return; + if(vtkActorCollection* anActorCollection = aPrs->GetObjects()){ + // get SALOMEDS Study + // Temporarily commented to avoid awful dependecy on SALOMEDS + // TODO: better mechanism of storing display/erse status in a study + // should be provided... + //_PTR(Study) aStudy(getStudyDS()); + anActorCollection->InitTraversal(); + while(vtkActor* anActor = anActorCollection->GetNextActor()) + if(SALOME_Actor* anAct = SALOME_Actor::SafeDownCast(anActor)){ + // Set visibility flag + // Temporarily commented to avoid awful dependecy on SALOMEDS + // TODO: better mechanism of storing display/erse status in a study + // should be provided... + //Handle(SALOME_InteractiveObject) anObj = anAct->getIO(); + //if(!anObj.IsNull() && anObj->hasEntry() && aStudy){ + // ToolsGUI::SetVisibility(aStudy,anObj->getEntry(),false,this); + //} + // just display the object + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){ + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) + if(SVTK_RenderWindowInteractor* aRWI = aView->getRWInteractor()) + if ( forced ) + aRWI->Remove(anAct,false); + else + aRWI->Erase(anAct,forced); + } + } + } + } +} + +//========================================================== +void +SVTK_Viewer +::EraseAll( const bool forced ) +{ + // Temporarily commented to avoid awful dependecy on SALOMEDS + // TODO: better mechanism of storing display/erse status in a study + // should be provided... + //_PTR(Study) aStudy(getStudyDS()); + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++){ + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)){ + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)){ + vtkRenderer* aRenderer = aView->getRenderer(); + vtkActorCollection* anActorCollection = aRenderer->GetActors(); + anActorCollection->InitTraversal(); + while(vtkActor* anActor = anActorCollection->GetNextActor()){ + if(SALOME_Actor* anAct = SALOME_Actor::SafeDownCast(anActor)){ + // Set visibility flag + // Temporarily commented to avoid awful dependecy on SALOMEDS + // TODO: better mechanism of storing display/erse status in a study + // should be provided... + //Handle(SALOME_InteractiveObject) anObj = anAct->getIO(); + //if(!anObj.IsNull() && anObj->hasEntry() && aStudy) + // ToolsGUI::SetVisibility(aStudy,anObj->getEntry(),false,this); + if(forced) + aRenderer->RemoveActor(anAct); + else{ + // just erase actor + anAct->SetVisibility( false ); + // erase dependent actors + vtkActorCollection* aCollection = vtkActorCollection::New(); + anAct->GetChildActors( aCollection ); + aCollection->InitTraversal(); + while(vtkActor* aSubAct = aCollection->GetNextActor()) + aSubAct->SetVisibility( false ); + aCollection->Delete(); + } + } + } + } + } + } + Repaint(); +} + +//========================================================== +SALOME_Prs* +SVTK_Viewer +::CreatePrs( const char* entry ) +{ + SVTK_Prs* prs = new SVTK_Prs(); + if ( entry ) { + vtkRenderer* rnr = ( (SVTK_ViewWindow*) getViewManager()->getActiveView() )->getRenderer(); + vtkActorCollection* theActors = rnr->GetActors(); + theActors->InitTraversal(); + vtkActor* ac; + while( ( ac = theActors->GetNextActor() ) ) { + SALOME_Actor* anActor = SALOME_Actor::SafeDownCast( ac ); + if ( anActor && anActor->hasIO() && !strcmp( anActor->getIO()->getEntry(), entry ) ) { + prs->AddObject( ac ); + } + } + } + return prs; +} + +//========================================================== +void +SVTK_Viewer +::BeforeDisplay( SALOME_Displayer* d ) +{ + d->BeforeDisplay( this, SALOME_VTKViewType() ); +} + +//========================================================== +void +SVTK_Viewer::AfterDisplay( SALOME_Displayer* d ) +{ + d->AfterDisplay( this, SALOME_VTKViewType() ); +} + +//========================================================== +bool +SVTK_Viewer +::isVisible( const Handle(SALOME_InteractiveObject)& io ) +{ + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) + if(SVTK_RenderWindowInteractor* aRWI = aView->getRWInteractor()) + if(!aRWI->isVisible( io )) + return false; + return true; +} + +//========================================================== +void +SVTK_Viewer +::Repaint() +{ +// if (theUpdateTrihedron) onAdjustTrihedron(); + QPtrVector aViews = myViewManager->getViews(); + for(int i = 0, iEnd = aViews.size(); i < iEnd; i++) + if(SUIT_ViewWindow* aViewWindow = aViews.at(i)) + if(SVTK_ViewWindow* aView = dynamic_cast(aViewWindow)) + if(SVTK_RenderWindow* aRW = aView->getRenderWindow()) + aRW->update(); +} + +void +SVTK_Viewer +::onSelectionChanged() +{ + emit selectionChanged(); +} + diff --git a/src/VTKViewer/VTKViewer_InteractorStyle.cxx b/src/VTKViewer/VTKViewer_InteractorStyle.cxx index 18a496089..fa407641d 100644 --- a/src/VTKViewer/VTKViewer_InteractorStyle.cxx +++ b/src/VTKViewer/VTKViewer_InteractorStyle.cxx @@ -64,12 +64,6 @@ using namespace std; -#ifdef _DEBUG_ -static int MYDEBUG = 0; -#else -static int MYDEBUG = 0; -#endif - /* static int GetEdgeId(vtkPicker *thePicker, SALOME_Actor *theActor, int theObjId){ int anEdgeId = -1; @@ -117,7 +111,6 @@ VTKViewer_InteractorStyle::VTKViewer_InteractorStyle() /*!Destructor.*/ VTKViewer_InteractorStyle::~VTKViewer_InteractorStyle() { -// if(MYDEBUG) INFOS("VTKViewer_InteractorStyle::~VTKViewer_InteractorStyle()"); m_ViewWnd->RemoveActor(myPreSelectionActor); } @@ -899,7 +892,6 @@ void VTKViewer_InteractorStyle::onFinishOperation() Handle(SALOME_InteractiveObject) IO = SActor->getIO(); if(aSelectionMode != EdgeOfCellSelection) { if(CheckDimensionId(aSelectionMode,SActor,anObjId)){ - if(MYDEBUG) INFOS(" CellId : "<AddOrRemoveIndex( IO, anObjId, myShiftState, false ); @@ -919,7 +911,6 @@ void VTKViewer_InteractorStyle::onFinishOperation() } int anEdgeId = GetEdgeId(picker,SActor,anObjId); if (anEdgeId >= 0) { - if(MYDEBUG) INFOS(" CellId : "<AddOrRemoveIndex( IO, anObjId, true, false); aSel->AddOrRemoveIndex( IO, -anEdgeId-1, true, true ); aSel->AddIObject( IO, false ); @@ -945,7 +936,6 @@ void VTKViewer_InteractorStyle::onFinishOperation() this->HighlightProp( NULL ); aSel->ClearIObjects(); } - if(MYDEBUG) INFOS(" PointId : "<AddOrRemoveIndex( IO, anObjId, myShiftState, false ); aSel->AddIObject( IO, false ); } @@ -1076,7 +1066,6 @@ void VTKViewer_InteractorStyle::onFinishOperation() continue; VTKViewer_CellDataSet cellList = picker->GetCellData(aActor); if ( !cellList.empty() ) { - if(MYDEBUG) INFOS ( " NAME Actor : " << aSActor->getName() ); SALOME_Selection::TContainerOfId anIndexes; VTKViewer_CellDataSet::iterator it; for ( it = cellList.begin(); it != cellList.end(); ++it ) { @@ -1260,7 +1249,6 @@ void VTKViewer_InteractorStyle::onCursorMove(QPoint mousePos) { if(aResult){ mySelectedActor = SActor; myElemId = anObjId; - if(MYDEBUG) INFOS(" CellId : "<setCellData(anObjId,SActor,myPreSelectionActor); } } @@ -1275,7 +1263,6 @@ void VTKViewer_InteractorStyle::onCursorMove(QPoint mousePos) { mySelectedActor = SActor; myEdgeId = anEdgeId; myElemId = anObjId; - if(MYDEBUG) INFOS(" CellId : "<setEdgeData(anObjId,SActor,-anEdgeId-1,myPreSelectionActor); } } @@ -1296,7 +1283,6 @@ void VTKViewer_InteractorStyle::onCursorMove(QPoint mousePos) { if(!anIsSameObjId) { mySelectedActor = SActor; myNodeId = anObjId; - if(MYDEBUG) INFOS(" PointId : "<setPointData(anObjId,SActor,myPreSelectionActor); } myPreSelectionActor->GetProperty()->SetRepresentationToSurface(); @@ -1328,7 +1314,6 @@ void VTKViewer_InteractorStyle::onCursorMove(QPoint mousePos) { } } } - //if(MYDEBUG) INFOS ( " NAME PREVIEW " << SActor->getName() ); } } } diff --git a/src/VTKViewer/VTKViewer_ShrinkFilter.cxx b/src/VTKViewer/VTKViewer_ShrinkFilter.cxx index f980b5c0d..c65699a9a 100755 --- a/src/VTKViewer/VTKViewer_ShrinkFilter.cxx +++ b/src/VTKViewer/VTKViewer_ShrinkFilter.cxx @@ -35,14 +35,6 @@ #include #include -#ifdef _DEBUG_ -static int MYDEBUG = 0; -static int MYDEBUGWITHFILES = 0; -#else -static int MYDEBUG = 0; -static int MYDEBUGWITHFILES = 0; -#endif - vtkCxxRevisionMacro(VTKViewer_ShrinkFilter, "$Revision$"); vtkStandardNewMacro(VTKViewer_ShrinkFilter); -- 2.39.2