Salome HOME
NRI : Merge from V1_2.
[modules/smesh.git] / idl / SMESH_Gen.idl
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 // 
4 //  This library is free software; you can redistribute it and/or 
5 //  modify it under the terms of the GNU Lesser General Public 
6 //  License as published by the Free Software Foundation; either 
7 //  version 2.1 of the License. 
8 // 
9 //  This library is distributed in the hope that it will be useful, 
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 //  Lesser General Public License for more details. 
13 // 
14 //  You should have received a copy of the GNU Lesser General Public 
15 //  License along with this library; if not, write to the Free Software 
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 // 
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 //
20 //
21 //
22 //  File   : SMESH_Gen.idl
23 //  Author : Paul RASCLE, EDF
24 //  $Header$
25
26 #ifndef _SMESH_GEN_IDL_
27 #define _SMESH_GEN_IDL_
28
29 #include "SALOME_Exception.idl"
30 #include "SALOME_Component.idl"
31 #include "SALOMEDS.idl"
32
33 #include "GEOM_Gen.idl"
34 #include "GEOM_Shape.idl"
35
36 #include "SMESH_Mesh.idl"
37 #include "SMESH_Hypothesis.idl"
38
39 module SMESH
40 {
41   typedef sequence<GEOM::GEOM_Shape> shape_array;
42
43   interface SMESH_Gen : Engines::Component, SALOMEDS::Driver
44   {
45     /*!
46      * Create an hypothesis that can be shared by differents parts of the mesh.
47      * An hypothesis is either:
48      * - a method used to generate or modify a part of the mesh (algorithm).
49      * - a parameter or a law used by an algorithm.
50      * Algorithms are 1D, 2D or 3D.
51      */
52     SMESH_Hypothesis CreateHypothesis( in string anHyp,
53                                        in long studyId)
54       raises (SALOME::SALOME_Exception);
55
56     /*!
57      * Create a Mesh object, given a geometry shape.
58      * Mesh is created empty (no points, no elements).
59      * Shape is explored via GEOM_Client to create local copies.
60      * of TopoDS_Shapes and bind CORBA references of shape & subshapes
61      * with TopoDS_Shapes
62      */
63      SMESH_Mesh Init(in GEOM::GEOM_Gen geomEngine,
64                      in long studyId,
65                      in GEOM::GEOM_Shape aShape)
66        raises (SALOME::SALOME_Exception);
67
68     /*!
69      * Create a Mesh object, without a geometry shape reference
70      */
71 //      SMESH_Mesh NewEmpty(in GEOM::GEOM_Gen geomEngine,
72 //                       in long studyId)
73 //        raises (SALOME::SALOME_Exception);
74
75     /*!
76      * Mesh a subShape. 
77      * First, verify list of hypothesis associated with the subShape,
78      * return NOK if hypothesis are not sufficient
79      */
80     boolean Compute(in SMESH_Mesh aMesh, in GEOM::GEOM_Shape aSubShape)
81       raises (SALOME::SALOME_Exception);
82
83     /*!
84      * 
85      */
86
87     boolean IsReadyToCompute(in SMESH_Mesh aMesh, in GEOM::GEOM_Shape aSubShape)
88       raises (SALOME::SALOME_Exception);
89
90     /*!
91      * 
92      */
93     long_array GetSubShapesId(in GEOM::GEOM_Gen geomEngine,
94                              in long studyId,
95                              in GEOM::GEOM_Shape mainShape,
96                              in shape_array listOfSubShape)
97        raises (SALOME::SALOME_Exception);
98     
99     /*!
100      * 
101      */
102     //    long_array GetSubMeshesState(in GEOM::GEOM_Gen geomEngine,
103     //                           in long studyId,
104     //                           in shape_array listOfSubShape)
105     //  raises (SALOME::SALOME_Exception);
106     
107
108   };
109
110 };
111
112 #endif