X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_VTKUtils.h;h=1adcd5c5636a195b888da210d0c51069fb0238aa;hp=05d2e268bf1472e291b6a3ca7ce426f2f53a5b39;hb=61bac50f78623aabd9e4ddbcbba072c63ea02165;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070 diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.h b/src/SMESHGUI/SMESHGUI_VTKUtils.h index 05d2e268b..1adcd5c56 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.h +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.h @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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. +// 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, 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 -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SMESH SMESHGUI : GUI for SMESH component // File : SMESHGUI_VTKUtils.h // Author : Open CASCADE S.A.S. @@ -39,7 +40,8 @@ #include #include -class TColStd_IndexedMapOfInteger; +// OCCT includes +#include class SALOMEDSClient_Study; @@ -56,20 +58,21 @@ class SMESHGUI; class SMESH_Actor; class SALOME_Actor; +class vtkActor; + namespace SMESH { //---------------------------------------------------------------------------- - typedef std::pair TKeyOfVisualObj; SMESHGUI_EXPORT - TVisualObjPtr GetVisualObj( int, const char* ); + TVisualObjPtr GetVisualObj( const char*, bool nulData =false ); SMESHGUI_EXPORT void OnVisuException(); // PAL16631 //---------------------------------------------------------------------------- SMESHGUI_EXPORT SVTK_ViewWindow* GetViewWindow( const SalomeApp_Module* = 0, - bool = false ); + bool = false ); SMESHGUI_EXPORT SVTK_ViewWindow* FindVtkViewWindow( SUIT_ViewManager*, SUIT_ViewWindow* ); SMESHGUI_EXPORT @@ -99,27 +102,30 @@ SMESHGUI_EXPORT //---------------------------------------------------------------------------- SMESHGUI_EXPORT - SMESH_Actor* CreateActor( _PTR(Study), const char*, int = false ); + SMESH_Actor* CreateActor( const char*, int = false ); SMESHGUI_EXPORT void DisplayActor( SUIT_ViewWindow*, SMESH_Actor* ); SMESHGUI_EXPORT void RemoveActor( SUIT_ViewWindow*, SMESH_Actor* ); SMESHGUI_EXPORT - void RemoveVisuData( int ); + void RemoveVisuData(); //---------------------------------------------------------------------------- enum EDisplaing { eDisplayAll, eDisplay, eDisplayOnly, eErase, eEraseAll }; SMESHGUI_EXPORT bool UpdateView( SUIT_ViewWindow*, EDisplaing, const char* = "" ); -SMESHGUI_EXPORT +SMESHGUI_EXPORT bool UpdateView( EDisplaing, const char* = "" ); SMESHGUI_EXPORT - void UpdateView(); + void UpdateView( bool withChildrenOfSelected = false ); SMESHGUI_EXPORT - bool Update( const Handle(SALOME_InteractiveObject)&, bool ); + bool UpdateNulData( const Handle(SALOME_InteractiveObject)& theIO, bool theDisplay); + +SMESHGUI_EXPORT + bool Update( const Handle(SALOME_InteractiveObject)& theIO, bool theDisplay); //---------------------------------------------------------------------------- SMESHGUI_EXPORT @@ -131,6 +137,9 @@ SMESHGUI_EXPORT SMESHGUI_EXPORT void UpdateSelectionProp( SMESHGUI* ); +SMESHGUI_EXPORT + void UpdateFontProp( SMESHGUI* ); + //---------------------------------------------------------------------------- SMESHGUI_EXPORT SVTK_Selector* GetSelector( SUIT_ViewWindow* = GetActiveWindow() ); @@ -153,37 +162,70 @@ SMESHGUI_EXPORT //---------------------------------------------------------------------------- SMESHGUI_EXPORT int GetNameOfSelectedNodes( SVTK_Selector*, - const Handle(SALOME_InteractiveObject)&, - QString& ); + const Handle(SALOME_InteractiveObject)&, + QString& ); SMESHGUI_EXPORT int GetNameOfSelectedElements( SVTK_Selector*, - const Handle(SALOME_InteractiveObject)&, - QString& ); + const Handle(SALOME_InteractiveObject)&, + QString& ); SMESHGUI_EXPORT - int GetEdgeNodes( SVTK_Selector*, const TVisualObjPtr&, int&, int& ); + int GetEdgeNodes( SVTK_Selector*, const TVisualObjPtr&, ::smIdType&, ::smIdType& ); //---------------------------------------------------------------------------- SMESHGUI_EXPORT int GetNameOfSelectedNodes( LightApp_SelectionMgr*, - const Handle(SALOME_InteractiveObject)&, - QString& ); + const Handle(SALOME_InteractiveObject)&, + QString& ); SMESHGUI_EXPORT int GetNameOfSelectedNodes( LightApp_SelectionMgr*, QString& ); SMESHGUI_EXPORT int GetNameOfSelectedElements( LightApp_SelectionMgr*, - const Handle(SALOME_InteractiveObject)&, - QString& ); + const Handle(SALOME_InteractiveObject)&, + QString& ); SMESHGUI_EXPORT int GetNameOfSelectedElements( LightApp_SelectionMgr*, QString& ); SMESHGUI_EXPORT int GetSelected( LightApp_SelectionMgr*, TColStd_IndexedMapOfInteger&, - const bool = true ); + const bool = true ); SMESHGUI_EXPORT - int GetEdgeNodes( LightApp_SelectionMgr*, int&, int& ); + int GetEdgeNodes( LightApp_SelectionMgr*, ::smIdType&, ::smIdType& ); SMESHGUI_EXPORT void SetControlsPrecision( const long ); -}; + +#ifndef DISABLE_PLOT2DVIEWER +SMESHGUI_EXPORT + void ClearPlot2Viewers( SUIT_ViewWindow* theWindow ); +#endif + + //---------------------------------------------------------------------------- +SMESHGUI_EXPORT + bool ComputeClippingPlaneParameters( std::list theActorList, + double theNormal[3], + double theDist, + double theBounds[6], + double theOrigin[3] ); + + bool ComputeBounds( std::list theActorList, + double theBounds[6]); + + void PositionToDistance( double theBounds[6], + double theDirection[3], + double thePos[3], + double& theDist ); + SMESHGUI_EXPORT + void RemoveVisualObjectWithActors( const char* theEntry, bool fromAllViews = false ); + + SMESHGUI_EXPORT + void UpdateActorsAfterUpdateStudy( SUIT_ViewWindow* wnd ); + + SMESHGUI_EXPORT + void UpdateActorsAfterUpdateStudy(); + + SMESHGUI_EXPORT + bool NoSmeshActors(SUIT_ViewWindow *theWnd=nullptr); + +} #endif // SMESHGUI_VTKUTILS_H