X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FPluginUtils%2FGeomSelectionTools.cxx;h=0a9be930932a69e3e95ac543e7661c1813c439b0;hp=13a0befdcb6b58810fac866e65af168d922f595d;hb=ccb5e3c25bf204e839c0094f50f543eacedba5e6;hpb=bd8f1aee7c78f7d2eb82bd4fec5e08c9e3d280ce diff --git a/src/PluginUtils/GeomSelectionTools.cxx b/src/PluginUtils/GeomSelectionTools.cxx index 13a0befdc..0a9be9309 100644 --- a/src/PluginUtils/GeomSelectionTools.cxx +++ b/src/PluginUtils/GeomSelectionTools.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // 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,17 +28,15 @@ #include #include -#include -#include -#include -#include #include +#include #include +#include +#include -#include -#include -#include #include +#include +#include #include "utilities.h" @@ -96,7 +94,7 @@ LightApp_SelectionMgr* GeomSelectionTools::selectionMgr() */ SALOME_ListIO* GeomSelectionTools::getSelectedSalomeObjects() { - SALOME_ListIO* selected; + SALOME_ListIO* selected = new SALOME_ListIO; LightApp_SelectionMgr* aSel = selectionMgr(); aSel->selectedObjects( *selected, NULL, false ); return selected; @@ -237,6 +235,12 @@ TopAbs_ShapeEnum GeomSelectionTools::entryToShapeType(std::string entry){ // MESSAGE("GEOM client is OK and GEOM engine is not null"); S = aClient->GetShape( _geomEngine, aShape ); ShapeType=S.ShapeType(); + if ( ShapeType == TopAbs_COMPOUND ) + { + TopoDS_Iterator it( S ); + if ( it.More() ) + ShapeType = it.Value().ShapeType(); + } } } } @@ -275,7 +279,6 @@ GeomAbs_SurfaceType GeomSelectionTools::getFaceInformation(TopoDS_Shape S) GeomAbs_SurfaceType surf_type=GeomAbs_OtherSurface ; if (!S.IsNull() && S.ShapeType()==TopAbs_FACE){ TopoDS_Face f=TopoDS::Face(S); - Handle(Geom_Surface) surf = BRep_Tool::Surface(f); BRepAdaptor_Surface surf_adap(f); /* Global Information */