Salome HOME
First publish of HEXABLOCKcomponant
[modules/hexablock.git] / idl / Document.idl
1 #ifndef __Document_idl__
2 #define __Document_idl__
3 /*!
4  \defgroup EXAMPLES SALOME EXAMPLES components
5  */
6 #include "SALOME_Exception.idl"
7 #include "SALOME_GenericObj.idl"
8
9 // #include "GEOM_Gen.idl"
10
11 /*!  \ingroup EXAMPLES
12
13 This package contains the interface HEXABLOCK_ORB used 
14 for  %HEXABLOCK component as an example in %SALOME application.
15 */
16 module HEXABLOCK_ORB
17 {
18
19   interface Element;
20   interface Vertex;
21   interface Edge;
22   interface Quad;
23   interface Hexa;
24   interface Vector;
25   interface Cylinder;
26   interface Pipe;
27   interface Elements;
28   interface CrossElements;
29   interface Law;
30   interface Group;
31   interface Propagation;
32
33   typedef sequence<Quad>  Quads;
34
35   interface Document : SALOME::GenericObj
36   {
37     void purge()
38       raises (SALOME::SALOME_Exception);
39     /*!
40     */
41     string getFile()
42       raises (SALOME::SALOME_Exception);
43
44     void setFile( in string fileName )
45       raises (SALOME::SALOME_Exception);
46
47     boolean isSavedFile()
48       raises (SALOME::SALOME_Exception);
49
50 //     void saveFile() 
51     long saveFile() //CS_NOT_SPEC
52       raises (SALOME::SALOME_Exception);
53
54     long saveVtk( in string fname );//CS_NOT_SPEC
55
56     /*!
57     */
58     void setTolerance( in double tol ) raises (SALOME::SALOME_Exception);
59     double getTolerance() raises (SALOME::SALOME_Exception);
60
61     /*!
62         Sommets
63     */
64     Vertex addVertex( in double x, in double y, in double z )
65         raises (SALOME::SALOME_Exception);
66
67     long countVertex()
68         raises (SALOME::SALOME_Exception);
69
70     Vertex getVertex( in long i )
71         raises (SALOME::SALOME_Exception);
72
73     Vertex findVertex( in double x, in double y, in double z )
74         raises (SALOME::SALOME_Exception);
75
76
77     /*!
78         Arêtes
79     */
80     Edge addEdge( in Vertex v0, in Vertex v1 )
81         raises (SALOME::SALOME_Exception);
82
83     long countEdge()
84         raises (SALOME::SALOME_Exception);
85
86     Edge getEdge( in long i )
87         raises (SALOME::SALOME_Exception);
88
89     Edge findEdge( in Vertex p1, in Vertex p2 )
90         raises (SALOME::SALOME_Exception);
91
92
93     /*!
94         Quadrangles
95     */
96     Quad addQuad( in Edge e0, in Edge e1, in Edge e2, in Edge e3 )
97         raises (SALOME::SALOME_Exception);
98
99     Quad addQuadVertices( in Vertex v0, in Vertex v1, in Vertex v2, in Vertex v3 )
100         raises (SALOME::SALOME_Exception);
101
102     long countQuad()
103         raises (SALOME::SALOME_Exception);
104
105     Quad getQuad( in long i )
106         raises (SALOME::SALOME_Exception);
107
108     Quad findQuad( in Vertex v1, in Vertex v2 )
109         raises (SALOME::SALOME_Exception);
110
111
112
113     /*!
114         Hexaèdre
115     */
116     Hexa addHexa( in Quad q0, in Quad q1, in Quad q2, in Quad q3, in Quad q4, in Quad q5 )
117         raises (SALOME::SALOME_Exception);
118
119     Hexa addHexaVertices( in Vertex v1, in Vertex v2, in Vertex v3, in Vertex v4,
120                   in Vertex v5, in Vertex v6, in Vertex v7, in Vertex v8 )
121         raises (SALOME::SALOME_Exception);
122
123     long countHexa()
124         raises (SALOME::SALOME_Exception);
125
126     Hexa getHexa( in long i )
127         raises (SALOME::SALOME_Exception);
128
129     Hexa findHexa( in Vertex p1, in Vertex p2 )
130         raises (SALOME::SALOME_Exception);
131
132
133
134     /*!
135         Vecteurs
136     */
137     Vector addVector( in double dx, in double dy, in double dz )
138         raises (SALOME::SALOME_Exception);
139
140     Vector addVectorVertices( in Vertex v1, in Vertex v2 )
141         raises (SALOME::SALOME_Exception);
142
143 //     long countVector()
144 //         raises (SALOME::SALOME_Exception);
145 // 
146 //     Vector getVector( in long i )
147 //         raises (SALOME::SALOME_Exception);
148
149
150     /*!
151         Cylindre
152     */
153     Cylinder addCylinder( in Vertex base, in Vector direction, in double radius, in double height )
154         raises (SALOME::SALOME_Exception);
155
156 //     long countCylinder()
157 //         raises (SALOME::SALOME_Exception);
158 // 
159 //     Cylinder getCylinder( in long i )
160 //         raises (SALOME::SALOME_Exception);
161
162
163     /*!
164         Pipe
165     */
166     Pipe addPipe( in Vertex base, in Vector direction,
167                   in double int_radius, in double ext_radius, 
168                   in double height )
169         raises (SALOME::SALOME_Exception);
170
171 //     long countPipe()
172 //         raises (SALOME::SALOME_Exception);
173 // 
174 //     Pipe getPipe( in long i )
175 //         raises (SALOME::SALOME_Exception);
176
177
178     /*!
179         Remove block
180     */
181     boolean removeHexa( in Hexa h )
182         raises (SALOME::SALOME_Exception);
183
184     boolean removeConnectedHexa( in Hexa h )
185         raises (SALOME::SALOME_Exception);
186
187    /*!
188        Grille cartésiennes
189    */
190     Elements makeCartesian( in Vertex pt, 
191             in Vector vx, in Vector vy, in Vector vz,
192             in long nx, in long ny, in long nz)
193         raises (SALOME::SALOME_Exception);
194
195     Elements makeCartesian1( in Vertex v, 
196             in Vector v1,
197             in long px, in long py, in long pz,
198             in long mx, in long my, in long mz )
199         raises (SALOME::SALOME_Exception);
200
201     /*!
202         Grille cylindrique
203     */
204     Elements makeCylindrical( in Vertex pt,
205           in Vector vex, in Vector vez,
206           in double dr, in double da, in double dl,
207           in long nr, in long na, in long nl,
208           in boolean fill )
209         raises (SALOME::SALOME_Exception);
210
211     /*!
212         Grille sphérique
213     */
214 //     Elements makeSpherical( in Vertex pt,
215 //           in double dx,
216 //           in double dy,
217 //           in double dz,
218 //           in long n )
219 //         raises (SALOME::SALOME_Exception); //CS_TODO
220
221     Elements makeSpherical( in Vertex pt,
222         in Vector dv,
223         in long n,
224         in double k )
225         raises (SALOME::SALOME_Exception); //CS_TO_DEL
226
227
228     /*!
229         Cylindre découpé en blocs
230     */
231 //     Elements makeCylinder( in Cylinder cyl, in long nr, in long na, in long nl )
232 //         raises (SALOME::SALOME_Exception);//CS_TODO
233     Elements makeCylinder( in Cylinder cyl, in Vector vr, in long nr, in long na, in long nl )
234         raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
235    
236
237     /*!
238         Tuyau découpé en blocs
239     */
240 //     Elements makePipe( in Pipe p, in long nr, in long na, in long nl )
241 //         raises (SALOME::SALOME_Exception);
242
243
244     /*!
245         2 Cylindres en T découpés en blocs
246     */
247     CrossElements makeCylinders( in Cylinder c1, in Cylinder c2 )
248       raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
249
250     /*!
251         2 Tuyau découpé en intersection découpés en blocs
252     */
253 //     Elements makePipes( in Pipe p1, in long n1r, in long n1a, in long n1l,
254 //                         in Pipe p2, in long n2r, in long n2a, in long n2l )
255 //         raises (SALOME::SALOME_Exception);
256
257     /*!
258         Prismer des quadrangles
259     */
260     Elements prismQuad( in Quad qd, in Vector v, in long nb )
261         raises (SALOME::SALOME_Exception);
262
263     Elements prismQuads( in Quads qds, in Vector v, in long nb )
264         raises (SALOME::SALOME_Exception); //CS_NEW
265
266     Elements joinQuad( in Quad qa, in Quad qb,
267                        in Vertex va1, in Vertex vb1,
268                        in Vertex va2, in Vertex vb2,
269                        in long nb )
270         raises (SALOME::SALOME_Exception);
271
272     Elements joinQuads( in Quads qds,
273                         in Quad qb,
274                         in Vertex va1, in Vertex vb1,
275                         in Vertex va2, in Vertex vb2,
276                         in long nb )
277         raises (SALOME::SALOME_Exception);
278 // 
279 // 
280 //     /*!
281 //         Fusionner 2 Ã©léments de même nature //CS_NOT_SPEC
282 //     */
283
284 //     Elements mergeQuads( in Quad qa, in Quad qb,
285 //                         in Vertex va1, in Vertex vb1,
286 //                         in Vertex va2, in Vertex vb2 )
287 //         raises (SALOME::SALOME_Exception);
288
289     long mergeQuads( in Quad qa, in Quad qb,
290                         in Vertex va1, in Vertex vb1,
291                         in Vertex va2, in Vertex vb2 )
292         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
293
294 // 
295 //     Elements mergeEdges( in Edge e1, in Edge e2,
296 //                         in Vertex v1, in Vertex v2 )
297 //         raises (SALOME::SALOME_Exception);
298
299     long mergeEdges( in Edge e1, in Edge e2,
300                         in Vertex v1, in Vertex v2 )
301         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
302
303 //     Elements mergeVertices( in Vertex v1, in Vertex v2 )
304 //         raises (SALOME::SALOME_Exception);
305     long mergeVertices( in Vertex v1, in Vertex v2 )
306         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
307
308
309     /*!
310         Déconnecter des Ã©léments du modèle
311     */
312     Elements disconnectQuad( in Hexa h, in Quad q )  //CS_NOT_SPEC
313 //     long disconnectQuad( in Hexa h, in Quad q )//CS_NOT_SPEC
314 //         raises (SALOME::SALOME_Exception);
315 //     Quad disconnectQuad( in Hexa h, in Quad q )//CS_NOT_SPEC
316         raises (SALOME::SALOME_Exception);
317
318     Elements disconnectEdge( in Hexa h, in Edge e )//CS_NOT_SPEC
319         raises (SALOME::SALOME_Exception);
320 //     Elements disconnectEdge( in Hexa h, in Edge e )
321 //     long disconnectEdge( in Hexa h, in Edge e ) 
322 //     Edge disconnectEdge( in Hexa h, in Edge e ) //CS_NOT_SPEC
323 //         raises (SALOME::SALOME_Exception);
324
325     Elements disconnectVertex( in Hexa h, in Vertex v )//CS_NOT_SPEC
326 //     long disconnectVertex( in Hexa h, in Vertex v )
327 //     Vertex disconnectVertex( in Hexa h, in Vertex v ) //CS_NOT_SPEC
328         raises (SALOME::SALOME_Exception);
329
330
331     /*!
332         Couper des hexaèdres du modèle
333     */
334     Elements cut( in Edge e, in long nb_of_cuts )
335         raises (SALOME::SALOME_Exception);
336
337     /*!
338         Make elements by transforming elements
339     */
340 //     Elements makeTranslation( in Element e, in Vector vec )
341 //         raises (SALOME::SALOME_Exception);
342     Elements makeTranslation( in Elements l, in Vector vec )
343         raises (SALOME::SALOME_Exception);
344 // 
345 //     Elements makeScale( in Vertex e, in Vertex ver, in double k )
346 //         raises (SALOME::SALOME_Exception);
347 // 
348     Elements makeRotation(in Elements l, in Vertex ver, in Vector vec, in double angle)
349         raises (SALOME::SALOME_Exception);
350 // 
351 //     Elements makeSymmetryPoint(in Element e, in Vertex ver)
352 //         raises (SALOME::SALOME_Exception);
353 // 
354 //     Elements makeSymmetryLine(in Element e, in Vertex ver, in Vector vec)
355 //         raises (SALOME::SALOME_Exception);
356 // 
357 //     Elements makeSymmetryPlane(in Element e, in Vertex ver, in Vector vec)
358 //         raises (SALOME::SALOME_Exception);
359 // 
360     /*!
361     Modify elements by transforming elements
362     */
363 //     void performTranslation(in Element e, in Vector vec)
364 //         raises (SALOME::SALOME_Exception);
365
366     void performTranslation(in Elements l, in Vector vec)
367         raises (SALOME::SALOME_Exception);
368 // 
369 //     void performScale(in Element e, in Vertex ver, in double k)
370 //         raises (SALOME::SALOME_Exception);
371 // 
372     void performRotation(in Elements l, in Vertex ver, in Vector vec, in double angle)
373         raises (SALOME::SALOME_Exception);
374 // 
375 //     void performSymmetryPoint(in Element e, in Vertex ver)
376 //         raises (SALOME::SALOME_Exception);
377 // 
378 //     void performSymmetryLine(in Element e, in Vertex ver, in Vector vec)
379 //         raises (SALOME::SALOME_Exception);
380 // 
381 //     void performSymmetryPlane(in Element e, in Vertex ver, in Vector vec)
382 //         raises (SALOME::SALOME_Exception);
383 // 
384 //     /*!
385 //                     --------
386 //                     MAILLAGE
387 //                     --------
388 //     */
389 // 
390 //     /*!
391 //         Créer, Ã©diter et supprimer un groupe
392 //     */
393 //     HexaGroup addHexaGroup( in string name )
394     Group addHexaGroup( in string name )
395         raises (SALOME::SALOME_Exception);
396
397 //     QuadGroup addQuadGroup( in string name )
398     Group addQuadGroup( in string name )
399         raises (SALOME::SALOME_Exception);
400
401 //     EdgeGroup addEdgeGroup( in string name )
402     Group addEdgeGroup( in string name )
403         raises (SALOME::SALOME_Exception);
404
405 //     HexaNodeGroup addHexaNodeGroup( in string name )
406     Group addHexaNodeGroup( in string name )
407         raises (SALOME::SALOME_Exception);
408
409 //     QuadNodeGroup addQuadNodeGroup( in string name )
410     Group addQuadNodeGroup( in string name )
411         raises (SALOME::SALOME_Exception);
412
413 //     EdgeNodeGroup addEdgeNodeGroup( in string name )
414     Group addEdgeNodeGroup( in string name )
415         raises (SALOME::SALOME_Exception);
416
417 //     VertexNodeGroup addVertexNodeGroup( in string name )
418     Group addVertexNodeGroup( in string name )
419         raises (SALOME::SALOME_Exception);
420
421     long removeGroup( in Group g)
422         raises (SALOME::SALOME_Exception);
423
424     long countGroup()
425       raises (SALOME::SALOME_Exception);
426
427     Group getGroup( in long i )
428       raises (SALOME::SALOME_Exception);
429
430     Group findGroup( in string name )
431       raises (SALOME::SALOME_Exception);
432
433
434
435     /*!
436         Définir une loi de discrétisation
437     */
438     Law addLaw( in string name, in long nb_nodes )
439         raises (SALOME::SALOME_Exception);
440
441     long countLaw()
442         raises (SALOME::SALOME_Exception);
443
444     Law getLaw( in long i )
445       raises (SALOME::SALOME_Exception);
446
447     void removeLaw( in Law l )
448         raises (SALOME::SALOME_Exception);
449
450     Law findLaw( in string name )
451       raises (SALOME::SALOME_Exception);
452
453
454     /*!
455         Discretization defined on the model of blocks 
456     */
457     long countPropagation()
458         raises (SALOME::SALOME_Exception);
459
460     Propagation getPropagation( in long i )
461         raises (SALOME::SALOME_Exception);
462
463     Propagation findPropagation( in Edge e )
464         raises (SALOME::SALOME_Exception);
465
466   };
467 };
468
469
470 #endif
471