X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_TranslateObstacleOp.cxx;h=11104c0b00f5c19e18dfa7771336e836c674b700;hb=a53349567d67f4df0ef737798a25c24d9dc8f08e;hp=952fe9fbdd908b91618c97751ae2687800e335b9;hpb=ee283f399858a3297d4629a968ecad8a6c0e6bb0;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_TranslateObstacleOp.cxx b/src/HYDROGUI/HYDROGUI_TranslateObstacleOp.cxx index 952fe9fb..11104c0b 100644 --- a/src/HYDROGUI/HYDROGUI_TranslateObstacleOp.cxx +++ b/src/HYDROGUI/HYDROGUI_TranslateObstacleOp.cxx @@ -1,12 +1,8 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -// -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// Copyright (C) 2014-2015 EDF-R&D // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -63,14 +59,12 @@ void HYDROGUI_TranslateObstacleOp::startOperation() aPanel->reset(); // Get the edited object - myEditedObject = Handle(HYDROData_Obstacle)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); + if ( isApplyAndClose() ) + myEditedObject = Handle(HYDROData_Obstacle)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) ); if ( myEditedObject.IsNull() ) { abort(); return; } - else if ( myEditedObject->IsMustBeUpdated() ) { - myEditedObject->Update(); - } // Set the edited object name to the panel aPanel->setName( myEditedObject->GetName() ); @@ -104,7 +98,8 @@ HYDROGUI_InputPanel* HYDROGUI_TranslateObstacleOp::createInputPanel() const } bool HYDROGUI_TranslateObstacleOp::processApply( int& theUpdateFlags, - QString& theErrorMsg ) + QString& theErrorMsg, + QStringList& theBrowseObjectsEntries ) { HYDROGUI_TranslateObstacleDlg* aPanel = ::qobject_cast( inputPanel() ); if ( !aPanel || myEditedObject.IsNull() ) { @@ -140,14 +135,16 @@ void HYDROGUI_TranslateObstacleOp::createPreview() // Create preview presentation if necessary if ( !myPreviewPrs ) { LightApp_Application* anApp = module()->getApp(); - OCCViewer_ViewManager* aViewManager = ::qobject_cast( - anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ); - + + if ( !getPreviewManager() ) + setPreviewManager( ::qobject_cast( + anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ) ); + OCCViewer_ViewManager* aViewManager = getPreviewManager(); if ( aViewManager ) { if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() ) { Handle(AIS_InteractiveContext) aCtx = aViewer->getAISContext(); if ( !aCtx.IsNull() ) { - myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL ); + myPreviewPrs = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() ); myPreviewPrs->setFillingColor( myEditedObject->GetFillingColor(), false, false ); myPreviewPrs->setBorderColor( myEditedObject->GetBorderColor(), false, false ); } @@ -182,25 +179,3 @@ void HYDROGUI_TranslateObstacleOp::onArgumentsChanged() createPreview(); } -TopoDS_Shape HYDROGUI_TranslateObstacleOp::getTranslatedShape() const -{ - TopoDS_Shape aTranslatedShape; - - HYDROGUI_TranslateObstacleDlg* aPanel = (HYDROGUI_TranslateObstacleDlg*)inputPanel(); - if ( aPanel && !myEditedObject.IsNull() ) { - double aDx = aPanel->getDx(); - double aDy = aPanel->getDy(); - double aDz = aPanel->getDz(); - - TopoDS_Shape aShape = myEditedObject->GetShape3D(); - gp_Trsf aTrsf; - gp_Vec aVec( aDx, aDy, aDz ); - aTrsf.SetTranslation(aVec); - TopLoc_Location aLocOrig = aShape.Location(); - gp_Trsf aTrsfOrig = aLocOrig.Transformation(); - TopLoc_Location aLocRes( aTrsf * aTrsfOrig ); - aTranslatedShape = aShape.Located( aLocRes ); - } - - return aTranslatedShape; -} \ No newline at end of file