Version: 8.3.0
SMESH_Gen.idl
Go to the documentation of this file.
1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 // File : SMESH_Gen.idl
23 // Author : Paul RASCLE, EDF
24 
25 #ifndef _SMESH_GEN_IDL_
26 #define _SMESH_GEN_IDL_
27 
28 #include "SALOME_Exception.idl"
29 #include "SALOME_Component.idl"
30 #include "SALOMEDS.idl"
31 
32 #include "GEOM_Gen.idl"
33 
34 #include "SMESH_Mesh.idl"
35 #include "SMESH_Hypothesis.idl"
36 
37 module SMESH
38 {
39  typedef sequence<SALOMEDS::SObject> sobject_list;
40  typedef sequence<GEOM::GEOM_Object> object_array;
41  typedef sequence<SMESH_Mesh> mesh_array;
42 
43  interface FilterManager;
44  interface SMESH_Pattern;
45  interface Measurements;
46 
50  // Top level
51  const long Tag_HypothesisRoot = 1; // hypotheses root
52  const long Tag_AlgorithmsRoot = 2; // algorithms root
53  const long Tag_FirstMeshRoot = 3; // first mesh root
54  // Mesh/Submesh
55  const long Tag_RefOnShape = 1; // references to shape
56  const long Tag_RefOnAppliedHypothesis = 2; // applied hypotheses root
57  const long Tag_RefOnAppliedAlgorithms = 3; // applied algorithms root
58  // Mesh only: sub-meshes roots by type
59  const long Tag_FirstSubMesh = 4;
60  const long Tag_SubMeshOnVertex = 4;
61  const long Tag_SubMeshOnEdge = 5;
62  const long Tag_SubMeshOnWire = 6;
63  const long Tag_SubMeshOnFace = 7;
64  const long Tag_SubMeshOnShell = 8;
65  const long Tag_SubMeshOnSolid = 9;
66  const long Tag_SubMeshOnCompound = 10;
67  const long Tag_LastSubMesh = 10;
68  // Mesh only: group roots by type
69  const long Tag_FirstGroup = 11;
70  const long Tag_NodeGroups = 11;
71  const long Tag_EdgeGroups = 12;
72  const long Tag_FaceGroups = 13;
73  const long Tag_VolumeGroups = 14;
74  const long Tag_0DElementsGroups = 15;
75  const long Tag_BallElementsGroups = 16;
76  const long Tag_LastGroup = 16;
77 
82  {
84  string algoName;
85  long algoDim;
86  boolean isGlobalAlgo;
87  };
88  typedef sequence<AlgoStateError> algo_error_array;
89 
94  {
96  COMPERR_BAD_INPUT_MESH, // wrong mesh on lower submesh
97  COMPERR_STD_EXCEPTION , // some std exception raised
98  COMPERR_OCC_EXCEPTION , // OCC exception raised
99  COMPERR_SLM_EXCEPTION , // SALOME exception raised
100  COMPERR_EXCEPTION , // other exception raised
101  COMPERR_MEMORY_PB , // memory allocation problem
102  COMPERR_ALGO_FAILED , // computation failed
103  COMPERR_BAD_SHAPE , // bad geometry
104  COMPERR_WARNING , // algo reports error but sub-mesh is computed anyway
105  COMPERR_CANCELED , // compute canceled
106  COMPERR_NO_MESH_ON_SHAPE,// no mesh elements assigned to sub-mesh
107  COMPERR_BAD_PARMETERS // incorrect hypotheses parameters
108  };
110  {
111  short code; // ComputeErrorName or, if negative, algo specific code
112  string comment; // textual problem description
113  string algoName;
114  short subShapeID; // id of sub-shape of a shape to mesh
115  boolean hasBadMesh; // there are elements preventing computation available for visualization
116  };
117  typedef sequence<ComputeError> compute_error_array;
118 
119 
120  interface SMESH_Gen : Engines::EngineComponent, SALOMEDS::Driver
121  {
122  //GEOM::GEOM_Gen SetGeomEngine( in string containerLoc );
123  void SetGeomEngine( in GEOM::GEOM_Gen geomcompo );
124 
125  FilterManager CreateFilterManager();
126 
128 
129  Measurements CreateMeasurements();
130 
134  void SetEmbeddedMode( in boolean theMode );
135 
139  boolean IsEmbeddedMode();
140 
144  void SetCurrentStudy( in SALOMEDS::Study theStudy );
145 
149  SALOMEDS::Study GetCurrentStudy();
150 
158  SMESH_Hypothesis CreateHypothesis( in string theHypName,
159  in string theLibName )
160  raises ( SALOME::SALOME_Exception );
161 
169  SMESH_Hypothesis GetHypothesisParameterValues( in string theHypName,
170  in string theLibName,
171  in SMESH_Mesh theMesh,
172  in GEOM::GEOM_Object theGeom,
173  in boolean byMesh)
174  raises ( SALOME::SALOME_Exception );
175 
183  boolean GetSoleSubMeshUsingHyp( in SMESH_Hypothesis theHyp,
184  out SMESH_Mesh theMesh,
185  out GEOM::GEOM_Object theShape);
186 
191  void SetBoundaryBoxSegmentation( in long theNbSegments ) raises ( SALOME::SALOME_Exception );
195  void SetDefaultNbSegments( in long theNbSegments) raises ( SALOME::SALOME_Exception );
196 
200  void SetName( in string theObjectIOR,
201  in string theObjectName )
202  raises ( SALOME::SALOME_Exception );
203 
211  SMESH_Mesh CreateMesh( in GEOM::GEOM_Object theObject )
212  raises ( SALOME::SALOME_Exception );
213 
217  SMESH_Mesh CreateEmptyMesh()
218  raises ( SALOME::SALOME_Exception );
219 
224  SMESH_Mesh CreateMeshesFromUNV( in string theFileName )
225  raises ( SALOME::SALOME_Exception );
226 
230  mesh_array CreateMeshesFromMED( in string theFileName,
231  out SMESH::DriverMED_ReadStatus theStatus )
232  raises ( SALOME::SALOME_Exception );
233 
237  mesh_array CreateMeshesFromSAUV( in string theFileName,
238  out SMESH::DriverMED_ReadStatus theStatus )
239  raises ( SALOME::SALOME_Exception );
240 
244  SMESH_Mesh CreateMeshesFromSTL( in string theFileName )
245  raises ( SALOME::SALOME_Exception );
246 
250  mesh_array CreateMeshesFromCGNS( in string theFileName,
251  out SMESH::DriverMED_ReadStatus theStatus )
252  raises ( SALOME::SALOME_Exception );
253 
259  SMESH_Mesh CreateMeshesFromGMF( in string theFileName,
260  in boolean theMakeRequiredGroups,
261  out SMESH::ComputeError theError)
262  raises ( SALOME::SALOME_Exception );
263 
272  SMESH_Mesh CopyMesh(in SMESH_IDSource meshPart,
273  in string meshName,
274  in boolean toCopyGroups,
275  in boolean toKeepIDs)
276  raises ( SALOME::SALOME_Exception );
277 
285  SMESH_Mesh Concatenate(in ListOfIDSources theMeshesArray,
286  in boolean theUniteIdenticalGroups,
287  in boolean theMergeNodesAndElements,
288  in double theMergeTolerance)
289  raises ( SALOME::SALOME_Exception );
290 
299  SMESH_Mesh ConcatenateWithGroups(in ListOfIDSources theMeshesArray,
300  in boolean theUniteIdenticalGroups,
301  in boolean theMergeNodesAndElements,
302  in double theMergeTolerance)
303  raises ( SALOME::SALOME_Exception );
304 
310  boolean Compute( in SMESH_Mesh theMesh,
311  in GEOM::GEOM_Object theSubObject )
312  raises ( SALOME::SALOME_Exception );
313 
317  void CancelCompute( in SMESH_Mesh theMesh,
318  in GEOM::GEOM_Object theSubObject );
319 
323  boolean IsReadyToCompute( in SMESH_Mesh theMesh,
324  in GEOM::GEOM_Object theSubObject )
325  raises ( SALOME::SALOME_Exception );
326 
330  long_array Evaluate(in SMESH_Mesh theMesh,
331  in GEOM::GEOM_Object theSubObject)
332  raises ( SALOME::SALOME_Exception );
333 
339  MeshPreviewStruct Precompute( in SMESH_Mesh theMesh,
340  in GEOM::GEOM_Object theSubObject,
341  in Dimension theDimension,
342  inout long_array theShapesId )
343  raises ( SALOME::SALOME_Exception );
344 
349  algo_error_array GetAlgoState( in SMESH_Mesh theMesh,
350  in GEOM::GEOM_Object theSubObject )
351  raises ( SALOME::SALOME_Exception );
352 
357  compute_error_array GetComputeErrors( in SMESH_Mesh theMesh,
358  in GEOM::GEOM_Object theSubObject )
359  raises ( SALOME::SALOME_Exception );
360 
364  MeshPreviewStruct GetBadInputElements( in SMESH_Mesh theMesh,
365  in short theSubShapeID )
366  raises ( SALOME::SALOME_Exception );
367 
371  SMESH::ListOfGroups MakeGroupsOfBadInputElements( in SMESH_Mesh theMesh,
372  in short theSubShapeID,
373  in string theGroupName)
374  raises ( SALOME::SALOME_Exception );
375 
380  long_array GetSubShapesId( in GEOM::GEOM_Object theMainObject,
381  in object_array theListOfSubObjects )
382  raises ( SALOME::SALOME_Exception );
383 
389  GEOM::GEOM_Object GetGeometryByMeshElement( in SMESH_Mesh theMesh,
390  in long theElementID,
391  in string theGeomName)
392  raises ( SALOME::SALOME_Exception );
393 
398  GEOM::GEOM_Object FindGeometryByMeshElement( in SMESH_Mesh theMesh,
399  in long theElementID)
400  raises ( SALOME::SALOME_Exception );
401 
407  long GetObjectId(in Object theObject);
408 
412  boolean GetMEDVersion(in string theFileName, out MED_VERSION theVersion);
413 
417  string_array GetMeshNames(in string theFileName);
418 
427  void Move( in sobject_list what,
428  in SALOMEDS::SObject where,
429  in long row );
438  boolean IsApplicable( in string theAlgoType,
439  in string theLibName,
440  in GEOM::GEOM_Object theShapeObject,
441  in boolean toCheckAll );
442 
443 
453  long_array GetInsideSphere( in SMESH_IDSource theSource,
454  in ElementType theElemType,
455  in double theX,
456  in double theY,
457  in double theZ,
458  in double theR );
459 
471  long_array GetInsideBox( in SMESH_IDSource theSource,
472  in ElementType theElemType,
473  in double theX1,
474  in double theY1,
475  in double theZ1,
476  in double theX2,
477  in double theY2,
478  in double theZ2);
492  long_array GetInsideCylinder( in SMESH_IDSource theSource,
493  in ElementType theElemType,
494  in double theX,
495  in double theY,
496  in double theZ,
497  in double theDX,
498  in double theDY,
499  in double theDZ,
500  in double theH,
501  in double theR );
509  long_array GetInside( in SMESH_IDSource theSource,
510  in ElementType theElemType,
511  in GEOM::GEOM_Object theGeom,
512  in double theTolerance );
513 
514 
515  };
516 
517 };
518 
519 #endif