1 // Copyright (C) 2009-2013 CEA/DEN, EDF R&D
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.
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.
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
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #ifndef __Document_idl__
20 #define __Document_idl__
22 \defgroup EXAMPLES SALOME EXAMPLES components
24 #include "SALOME_Exception.idl"
25 #include "SALOME_GenericObj.idl"
27 #include "GEOM_Gen.idl"
34 This package contains the interface HEXABLOCK_ORB used
35 for %HEXABLOCK component as an example in %SALOME application.
49 interface CrossElements;
52 interface Propagation;
56 typedef sequence<Quad> Quads;
57 typedef sequence<long> IntVector;
58 typedef sequence<double> RealVector;
59 typedef sequence<NewShape> NewShapes;
61 typedef GEOM::GEOM_Object Shape;
62 typedef sequence<GEOM::GEOM_Object> Shapes;
64 interface Document : SALOME::GenericObj
67 raises (SALOME::SALOME_Exception);
70 raises (SALOME::SALOME_Exception); //CS_NOT_SPEC
74 raises (SALOME::SALOME_Exception);
76 long setName (in string name )
77 raises (SALOME::SALOME_Exception);
79 long save( in string fileName )
80 raises (SALOME::SALOME_Exception);
82 long saveVtk( in string fname );
84 void setLevel (in long debug_level )
85 raises (SALOME::SALOME_Exception);
90 void setTolerance( in double tol ) raises (SALOME::SALOME_Exception);
91 double getTolerance() raises (SALOME::SALOME_Exception);
96 Vertex addVertex( in double x, in double y, in double z )
97 raises (SALOME::SALOME_Exception);
100 raises (SALOME::SALOME_Exception);
102 Vertex getVertex( in long i )
103 raises (SALOME::SALOME_Exception);
105 Vertex findVertex( in double x, in double y, in double z )
106 raises (SALOME::SALOME_Exception);
112 Edge addEdge( in Vertex v0, in Vertex v1 )
113 raises (SALOME::SALOME_Exception);
115 Edge addEdgeVector ( in Vertex v0, in Vector w1 )
116 raises (SALOME::SALOME_Exception);
119 raises (SALOME::SALOME_Exception);
121 Edge getEdge( in long i )
122 raises (SALOME::SALOME_Exception);
124 Edge findEdge( in Vertex p1, in Vertex p2 )
125 raises (SALOME::SALOME_Exception);
131 Quad addQuad( in Edge e0, in Edge e1, in Edge e2, in Edge e3 )
132 raises (SALOME::SALOME_Exception);
134 Quad addQuadVertices( in Vertex v0, in Vertex v1, in Vertex v2, in Vertex v3 )
135 raises (SALOME::SALOME_Exception);
138 raises (SALOME::SALOME_Exception);
140 Quad getQuad( in long i )
141 raises (SALOME::SALOME_Exception);
143 Quad findQuad( in Vertex v1, in Vertex v2 )
144 raises (SALOME::SALOME_Exception);
151 Hexa addHexa( in Quad q0, in Quad q1, in Quad q2, in Quad q3, in Quad q4, in Quad q5 )
152 raises (SALOME::SALOME_Exception);
154 Hexa addHexaVertices( in Vertex v1, in Vertex v2, in Vertex v3, in Vertex v4,
155 in Vertex v5, in Vertex v6, in Vertex v7, in Vertex v8 )
156 raises (SALOME::SALOME_Exception);
159 raises (SALOME::SALOME_Exception);
161 Hexa getHexa( in long i )
162 raises (SALOME::SALOME_Exception);
164 Hexa findHexa( in Vertex p1, in Vertex p2 )
165 raises (SALOME::SALOME_Exception);
172 Vector addVector( in double dx, in double dy, in double dz )
173 raises (SALOME::SALOME_Exception);
175 Vector addVectorVertices( in Vertex v1, in Vertex v2 )
176 raises (SALOME::SALOME_Exception);
179 raises (SALOME::SALOME_Exception);
181 Vector getVector( in long i )
182 raises (SALOME::SALOME_Exception);
188 Cylinder addCylinder( in Vertex base, in Vector direction, in double radius, in double height )
189 raises (SALOME::SALOME_Exception);
192 raises (SALOME::SALOME_Exception);
194 Cylinder getCylinder( in long i )
195 raises (SALOME::SALOME_Exception);
201 Pipe addPipe( in Vertex base, in Vector direction,
202 in double int_radius, in double ext_radius,
204 raises (SALOME::SALOME_Exception);
207 raises (SALOME::SALOME_Exception);
209 Pipe getPipe( in long i )
210 raises (SALOME::SALOME_Exception);
216 boolean removeHexa( in Hexa h )
217 raises (SALOME::SALOME_Exception);
219 boolean removeConnectedHexa( in Hexa h )
220 raises (SALOME::SALOME_Exception);
225 Elements makeCartesian( in Vertex pt,
226 in Vector vx, in Vector vy, in Vector vz,
227 in long nx, in long ny, in long nz)
228 raises (SALOME::SALOME_Exception);
230 Elements makeCartesian1( in Vertex v,
232 in long px, in long py, in long pz,
233 in long mx, in long my, in long mz )
234 raises (SALOME::SALOME_Exception);
239 Elements makeCylindrical( in Vertex pt,
240 in Vector vex, in Vector vez,
241 in double dr, in double da, in double dl,
242 in long nr, in long na, in long nl,
244 raises (SALOME::SALOME_Exception);
247 Grille cylindrique (variante)
249 Elements makeCylindricals( in Vertex pt,
250 in Vector vex, in Vector vez,
251 in RealVector tdr, in RealVector tda, in RealVector tdl,
253 raises (SALOME::SALOME_Exception);
259 Elements makeSpherical( in Vertex pt,
263 raises (SALOME::SALOME_Exception);
267 Cylindre decoupe en blocs
269 // Elements makeCylinder( in Cylinder cyl, in long nr, in long na, in long nl )
270 // raises (SALOME::SALOME_Exception);//CS_TODO
271 Elements makeCylinder( in Cylinder cyl, in Vector vr, in long nr, in long na, in long nl )
272 raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
276 Tuyau decoupe en blocs
278 Elements makePipe( in Pipe p, in Vector v, in long nr, in long na, in long nl )
279 raises (SALOME::SALOME_Exception);
282 2 Cylindres en T decoupes en blocs
284 CrossElements makeCylinders( in Cylinder c1, in Cylinder c2 )
285 raises (SALOME::SALOME_Exception);
288 2 Tuyau decoupe en intersection decoupees en blocs
290 CrossElements makePipes( in Pipe p1, in Pipe p2 )
291 raises (SALOME::SALOME_Exception);
294 Prismer des quadrangles
296 Elements prismQuad( in Quad qd, in Vector v, in long nb )
297 raises (SALOME::SALOME_Exception);
299 Elements prismQuads( in Quads qds, in Vector v, in long nb )
300 raises (SALOME::SALOME_Exception);
302 Elements prismQuadsVec (in Quads qds, in Vector v, in RealVector thaut,
304 raises (SALOME::SALOME_Exception);
306 Elements joinQuad( in Quad qa, in Quad qb,
307 in Vertex va1, in Vertex vb1,
308 in Vertex va2, in Vertex vb2,
310 raises (SALOME::SALOME_Exception);
312 Elements joinQuads( in Quads qds,
314 in Vertex va1, in Vertex vb1,
315 in Vertex va2, in Vertex vb2,
317 raises (SALOME::SALOME_Exception);
320 Elements revolutionQuads( in Quads qds, in Vertex ori, in Vector dir,
321 in RealVector angles)
322 raises (SALOME::SALOME_Exception);
324 Elements replace( in Quads qds, in Vertex p1, in Vertex c1,
325 in Vertex p2, in Vertex c2, in Vertex p3, in Vertex c3)
326 raises (SALOME::SALOME_Exception);
328 Elements makeSphere (in Vertex center, in Vector vx, in Vector vz,
329 in double radius, in double radhole,
331 in long nrad, in long nang, in long nhaut)
332 raises (SALOME::SALOME_Exception);
334 Elements makePartSphere (in Vertex center, in Vector vx, in Vector vz,
335 in double radius, in double radhole,
336 in Vertex plorig, in double angle,
337 in long nrad, in long nang, in long nhaut)
338 raises (SALOME::SALOME_Exception);
340 Elements makeRind (in Vertex center, in Vector vx, in Vector vz,
341 in double radext, in double radint, in double radhole,
343 in long nrad, in long nang, in long nhaut)
344 raises (SALOME::SALOME_Exception);
346 Elements makePartRind (in Vertex center, in Vector vx, in Vector vz,
347 in double radext, in double radint, in double radhole,
348 in Vertex plorig, in double angle,
349 in long nrad, in long nang, in long nhaut)
350 raises (SALOME::SALOME_Exception);
354 // Fusionner 2 elements de meme nature //CS_NOT_SPEC
357 // Elements mergeQuads( in Quad qa, in Quad qb,
358 // in Vertex va1, in Vertex vb1,
359 // in Vertex va2, in Vertex vb2 )
360 // raises (SALOME::SALOME_Exception);
362 long mergeQuads( in Quad qa, in Quad qb,
363 in Vertex va1, in Vertex vb1,
364 in Vertex va2, in Vertex vb2 )
365 raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
368 // Elements mergeEdges( in Edge e1, in Edge e2,
369 // in Vertex v1, in Vertex v2 )
370 // raises (SALOME::SALOME_Exception);
372 long mergeEdges( in Edge e1, in Edge e2,
373 in Vertex v1, in Vertex v2 )
374 raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
376 // Elements mergeVertices( in Vertex v1, in Vertex v2 )
377 // raises (SALOME::SALOME_Exception);
378 long mergeVertices( in Vertex v1, in Vertex v2 )
379 raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
383 Deconnecter des elements du modele
385 Elements disconnectQuad( in Hexa h, in Quad q )
386 raises (SALOME::SALOME_Exception);
388 Elements disconnectEdge( in Hexa h, in Edge e )
389 raises (SALOME::SALOME_Exception);
391 Elements disconnectVertex( in Hexa h, in Vertex v )
392 raises (SALOME::SALOME_Exception);
394 Elements disconnectEdges( in Hexas th, in Edges te )
395 raises (SALOME::SALOME_Exception);
398 Couper des hexaedres du modele
400 Elements cut( in Edge e, in long nb_of_cuts )
401 raises (SALOME::SALOME_Exception);
404 Make elements by transforming elements
406 // Elements makeTranslation( in Elements e, in Vector vec )
407 // raises (SALOME::SALOME_Exception);
408 Elements makeTranslation( in Elements l, in Vector vec )
409 raises (SALOME::SALOME_Exception);
412 Elements makeRotation (in Elements l, in Vertex ver, in Vector vec, in double angle)
413 raises (SALOME::SALOME_Exception);
414 Elements makeScale (in Elements e, in Vertex ver, in double k )
415 raises (SALOME::SALOME_Exception);
417 Elements makeSymmetryPoint (in Elements e, in Vertex ver)
418 raises (SALOME::SALOME_Exception);
420 Elements makeSymmetryLine (in Elements e, in Vertex ver, in Vector vec)
421 raises (SALOME::SALOME_Exception);
423 Elements makeSymmetryPlane (in Elements e, in Vertex ver, in Vector vec)
424 raises (SALOME::SALOME_Exception);
427 Modify elements by transforming elements
429 // void performTranslation(in Elements e, in Vector vec)
430 // raises (SALOME::SALOME_Exception);
432 void performTranslation(in Elements l, in Vector vec)
433 raises (SALOME::SALOME_Exception);
435 void performRotation(in Elements l, in Vertex ver, in Vector vec, in double angle)
436 raises (SALOME::SALOME_Exception);
438 void performScale(in Elements e, in Vertex ver, in double k)
439 raises (SALOME::SALOME_Exception);
441 void performSymmetryPoint(in Elements e, in Vertex ver)
442 raises (SALOME::SALOME_Exception);
444 void performSymmetryLine(in Elements e, in Vertex ver, in Vector vec)
445 raises (SALOME::SALOME_Exception);
447 void performSymmetryPlane(in Elements e, in Vertex ver, in Vector vec)
448 raises (SALOME::SALOME_Exception);
457 // Creer, editer et supprimer un groupe
459 // HexaGroup addHexaGroup( in string name )
460 Group addHexaGroup( in string name )
461 raises (SALOME::SALOME_Exception);
463 // QuadGroup addQuadGroup( in string name )
464 Group addQuadGroup( in string name )
465 raises (SALOME::SALOME_Exception);
467 // EdgeGroup addEdgeGroup( in string name )
468 Group addEdgeGroup( in string name )
469 raises (SALOME::SALOME_Exception);
471 // HexaNodeGroup addHexaNodeGroup( in string name )
472 Group addHexaNodeGroup( in string name )
473 raises (SALOME::SALOME_Exception);
475 // QuadNodeGroup addQuadNodeGroup( in string name )
476 Group addQuadNodeGroup( in string name )
477 raises (SALOME::SALOME_Exception);
479 // EdgeNodeGroup addEdgeNodeGroup( in string name )
480 Group addEdgeNodeGroup( in string name )
481 raises (SALOME::SALOME_Exception);
483 // VertexNodeGroup addVertexNodeGroup( in string name )
484 Group addVertexNodeGroup( in string name )
485 raises (SALOME::SALOME_Exception);
487 long removeGroup( in Group g)
488 raises (SALOME::SALOME_Exception);
491 raises (SALOME::SALOME_Exception);
493 Group getGroup( in long i )
494 raises (SALOME::SALOME_Exception);
496 Group findGroup( in string name )
497 raises (SALOME::SALOME_Exception);
502 Definir une loi de discretisation
504 Law addLaw( in string name, in long nb_nodes )
505 raises (SALOME::SALOME_Exception);
508 raises (SALOME::SALOME_Exception);
510 Law getLaw( in long i )
511 raises (SALOME::SALOME_Exception);
513 void removeLaw( in Law l )
514 raises (SALOME::SALOME_Exception);
516 Law findLaw( in string name )
517 raises (SALOME::SALOME_Exception);
521 Discretization defined on the model of blocks
523 long countPropagation()
524 raises (SALOME::SALOME_Exception);
526 Propagation getPropagation( in long i )
527 raises (SALOME::SALOME_Exception);
529 Propagation findPropagation( in Edge e )
530 raises (SALOME::SALOME_Exception);
537 // Ajouts 05/09/20011
539 long countUsedVertex()
540 raises (SALOME::SALOME_Exception);
542 raises (SALOME::SALOME_Exception);
544 raises (SALOME::SALOME_Exception);
546 raises (SALOME::SALOME_Exception);
548 Vertex getUsedVertex( in long i )
549 raises (SALOME::SALOME_Exception);
550 Edge getUsedEdge( in long i )
551 raises (SALOME::SALOME_Exception);
552 Quad getUsedQuad( in long i )
553 raises (SALOME::SALOME_Exception);
554 Hexa getUsedHexa( in long i )
555 raises (SALOME::SALOME_Exception);
557 Hexa addHexa5Quads (in Quad q1, in Quad q2, in Quad q3, in Quad q4,
558 in Quad q5) raises (SALOME::SALOME_Exception);
559 Hexa addHexa4Quads ( in Quad q1, in Quad q2, in Quad q3, in Quad q4)
560 raises (SALOME::SALOME_Exception);
561 Hexa addHexa3Quads ( in Quad q1, in Quad q2, in Quad q3)
562 raises (SALOME::SALOME_Exception);
563 Hexa addHexa2Quads ( in Quad q1, in Quad q2)
564 raises (SALOME::SALOME_Exception);
566 boolean removeQuad( in Quad q )
567 raises (SALOME::SALOME_Exception);//CS_NOT_SPEC
568 boolean removeElements( in Elements b )
569 raises (SALOME::SALOME_Exception);
571 void clearAssociation ()
572 raises (SALOME::SALOME_Exception);
576 NewShape addShape (in GEOM::GEOM_Object geometry, in string name)
577 raises (SALOME::SALOME_Exception);
579 NewShape getShape (in long nro) raises (SALOME::SALOME_Exception);
582 raises (SALOME::SALOME_Exception);
584 long associateOpenedLine (in Edges mlines,
585 in Shapes glines, in IntVector subids,
586 in double pstart, in double pend)
587 raises (SALOME::SALOME_Exception);
589 long associateClosedLine (in Vertex mfirst, in Edges mlines,
590 in Shapes glines, in IntVector subids,
591 in double pstart, in boolean inv)
592 raises (SALOME::SALOME_Exception);
594 2 Cylindres en T decoupes en blocs (Hexa5)
596 Elements makeBiCylinder ( in Cylinder c1, in Cylinder c2 )
597 raises (SALOME::SALOME_Exception);
600 2 Tuyau decoupe en intersection decoupees en blocs (Hexa5)
602 Elements makeBiPipe ( in Pipe p1, in Pipe p2 )
603 raises (SALOME::SALOME_Exception);