Salome HOME
Merge branch 'occ/shaper2smesh'
[modules/smesh.git] / src / SMESH_I / SMESH_Gen_i.hxx
index 1209ec7afbb494ff0602a99a0c427cc6fa7dbdfd..b288eec86d3784c4dd7dbff3d78cfdd83b57b818 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  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
@@ -109,7 +109,8 @@ public:
   // Get SALOME_LifeCycleCORBA object
   static SALOME_LifeCycleCORBA* GetLCC();
   // Retrieve and get GEOM engine reference
-  static GEOM::GEOM_Gen_var GetGeomEngine();
+  static GEOM::GEOM_Gen_var GetGeomEngine( bool isShaper );
+  static GEOM::GEOM_Gen_var GetGeomEngine( GEOM::GEOM_Object_ptr );
   // Get object of the CORBA reference
   static PortableServer::ServantBase_var GetServant( CORBA::Object_ptr theObject );
   // Get CORBA object corresponding to the SALOMEDS::SObject
@@ -158,17 +159,30 @@ public:
   // Update study
   void UpdateStudy();
 
-  // Create hypothesis/algorothm of given type
+  // Do provide info on objects
+  bool hasObjectInfo();
+
+  // Return an information for a given object
+  char* getObjectInfo(const char* entry);
+
+  // Create hypothesis/algorithm of given type
   SMESH::SMESH_Hypothesis_ptr CreateHypothesis (const char* theHypType,
                                                 const char* theLibName)
     throw ( SALOME::SALOME_Exception );
 
+  SMESH::SMESH_Hypothesis_ptr CreateHypothesisByAverageLength( const char*    theHypType,
+                                                               const char*    theLibName,
+                                                               CORBA::Double  theAverageLength,
+                                                               CORBA::Boolean theQuadDominated)
+    throw ( SALOME::SALOME_Exception );
+
   // Return hypothesis of given type holding parameter values of the existing mesh
-  SMESH::SMESH_Hypothesis_ptr GetHypothesisParameterValues (const char*           theHypType,
-                                                            const char*           theLibName,
-                                                            SMESH::SMESH_Mesh_ptr theMesh,
-                                                            GEOM::GEOM_Object_ptr theGeom,
-                                                            CORBA::Boolean        byMesh)
+  SMESH::SMESH_Hypothesis_ptr
+    GetHypothesisParameterValues (const char*                 theHypType,
+                                  const char*                 theLibName,
+                                  SMESH::SMESH_Mesh_ptr       theMesh,
+                                  GEOM::GEOM_Object_ptr       theGeom,
+                                  const SMESH::HypInitParams& theWay)
     throw ( SALOME::SALOME_Exception );
 
   /*
@@ -307,7 +321,7 @@ public:
   // Returns errors of hypotheses definition
   SMESH::algo_error_array* GetAlgoState( SMESH::SMESH_Mesh_ptr theMesh,
                                          GEOM::GEOM_Object_ptr theSubObject )
-      throw ( SALOME::SALOME_Exception );
+    throw ( SALOME::SALOME_Exception );
 
   // Return mesh elements preventing computation of a subshape
   SMESH::MeshPreviewStruct* GetBadInputElements( SMESH::SMESH_Mesh_ptr theMesh,
@@ -341,14 +355,16 @@ public:
                                           CORBA::Boolean                uniteIdenticalGroups,
                                           CORBA::Boolean                mergeNodesAndElements,
                                           CORBA::Double                 mergeTolerance,
-                                          CORBA::Boolean                commonGroups)
+                                          CORBA::Boolean                commonGroups,
+                                          SMESH::SMESH_Mesh_ptr         meshToAppendTo)
     throw ( SALOME::SALOME_Exception );
 
   // Concatenate the given meshes into one mesh
   SMESH::SMESH_Mesh_ptr Concatenate(const SMESH::ListOfIDSources& meshesArray,
                                     CORBA::Boolean                uniteIdenticalGroups,
                                     CORBA::Boolean                mergeNodesAndElements,
-                                    CORBA::Double                 mergeTolerance)
+                                    CORBA::Double                 mergeTolerance,
+                                    SMESH::SMESH_Mesh_ptr         meshToAppendTo)
     throw ( SALOME::SALOME_Exception );
 
   // Concatenate the given meshes into one mesh
@@ -356,7 +372,8 @@ public:
   SMESH::SMESH_Mesh_ptr ConcatenateWithGroups(const SMESH::ListOfIDSources& meshesArray,
                                               CORBA::Boolean                uniteIdenticalGroups,
                                               CORBA::Boolean                mergeNodesAndElements,
-                                              CORBA::Double                 mergeTolerance)
+                                              CORBA::Double                 mergeTolerance,
+                                              SMESH::SMESH_Mesh_ptr         meshToAppendTo)
     throw ( SALOME::SALOME_Exception );
 
   // Get version of MED format being used.
@@ -520,6 +537,7 @@ public:
                                       const char*            theName = 0);
   void UpdateIcons(SMESH::SMESH_Mesh_ptr theMesh);
   void HighLightInvalid(CORBA::Object_ptr theObject, bool isInvalid);
+  bool IsInvalid(SALOMEDS::SObject_ptr theObject);
   bool AddHypothesisToShape(SMESH::SMESH_Mesh_ptr       theMesh,
                             GEOM::GEOM_Object_ptr       theShapeObject,
                             SMESH::SMESH_Hypothesis_ptr theHyp);
@@ -624,6 +642,9 @@ private:
   SMESH::SMESH_Mesh_ptr createMesh()
     throw ( SALOME::SALOME_Exception );
 
+  // Check mesh icon
+  bool isGeomModifIcon( SMESH::SMESH_Mesh_ptr mesh );
+
   // Create a sub-mesh on a geometry that is not a sub-shape of the main shape
   // for the case where a valid sub-shape not found by CopyMeshWithGeom()
   SMESH::SMESH_subMesh_ptr createInvalidSubMesh( SMESH::SMESH_Mesh_ptr mesh,
@@ -632,8 +653,6 @@ private:
 
   void highLightInvalid( SALOMEDS::SObject_ptr theSObject, bool isInvalid );
 
-  static void loadGeomData( SALOMEDS::SComponent_ptr theCompRoot );
-
   SMESH::mesh_array* CreateMeshesFromMEDorSAUV( const char* theFileName,
                                                 SMESH::DriverMED_ReadStatus& theStatus,
                                                 const char* theCommandNameForPython,