X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_VTKUtils.cxx;h=bcc289cc0763792680d075b5819b539c9d7af37d;hp=1bd966e379715c7a5661d8c764816e1c6d76be0b;hb=dcfc66bbfa976f8fa007dfdadd13a72b5e438cd4;hpb=ae29d465091933df101dfac6ae99d3becf4efde7 diff --git a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx index 1bd966e37..bcc289cc0 100644 --- a/src/SMESHGUI/SMESHGUI_VTKUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_VTKUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2015 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 @@ -6,7 +6,7 @@ // 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 @@ -28,16 +28,15 @@ #include "SMESHGUI_VTKUtils.h" #include "SMESHGUI.h" -#include "SMESHGUI_Utils.h" #include "SMESHGUI_Filter.h" +#include "SMESHGUI_Utils.h" +#include "SMDS_Mesh.hxx" +#include "SMESH_Actor.h" +#include "SMESH_ActorUtils.h" +#include "SMESH_CellLabelActor.h" #include "SMESH_ControlsDef.hxx" - -#include -#include #include "SMESH_NodeLabelActor.h" -#include "SMESH_CellLabelActor.h" -#include -#include +#include "SMESH_ObjectDef.h" // SALOME GUI includes #include @@ -47,7 +46,6 @@ #include #include -#include #include #include @@ -991,7 +989,7 @@ namespace SMESH if ( mgr->hasValue( "SMESH", "numbering_elem_font" ) ) { QFont f = mgr->fontValue( "SMESH", "numbering_elem_font" ); - if ( f.family() == "Arial" ) aFamilyEl = SMESH::FntArial; + if ( f.family() == "Arial" ) aFamilyEl = SMESH::FntArial; else if ( f.family() == "Courier" ) aFamilyEl = SMESH::FntCourier; else if ( f.family() == "Times" ) aFamilyEl = SMESH::FntTimes; aBoldEl = f.bold(); @@ -1005,23 +1003,23 @@ namespace SMESH foreach ( SUIT_ViewManager* vm, vmList ) { QVector views = vm->getViews(); foreach ( SUIT_ViewWindow* vw, views ) { - // update VTK viewer properties - if ( SVTK_ViewWindow* aVtkView = GetVtkViewWindow( vw ) ) { - // update actors - vtkRenderer* aRenderer = aVtkView->getRenderer(); - VTK::ActorCollectionCopy aCopy( aRenderer->GetActors() ); - vtkActorCollection* aCollection = aCopy.GetActors(); - aCollection->InitTraversal(); - while ( vtkActor* anAct = aCollection->GetNextActor() ) { - if ( SMESH_NodeLabelActor* anActor = dynamic_cast< SMESH_NodeLabelActor* >( anAct ) ) { - anActor->SetFontProperties( aFamilyNd, aSizeNd, aBoldNd, anItalicNd, aShadowNd, anRGBNd[0], anRGBNd[1], anRGBNd[2] ); - } - else if ( SMESH_CellLabelActor* anActor = dynamic_cast< SMESH_CellLabelActor* >( anAct ) ) { - anActor->SetFontProperties( aFamilyEl, aSizeEl, aBoldEl, anItalicEl, aShadowEl, anRGBEl[0], anRGBEl[1], anRGBEl[2] ); - } - } - aVtkView->Repaint( false ); - } + // update VTK viewer properties + if ( SVTK_ViewWindow* aVtkView = GetVtkViewWindow( vw ) ) { + // update actors + vtkRenderer* aRenderer = aVtkView->getRenderer(); + VTK::ActorCollectionCopy aCopy( aRenderer->GetActors() ); + vtkActorCollection* aCollection = aCopy.GetActors(); + aCollection->InitTraversal(); + while ( vtkActor* anAct = aCollection->GetNextActor() ) { + if ( SMESH_NodeLabelActor* anActor = dynamic_cast< SMESH_NodeLabelActor* >( anAct ) ) { + anActor->SetFontProperties( aFamilyNd, aSizeNd, aBoldNd, anItalicNd, aShadowNd, anRGBNd[0], anRGBNd[1], anRGBNd[2] ); + } + else if ( SMESH_CellLabelActor* anActor = dynamic_cast< SMESH_CellLabelActor* >( anAct ) ) { + anActor->SetFontProperties( aFamilyEl, aSizeEl, aBoldEl, anItalicEl, aShadowEl, anRGBEl[0], anRGBEl[1], anRGBEl[2] ); + } + } + aVtkView->Repaint( false ); + } } } } @@ -1396,6 +1394,20 @@ namespace SMESH double theDist, double theBounds[6], double theOrigin[3] ) + { + bool anIsOk = false; + anIsOk = ComputeBounds( theActorList, theBounds ); + + + if( !anIsOk ) + return false; + + DistanceToPosition( theBounds, theNormal, theDist, theOrigin ); + return true; + } + + bool ComputeBounds( std::list theActorList, + double theBounds[6]) { bool anIsOk = false; theBounds[0] = theBounds[2] = theBounds[4] = VTK_DOUBLE_MAX; @@ -1416,12 +1428,7 @@ namespace SMESH } } } - - if( !anIsOk ) - return false; - - DistanceToPosition( theBounds, theNormal, theDist, theOrigin ); - return true; + return anIsOk; } #ifndef DISABLE_PLOT2DVIEWER