Salome HOME
NPAL17269: Performance pb. when creating a group with GUI.
[modules/geom.git] / src / GEOMFiltersSelection / GEOM_ShapeTypeFilter.cxx
index 5292daa070cc222639abcb5a0314cf605e40d9bb..1de7bd2e01f7a16cddb7574fa8f07cb366121e64 100644 (file)
@@ -17,7 +17,7 @@
 //  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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 //
 //
@@ -45,8 +45,11 @@ static bool getShape( const GEOM::GEOM_Object_ptr& theObject, TopoDS_Shape& theS
 {
   if ( !CORBA::is_nil( theObject ) )
   {
-    Engines::Component_var comp = QAD_Application::getDesktop()->getEngine( "FactoryServer", "GEOM" );
-    GEOM::GEOM_Gen_var myGeom   = GEOM::GEOM_Gen::_narrow( comp );
+    static GEOM::GEOM_Gen_var myGeom;
+    if(CORBA::is_nil(myGeom) {
+      Engines::Component_var comp = QAD_Application::getDesktop()->getEngine( "FactoryServer", "GEOM" );
+      myGeom = GEOM::GEOM_Gen::_narrow( comp );
+    }
     TopoDS_Shape aTopoDSShape = GEOM_Client().GetShape( myGeom, theObject );
         
     if ( !aTopoDSShape.IsNull() )