Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
23514: EDF 16031 - SMESH freezes
[modules/smesh.git]
/
src
/
PluginUtils
/
GeomSelectionTools.cxx
diff --git
a/src/PluginUtils/GeomSelectionTools.cxx
b/src/PluginUtils/GeomSelectionTools.cxx
index d57f2a210b0ce44e35bc5a584e1818cca156cc13..0a9be930932a69e3e95ac543e7661c1813c439b0 100644
(file)
--- a/
src/PluginUtils/GeomSelectionTools.cxx
+++ b/
src/PluginUtils/GeomSelectionTools.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-201
4
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-201
6
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
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
@@
-28,17
+28,15
@@
#include <SalomeApp_Application.h>
#include <SUIT_Session.h>
#include <SalomeApp_Application.h>
#include <SUIT_Session.h>
-#include <SALOME_ListIteratorOfListIO.hxx>
-#include <GEOM_Client.hxx>
-#include <SMESHGUI_Utils.h>
-#include <boost/shared_ptr.hpp>
#include <GEOMImpl_Types.hxx>
#include <GEOMImpl_Types.hxx>
+#include <GEOM_Client.hxx>
#include <GEOM_wrap.hxx>
#include <GEOM_wrap.hxx>
+#include <SALOME_ListIO.hxx>
+#include <SMESHGUI_Utils.h>
-#include <TopoDS.hxx>
-#include <BRep_Tool.hxx>
-#include <Handle_Geom_Surface.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepAdaptor_Surface.hxx>
+#include <TopoDS.hxx>
+#include <TopoDS_Iterator.hxx>
#include "utilities.h"
#include "utilities.h"
@@
-96,7
+94,7
@@
LightApp_SelectionMgr* GeomSelectionTools::selectionMgr()
*/
SALOME_ListIO* GeomSelectionTools::getSelectedSalomeObjects()
{
*/
SALOME_ListIO* GeomSelectionTools::getSelectedSalomeObjects()
{
- SALOME_ListIO* selected;
+ SALOME_ListIO* selected
= new SALOME_ListIO
;
LightApp_SelectionMgr* aSel = selectionMgr();
aSel->selectedObjects( *selected, NULL, false );
return selected;
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();
// 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);
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 */
BRepAdaptor_Surface surf_adap(f);
/* Global Information */