Salome HOME
Merge from V6_main (04/10/2012)
[modules/hexablock.git] / idl / Document.idl
1 // Copyright (C) 2009-2012  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 #ifndef __Document_idl__
20 #define __Document_idl__
21 /*!
22  \defgroup EXAMPLES SALOME EXAMPLES components
23  */
24 #include "SALOME_Exception.idl"
25 #include "SALOME_GenericObj.idl"
26
27 #include "GEOM_Gen.idl"
28
29 #include "Edge.idl"
30 #include "Hexa.idl"
31
32 /*!  \ingroup EXAMPLES
33
34 This package contains the interface HEXABLOCK_ORB used 
35 for  %HEXABLOCK component as an example in %SALOME application.
36 */
37 module HEXABLOCK_ORB
38 {
39
40   interface Element;
41   interface Vertex;
42   interface Edge;
43   interface Quad;
44   interface Hexa;
45   interface Vector;
46   interface Cylinder;
47   interface Pipe;
48   interface Elements;
49   interface CrossElements;
50   interface Law;
51   interface Group;
52   interface Propagation;
53
54   typedef sequence<Quad>    Quads;
55   typedef sequence<double>  RealVector;
56   typedef GEOM::GEOM_Object  Shape;
57   typedef sequence<GEOM::GEOM_Object>  Shapes;
58
59   interface Document : SALOME::GenericObj
60   {
61     void purge()
62       raises (SALOME::SALOME_Exception);
63
64     void dump()
65       raises (SALOME::SALOME_Exception);
66     /*!
67     */
68     string getName()
69       raises (SALOME::SALOME_Exception);
70
71     long setName (in string name )
72       raises (SALOME::SALOME_Exception);
73
74     long save( in string fileName )
75       raises (SALOME::SALOME_Exception);
76
77     long saveVtk( in string fname );
78
79     void setLevel (in long debug_level )
80       raises (SALOME::SALOME_Exception);
81
82
83     /*!
84     */
85     void setTolerance( in double tol ) raises (SALOME::SALOME_Exception);
86     double getTolerance() raises (SALOME::SALOME_Exception);
87
88     /*!
89         Sommets
90     */
91     Vertex addVertex( in double x, in double y, in double z )
92         raises (SALOME::SALOME_Exception);
93
94     long countVertex()
95         raises (SALOME::SALOME_Exception);
96
97     Vertex getVertex( in long i )
98         raises (SALOME::SALOME_Exception);
99
100     Vertex findVertex( in double x, in double y, in double z )
101         raises (SALOME::SALOME_Exception);
102
103
104     /*!
105         Arêtes
106     */
107     Edge addEdge( in Vertex v0, in Vertex v1 )
108         raises (SALOME::SALOME_Exception);
109
110     long countEdge()
111         raises (SALOME::SALOME_Exception);
112
113     Edge getEdge( in long i )
114         raises (SALOME::SALOME_Exception);
115
116     Edge findEdge( in Vertex p1, in Vertex p2 )
117         raises (SALOME::SALOME_Exception);
118
119
120     /*!
121         Quadrangles
122     */
123     Quad addQuad( in Edge e0, in Edge e1, in Edge e2, in Edge e3 )
124         raises (SALOME::SALOME_Exception);
125
126     Quad addQuadVertices( in Vertex v0, in Vertex v1, in Vertex v2, in Vertex v3 )
127         raises (SALOME::SALOME_Exception);
128
129     long countQuad()
130         raises (SALOME::SALOME_Exception);
131
132     Quad getQuad( in long i )
133         raises (SALOME::SALOME_Exception);
134
135     Quad findQuad( in Vertex v1, in Vertex v2 )
136         raises (SALOME::SALOME_Exception);
137
138
139
140     /*!
141         Hexaèdre
142     */
143     Hexa addHexa( in Quad q0, in Quad q1, in Quad q2, in Quad q3, in Quad q4, in Quad q5 )
144         raises (SALOME::SALOME_Exception);
145
146     Hexa addHexaVertices( in Vertex v1, in Vertex v2, in Vertex v3, in Vertex v4,
147                   in Vertex v5, in Vertex v6, in Vertex v7, in Vertex v8 )
148         raises (SALOME::SALOME_Exception);
149
150     long countHexa()
151         raises (SALOME::SALOME_Exception);
152
153     Hexa getHexa( in long i )
154         raises (SALOME::SALOME_Exception);
155
156     Hexa findHexa( in Vertex p1, in Vertex p2 )
157         raises (SALOME::SALOME_Exception);
158
159
160
161     /*!
162         Vecteurs
163     */
164     Vector addVector( in double dx, in double dy, in double dz )
165         raises (SALOME::SALOME_Exception);
166
167     Vector addVectorVertices( in Vertex v1, in Vertex v2 )
168         raises (SALOME::SALOME_Exception);
169
170     long countVector()
171          raises (SALOME::SALOME_Exception);
172
173     Vector getVector( in long i )
174            raises (SALOME::SALOME_Exception);
175
176
177     /*!
178         Cylindre
179     */
180     Cylinder addCylinder( in Vertex base, in Vector direction, in double radius, in double height )
181         raises (SALOME::SALOME_Exception);
182
183     long countCylinder()
184          raises (SALOME::SALOME_Exception);
185  
186     Cylinder getCylinder( in long i )
187              raises (SALOME::SALOME_Exception);
188
189
190     /*!
191         Pipe
192     */
193     Pipe addPipe( in Vertex base, in Vector direction,
194                   in double int_radius, in double ext_radius, 
195                   in double height )
196         raises (SALOME::SALOME_Exception);
197
198      long countPipe()
199           raises (SALOME::SALOME_Exception);
200  
201      Pipe getPipe( in long i )
202           raises (SALOME::SALOME_Exception);
203
204
205     /*!
206         Remove block
207     */
208     boolean removeHexa( in Hexa h )
209         raises (SALOME::SALOME_Exception);
210
211     boolean removeConnectedHexa( in Hexa h )
212         raises (SALOME::SALOME_Exception);
213
214    /*!
215        Grille cartésiennes
216    */
217     Elements makeCartesian( in Vertex pt, 
218             in Vector vx, in Vector vy, in Vector vz,
219             in long nx, in long ny, in long nz)
220         raises (SALOME::SALOME_Exception);
221
222     Elements makeCartesian1( in Vertex v, 
223             in Vector v1,
224             in long px, in long py, in long pz,
225             in long mx, in long my, in long mz )
226         raises (SALOME::SALOME_Exception);
227
228     /*!
229         Grille cylindrique
230     */
231     Elements makeCylindrical( in Vertex pt,
232           in Vector vex, in Vector vez,
233           in double dr, in double da, in double dl,
234           in long nr, in long na, in long nl,
235           in boolean fill )
236         raises (SALOME::SALOME_Exception);
237
238     /*!
239         Grille cylindrique (variante)
240     */
241     Elements makeCylindricals( in Vertex pt,
242           in Vector vex, in Vector vez,
243           in RealVector tdr, in RealVector tda, in RealVector tdl,
244           in boolean fill )
245         raises (SALOME::SALOME_Exception);
246
247     /*!
248         Grille sphérique
249     */
250
251     Elements makeSpherical( in Vertex pt,
252         in double rayon,
253         in long n,
254         in double k )
255         raises (SALOME::SALOME_Exception); //CS_TO_DEL
256
257
258     /*!
259         Cylindre découpé en blocs
260     */
261 //     Elements makeCylinder( in Cylinder cyl, in long nr, in long na, in long nl )
262 //         raises (SALOME::SALOME_Exception);//CS_TODO
263     Elements makeCylinder( in Cylinder cyl, in Vector vr, in long nr, in long na, in long nl )
264         raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
265    
266
267     /*!
268         Tuyau decoupe en blocs
269     */
270     Elements makePipe( in Pipe p, in Vector v, in long nr, in long na, in long nl )
271         raises (SALOME::SALOME_Exception);
272
273     /*!
274         2 Cylindres en T decoupes en blocs
275     */
276     CrossElements makeCylinders( in Cylinder c1, in Cylinder c2 )
277       raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
278
279     /*!
280         2 Tuyau decoupe en intersection decoupees en blocs
281     */
282     Elements makePipes( in Pipe p1, in Pipe p2 )
283         raises (SALOME::SALOME_Exception);
284
285     /*!
286         Prismer des quadrangles
287     */
288     Elements prismQuad( in Quad qd, in Vector v, in long nb )
289         raises (SALOME::SALOME_Exception);
290
291     Elements prismQuads( in Quads qds, in Vector v, in long nb )
292         raises (SALOME::SALOME_Exception);
293
294     Elements prismQuadsVec (in Quads qds, in Vector v, in RealVector thaut, 
295                             in long opt )
296         raises (SALOME::SALOME_Exception);
297
298     Elements joinQuad( in Quad qa, in Quad qb,
299                        in Vertex va1, in Vertex vb1,
300                        in Vertex va2, in Vertex vb2,
301                        in long nb )
302         raises (SALOME::SALOME_Exception);
303
304     Elements joinQuads( in Quads qds,
305                         in Quad qb,
306                         in Vertex va1, in Vertex vb1,
307                         in Vertex va2, in Vertex vb2,
308                         in long nb )
309         raises (SALOME::SALOME_Exception);
310
311                 // HexaBlock V3
312     Elements revolutionQuads( in Quads qds, in Vertex ori, in Vector dir, 
313                               in RealVector angles)
314         raises (SALOME::SALOME_Exception); 
315
316     Elements replace( in Quads qds, in Vertex p1, in Vertex c1,
317                       in Vertex p2, in Vertex c2, in Vertex p3, in Vertex c3)
318         raises (SALOME::SALOME_Exception); 
319
320     Elements makeSphere (in Vertex center, in Vector vx, in Vector vz, 
321                          in double radius, in double radhole,
322                          in Vertex plorig, 
323                          in long nrad, in long nang, in long nhaut)
324         raises (SALOME::SALOME_Exception); 
325
326     Elements makePartSphere (in Vertex center, in Vector vx, in Vector vz, 
327                              in double  radius, in double radhole,
328                              in Vertex plorig, in double angle,
329                              in long nrad, in long nang, in long nhaut)
330         raises (SALOME::SALOME_Exception); 
331
332     Elements makeRind (in Vertex center, in Vector vx, in Vector vz, 
333                        in double  radext, in double radint, in double radhole,
334                        in Vertex plorig, 
335                        in long nrad, in long nang, in long nhaut)
336         raises (SALOME::SALOME_Exception); 
337
338     Elements makePartRind (in Vertex center, in Vector vx, in Vector vz, 
339                          in double  radext, in double radint, in double radhole,
340                          in Vertex plorig, in double angle,
341                          in long nrad, in long nang, in long nhaut)
342         raises (SALOME::SALOME_Exception); 
343 // 
344 // 
345 //     /*!
346 //         Fusionner 2 Ã©léments de même nature //CS_NOT_SPEC
347 //     */
348
349 //     Elements mergeQuads( in Quad qa, in Quad qb,
350 //                         in Vertex va1, in Vertex vb1,
351 //                         in Vertex va2, in Vertex vb2 )
352 //         raises (SALOME::SALOME_Exception);
353
354     long mergeQuads( in Quad qa, in Quad qb,
355                         in Vertex va1, in Vertex vb1,
356                         in Vertex va2, in Vertex vb2 )
357         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
358
359 // 
360 //     Elements mergeEdges( in Edge e1, in Edge e2,
361 //                         in Vertex v1, in Vertex v2 )
362 //         raises (SALOME::SALOME_Exception);
363
364     long mergeEdges( in Edge e1, in Edge e2,
365                         in Vertex v1, in Vertex v2 )
366         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
367
368 //     Elements mergeVertices( in Vertex v1, in Vertex v2 )
369 //         raises (SALOME::SALOME_Exception);
370     long mergeVertices( in Vertex v1, in Vertex v2 )
371         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
372
373
374     /*!
375         Deconnecter des elements du modele
376     */
377     Elements disconnectQuad( in Hexa h, in Quad q ) 
378         raises (SALOME::SALOME_Exception);
379
380     Elements disconnectEdge( in Hexa h, in Edge e )
381         raises (SALOME::SALOME_Exception);
382
383     Elements disconnectVertex( in Hexa h,  in Vertex v )
384         raises (SALOME::SALOME_Exception);
385
386     Elements disconnectEdges( in Hexas th, in Edges te )
387         raises (SALOME::SALOME_Exception);
388
389     /*!
390         Couper des hexaèdres du modèle
391     */
392     Elements cut( in Edge e, in long nb_of_cuts )
393         raises (SALOME::SALOME_Exception);
394
395     /*!
396         Make elements by transforming elements
397     */
398 //     Elements makeTranslation( in Elements e, in Vector vec )
399 //         raises (SALOME::SALOME_Exception);
400     Elements makeTranslation( in Elements l, in Vector vec )
401         raises (SALOME::SALOME_Exception);
402 // 
403 // 
404     Elements makeRotation (in Elements l, in Vertex ver, in Vector vec, in double angle)
405         raises (SALOME::SALOME_Exception);
406     Elements makeScale (in Elements e, in Vertex ver, in double k )
407         raises (SALOME::SALOME_Exception);
408
409     Elements makeSymmetryPoint (in Elements e, in Vertex ver)
410         raises (SALOME::SALOME_Exception);
411
412     Elements makeSymmetryLine (in Elements e, in Vertex ver, in Vector vec)
413         raises (SALOME::SALOME_Exception);
414  
415     Elements makeSymmetryPlane (in Elements e, in Vertex ver, in Vector vec)
416         raises (SALOME::SALOME_Exception);
417
418     /*!
419     Modify elements by transforming elements
420     */
421 //     void performTranslation(in Elements e, in Vector vec)
422 //         raises (SALOME::SALOME_Exception);
423
424     void performTranslation(in Elements l, in Vector vec)
425         raises (SALOME::SALOME_Exception);
426 // 
427     void performRotation(in Elements l, in Vertex ver, in Vector vec, in double angle)
428         raises (SALOME::SALOME_Exception);
429 // 
430     void performScale(in Elements e, in Vertex ver, in double k)
431         raises (SALOME::SALOME_Exception);
432
433     void performSymmetryPoint(in Elements e, in Vertex ver)
434         raises (SALOME::SALOME_Exception);
435
436     void performSymmetryLine(in Elements e, in Vertex ver, in Vector vec)
437         raises (SALOME::SALOME_Exception);
438
439     void performSymmetryPlane(in Elements e, in Vertex ver, in Vector vec)
440         raises (SALOME::SALOME_Exception);
441 // 
442 //     /*!
443 //                     --------
444 //                     MAILLAGE
445 //                     --------
446 //     */
447 // 
448 //     /*!
449 //         Créer, Ã©diter et supprimer un groupe
450 //     */
451 //     HexaGroup addHexaGroup( in string name )
452     Group addHexaGroup( in string name )
453         raises (SALOME::SALOME_Exception);
454
455 //     QuadGroup addQuadGroup( in string name )
456     Group addQuadGroup( in string name )
457         raises (SALOME::SALOME_Exception);
458
459 //     EdgeGroup addEdgeGroup( in string name )
460     Group addEdgeGroup( in string name )
461         raises (SALOME::SALOME_Exception);
462
463 //     HexaNodeGroup addHexaNodeGroup( in string name )
464     Group addHexaNodeGroup( in string name )
465         raises (SALOME::SALOME_Exception);
466
467 //     QuadNodeGroup addQuadNodeGroup( in string name )
468     Group addQuadNodeGroup( in string name )
469         raises (SALOME::SALOME_Exception);
470
471 //     EdgeNodeGroup addEdgeNodeGroup( in string name )
472     Group addEdgeNodeGroup( in string name )
473         raises (SALOME::SALOME_Exception);
474
475 //     VertexNodeGroup addVertexNodeGroup( in string name )
476     Group addVertexNodeGroup( in string name )
477         raises (SALOME::SALOME_Exception);
478
479     long removeGroup( in Group g)
480         raises (SALOME::SALOME_Exception);
481
482     long countGroup()
483       raises (SALOME::SALOME_Exception);
484
485     Group getGroup( in long i )
486       raises (SALOME::SALOME_Exception);
487
488     Group findGroup( in string name )
489       raises (SALOME::SALOME_Exception);
490
491
492
493     /*!
494         Définir une loi de discrétisation
495     */
496     Law addLaw( in string name, in long nb_nodes )
497         raises (SALOME::SALOME_Exception);
498
499     long countLaw()
500         raises (SALOME::SALOME_Exception);
501
502     Law getLaw( in long i )
503       raises (SALOME::SALOME_Exception);
504
505     void removeLaw( in Law l )
506         raises (SALOME::SALOME_Exception);
507
508     Law findLaw( in string name )
509       raises (SALOME::SALOME_Exception);
510
511
512     /*!
513         Discretization defined on the model of blocks 
514     */
515     long countPropagation()
516         raises (SALOME::SALOME_Exception);
517
518     Propagation getPropagation( in long i )
519         raises (SALOME::SALOME_Exception);
520
521     Propagation findPropagation( in Edge e )
522         raises (SALOME::SALOME_Exception);
523
524     /*!
525         Association on lines
526     */
527    long associateOpenedLine (in Edge mstart, in Edges mline, in Shape gstart, 
528                              in double pstart, in Shapes gline, in double pend)
529         raises (SALOME::SALOME_Exception);
530
531    long associateClosedLine (in Vertex mfirst, in Edge mstart, in Edges  mline, 
532                             in Shape  gstart, in double pstart, in boolean inv,
533                             in Shapes gline)
534         raises (SALOME::SALOME_Exception);
535
536    void setShape (in GEOM::GEOM_Object geom_object_vertex )
537             raises (SALOME::SALOME_Exception);
538
539    GEOM::GEOM_Object getShape ()
540             raises (SALOME::SALOME_Exception);
541    string getBrep ()
542             raises (SALOME::SALOME_Exception);
543
544 //       Ajouts 05/09/20011
545
546     long countUsedVertex()
547         raises (SALOME::SALOME_Exception);
548     long countUsedEdge()
549         raises (SALOME::SALOME_Exception);
550     long countUsedQuad()
551         raises (SALOME::SALOME_Exception);
552     long countUsedHexa()
553         raises (SALOME::SALOME_Exception);
554
555     Vertex getUsedVertex( in long i )
556         raises (SALOME::SALOME_Exception);
557     Edge getUsedEdge( in long i )
558         raises (SALOME::SALOME_Exception);
559     Quad getUsedQuad( in long i )
560         raises (SALOME::SALOME_Exception);
561     Hexa getUsedHexa( in long i )
562         raises (SALOME::SALOME_Exception);
563
564     Hexa addHexa5Quads (in Quad q1, in Quad q2, in Quad q3, in Quad q4, 
565                         in Quad q5) raises (SALOME::SALOME_Exception);
566     Hexa addHexa4Quads ( in Quad q1, in Quad q2, in Quad q3, in Quad q4)
567          raises (SALOME::SALOME_Exception);
568     Hexa addHexa3Quads ( in Quad q1, in Quad q2, in Quad q3)
569          raises (SALOME::SALOME_Exception);
570     Hexa addHexa2Quads ( in Quad q1, in Quad q2)
571          raises (SALOME::SALOME_Exception);
572
573     boolean removeQuad( in Quad q )
574         raises (SALOME::SALOME_Exception);
575     boolean removeElements( in Elements b )
576         raises (SALOME::SALOME_Exception);
577
578     void clearAssociation ()
579       raises (SALOME::SALOME_Exception);
580   };
581 };
582
583
584 #endif
585