From b11dda6c239f9bf58290753b16009cad31fe0e52 Mon Sep 17 00:00:00 2001 From: rnv Date: Thu, 25 Aug 2016 15:21:19 +0300 Subject: [PATCH] Fix for '0053430: 3D Sketch' issue. --- src/EntityGUI/EntityGUI_3DSketcherDlg.cxx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx b/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx index 47d1fd5d4..fd7b86889 100755 --- a/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx +++ b/src/EntityGUI/EntityGUI_3DSketcherDlg.cxx @@ -1388,19 +1388,26 @@ void EntityGUI_3DSketcherDlg::displayTrihedron (int selMode) { // Add trihedron to preview SUIT_ViewWindow* vw = SUIT_Session::session()->activeApplication()->desktop()->activeWindow(); - + + SOCC_Viewer* anOCCViewer = dynamic_cast( vw->getViewManager()->getViewModel() ); + if( !anOCCViewer ) + return; + + Handle(AIS_InteractiveContext) anAISContext = anOCCViewer->getAISContext(); + if( !anAISContext ) + return; + gp_Pnt P(getLastPoint().x,getLastPoint().y,getLastPoint().z); Handle(Geom_Axis2Placement) anAxis = new Geom_Axis2Placement(P,gp::DZ(),gp::DX()); Handle(AIS_Trihedron) anIO = new AIS_Trihedron(anAxis); - anIO->GetContext()->Activate(anIO, selMode); - SOCC_Prs* aSPrs = dynamic_cast - (((SOCC_Viewer*)(vw->getViewManager()->getViewModel()))->CreatePrs(0)); + SOCC_Prs* aSPrs = dynamic_cast( anOCCViewer->CreatePrs(0) ); if (aSPrs) { aSPrs->PrependObject(anIO); GEOMBase_Helper::displayPreview(aSPrs, true, true); } + anAISContext->Activate(anIO, selMode); } //================================================================ -- 2.39.2