From: vsr Date: Wed, 11 Sep 2013 16:01:42 +0000 (+0000) Subject: Remove obsolete code X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2FBR_new_bop4;p=modules%2Fgui.git Remove obsolete code Porting to latest OCCT master: fix crash on activating OCC viewer --- diff --git a/src/OCCViewer/OCCViewer_VService.cxx b/src/OCCViewer/OCCViewer_VService.cxx index 875c94e2c..32d4b3216 100755 --- a/src/OCCViewer/OCCViewer_VService.cxx +++ b/src/OCCViewer/OCCViewer_VService.cxx @@ -53,25 +53,27 @@ Handle(Aspect_Window) OCCViewer_VService::CreateWindow( const Handle(V3d_View)& /*! Creates viewer 3d [ static ] */ -Handle(V3d_Viewer) OCCViewer_VService::Viewer3d( const Standard_CString aDisplay, - const Standard_ExtString aName, - const Standard_CString aDomain, - const Standard_Real ViewSize , - const V3d_TypeOfOrientation ViewProj, - const Standard_Boolean ComputedMode, - const Standard_Boolean aDefaultComputedMode ) +Handle(V3d_Viewer) OCCViewer_VService::CreateViewer( const Standard_ExtString name, + const Standard_CString displayName, + const Standard_CString domain, + const Standard_Real viewSize , + const V3d_TypeOfOrientation viewProjection, + const Standard_Boolean computedMode, + const Standard_Boolean defaultComputedMode ) { static Handle(Graphic3d_GraphicDriver) aGraphicDriver; if (aGraphicDriver.IsNull()) { Handle(Aspect_DisplayConnection) aDisplayConnection; #ifndef WNT - aDisplayConnection = new Aspect_DisplayConnection( aDisplay ); + aDisplayConnection = new Aspect_DisplayConnection( displayName ); +#else + aDisplayConnection = new Aspect_DisplayConnection(); #endif aGraphicDriver = Graphic3d::InitGraphicDriver( aDisplayConnection ); } - return new V3d_Viewer( aGraphicDriver, aName, aDomain, ViewSize, ViewProj, + return new V3d_Viewer( aGraphicDriver, name, domain, viewSize, viewProjection, Quantity_NOC_GRAY30, V3d_ZBUFFER, V3d_GOURAUD, V3d_WAIT, - ComputedMode, aDefaultComputedMode, V3d_TEX_NONE ); + computedMode, defaultComputedMode, V3d_TEX_NONE ); } diff --git a/src/OCCViewer/OCCViewer_VService.h b/src/OCCViewer/OCCViewer_VService.h index e2784eb80..0655ca265 100755 --- a/src/OCCViewer/OCCViewer_VService.h +++ b/src/OCCViewer/OCCViewer_VService.h @@ -29,9 +29,7 @@ #include #include #include -//#include #include -//#include #include #include @@ -39,33 +37,16 @@ class Standard_EXPORT OCCViewer_VService { public: - // STATIC METHODS - static Handle(Aspect_Window) CreateWindow( const Handle(V3d_View)& view, WId id ); - /* - static void SetWindow( const Handle( V3d_View )& view, - const Standard_Integer hiwin, - const Standard_Integer lowin, - const Xw_WindowQuality quality = Xw_WQ_3DQUALITY ); + static Handle(Aspect_Window) CreateWindow( const Handle(V3d_View)&, WId ); - static void SetMagnify( const Handle( V3d_View)& view, - const Standard_Integer hiwin, - const Standard_Integer lowin, - const Handle( V3d_View)& aPreviousView, - const Standard_Integer x1, - const Standard_Integer y1, - const Standard_Integer x2, - const Standard_Integer y2, - const Xw_WindowQuality quality = Xw_WQ_3DQUALITY ); - */ - - static Handle(V3d_Viewer) Viewer3d( const Standard_CString display, - const Standard_ExtString name, - const Standard_CString domain = "", - const Quantity_Length ViewSize = 1000.0, - const V3d_TypeOfOrientation ViewProj = V3d_XposYnegZpos, - const Standard_Boolean ComputedMode = Standard_True, - const Standard_Boolean DefaultComputedMode = Standard_True ); + static Handle(V3d_Viewer) CreateViewer( const Standard_ExtString, + const Standard_CString = "", + const Standard_CString = "", + const Quantity_Length = 1000.0, + const V3d_TypeOfOrientation = V3d_XposYnegZpos, + const Standard_Boolean = Standard_True, + const Standard_Boolean = Standard_True ); }; #endif diff --git a/src/OCCViewer/OCCViewer_ViewModel.cxx b/src/OCCViewer/OCCViewer_ViewModel.cxx index b728482f1..2ed855b85 100755 --- a/src/OCCViewer/OCCViewer_ViewModel.cxx +++ b/src/OCCViewer/OCCViewer_ViewModel.cxx @@ -99,23 +99,20 @@ OCCViewer_Viewer::OCCViewer_Viewer( bool DisplayTrihedron) myTrihedronSize(100) { // init CasCade viewers - myV3dViewer = OCCViewer_VService::Viewer3d( "", (short*) "Viewer3d", "", 1000., - V3d_XposYnegZpos, true, true ); - + myV3dViewer = OCCViewer_VService::CreateViewer( TCollection_ExtendedString("Viewer3d").ToExtString() ); myV3dViewer->Init(); - - myV3dCollector = OCCViewer_VService::Viewer3d( "", (short*) "Collector3d", "", 1000., - V3d_XposYnegZpos, true, true ); + myV3dCollector = OCCViewer_VService::CreateViewer( TCollection_ExtendedString("Collector3d").ToExtString() ); myV3dCollector->Init(); // init selector - myAISContext = new AIS_InteractiveContext( myV3dViewer, myV3dCollector); + myAISContext = new AIS_InteractiveContext( myV3dViewer, myV3dCollector ); myAISContext->SelectionColor( Quantity_NOC_WHITE ); // display isoline on planar faces (box for ex.) myAISContext->IsoOnPlane( true ); + /* double h = QApplication::desktop()->screenGeometry( QApplication::desktop()->primaryScreen() ).height() / 300. ; Handle(Prs3d_Drawer) drawer = myAISContext->DefaultDrawer(); Handle(Prs3d_TextAspect) ta = drawer->TextAspect(); @@ -124,9 +121,10 @@ OCCViewer_Viewer::OCCViewer_Viewer( bool DisplayTrihedron) drawer->SetTextAspect(ta); drawer->AngleAspect()->SetTextAspect(ta); drawer->LengthAspect()->SetTextAspect(ta); + */ /* create trihedron */ - if( DisplayTrihedron ) + if ( DisplayTrihedron ) { Handle(Geom_Axis2Placement) anAxis = new Geom_Axis2Placement(gp::XOY()); myTrihedron = new AIS_Trihedron(anAxis); @@ -138,15 +136,12 @@ OCCViewer_Viewer::OCCViewer_Viewer( bool DisplayTrihedron) myTrihedron->SetSize(100); Handle(AIS_Drawer) drawer = myTrihedron->Attributes(); if (drawer->HasDatumAspect()) { - Handle(Prs3d_DatumAspect) daspect = drawer->DatumAspect(); - daspect->FirstAxisAspect()->SetColor(Quantity_Color(1.0, 0.0, 0.0, Quantity_TOC_RGB)); - daspect->SecondAxisAspect()->SetColor(Quantity_Color(0.0, 1.0, 0.0, Quantity_TOC_RGB)); - daspect->ThirdAxisAspect()->SetColor(Quantity_Color(0.0, 0.0, 1.0, Quantity_TOC_RGB)); - } - - myAISContext->Display(myTrihedron); - myAISContext->Deactivate(myTrihedron); + Handle(Prs3d_DatumAspect) daspect = drawer->DatumAspect(); + daspect->FirstAxisAspect()->SetColor(Quantity_Color(1.0, 0.0, 0.0, Quantity_TOC_RGB)); + daspect->SecondAxisAspect()->SetColor(Quantity_Color(0.0, 1.0, 0.0, Quantity_TOC_RGB)); + daspect->ThirdAxisAspect()->SetColor(Quantity_Color(0.0, 0.0, 1.0, Quantity_TOC_RGB)); } + } // set interaction style to standard myInteractionStyle = 0; @@ -250,6 +245,7 @@ SUIT_ViewWindow* OCCViewer_Viewer::createView( SUIT_Desktop* theDesktop ) vw->setBackground( background(0) ); // 0 means MAIN_VIEW (other views are not yet created here) // connect signal from viewport connect(view->getViewPort(), SIGNAL(vpClosed()), this, SLOT(onViewClosed())); + connect(view->getViewPort(), SIGNAL(vpMapped()), this, SLOT(onViewMapped())); return view; } @@ -408,6 +404,11 @@ void OCCViewer_Viewer::onViewClosed() } } +void OCCViewer_Viewer::onViewMapped() +{ + setTrihedronShown( true ); +} + int OCCViewer_Viewer::getTopLayerId() { #if OCC_VERSION_LARGE > 0x06050200 @@ -821,10 +822,13 @@ void OCCViewer_Viewer::setTrihedronShown( const bool on ) if ( myTrihedron.IsNull() ) return; - if ( on ) + if ( on ) { myAISContext->Display( myTrihedron ); - else + myAISContext->Deactivate(myTrihedron); + } + else { myAISContext->Erase( myTrihedron ); + } } /*! @@ -986,6 +990,9 @@ bool OCCViewer_Viewer::computeTrihedronSize( double& theNewSize, double& theSize * Update the size of the trihedron */ void OCCViewer_Viewer::updateTrihedron() { + if ( myTrihedron.IsNull() ) + return; + if(myIsRelative){ double newSz, oldSz; diff --git a/src/OCCViewer/OCCViewer_ViewModel.h b/src/OCCViewer/OCCViewer_ViewModel.h index 1ad1ddd4f..e6893e307 100755 --- a/src/OCCViewer/OCCViewer_ViewModel.h +++ b/src/OCCViewer/OCCViewer_ViewModel.h @@ -169,6 +169,7 @@ protected slots: virtual void onMouseRelease(SUIT_ViewWindow*, QMouseEvent*); virtual void onKeyPress(SUIT_ViewWindow*, QKeyEvent*); virtual void onViewClosed(); + virtual void onViewMapped(); void onDumpView(); void onChangeBackground(); diff --git a/src/OCCViewer/OCCViewer_ViewPort3d.cxx b/src/OCCViewer/OCCViewer_ViewPort3d.cxx index 5946a43ff..34cce7126 100755 --- a/src/OCCViewer/OCCViewer_ViewPort3d.cxx +++ b/src/OCCViewer/OCCViewer_ViewPort3d.cxx @@ -135,6 +135,9 @@ bool OCCViewer_ViewPort3d::mapView( const Handle(V3d_View)& view ) view->TriedronDisplay( Aspect_TOTP_LEFT_LOWER, Quantity_NOC_WHITE, 0.05, V3d_ZBUFFER ); } } + + emit( vpMapped() ); + return true; } diff --git a/src/OCCViewer/OCCViewer_ViewPort3d.h b/src/OCCViewer/OCCViewer_ViewPort3d.h index db1c513e4..e4f3cd724 100755 --- a/src/OCCViewer/OCCViewer_ViewPort3d.h +++ b/src/OCCViewer/OCCViewer_ViewPort3d.h @@ -95,6 +95,7 @@ public: signals: void vpChangeBackground( const Qtx::BackgroundData& ); void vpClosed(); + void vpMapped(); public slots: virtual bool synchronize( OCCViewer_ViewPort* );