Salome HOME
Merge from V6_main 13/12/2012
[modules/hexablock.git] / idl / Document.idl
index 8cb107160688903facb86d7d64b10d6b1f8533cc..15d1f3b6467b031a86980a98ddd9b61249d51e50 100755 (executable)
@@ -1,3 +1,21 @@
+// Copyright (C) 2009-2012  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 #ifndef __Document_idl__
 #define __Document_idl__
 /*!
 #include "SALOME_Exception.idl"
 #include "SALOME_GenericObj.idl"
 
-// #include "GEOM_Gen.idl"
+#include "GEOM_Gen.idl"
+
+#include "Edge.idl"
+#include "Hexa.idl"
 
 /*!  \ingroup EXAMPLES
 
-This package contains the interface HEXABLOCK_ORB used 
+This package contains the interface HEXABLOCK_ORB used
 for  %HEXABLOCK component as an example in %SALOME application.
 */
 module HEXABLOCK_ORB
@@ -30,28 +51,39 @@ module HEXABLOCK_ORB
   interface Group;
   interface Propagation;
 
-  typedef sequence<Quad>  Quads;
+  interface NewShape;
+
+  typedef sequence<Quad>     Quads;
+  typedef sequence<long>     IntVector;
+  typedef sequence<double>   RealVector;
+  typedef sequence<NewShape> NewShapes;
+
+  typedef GEOM::GEOM_Object  Shape;
+  typedef sequence<GEOM::GEOM_Object>  Shapes;
 
   interface Document : SALOME::GenericObj
   {
     void purge()
       raises (SALOME::SALOME_Exception);
+
+    void dump()
+      raises (SALOME::SALOME_Exception); //CS_NOT_SPEC
     /*!
     */
-    string getFile()
+    string getName()
       raises (SALOME::SALOME_Exception);
 
-    void setFile( in string fileName )
+    long setName (in string name )
       raises (SALOME::SALOME_Exception);
 
-    boolean isSavedFile()
+    long save( in string fileName )
       raises (SALOME::SALOME_Exception);
 
-//     void saveFile() 
-    long saveFile() //CS_NOT_SPEC
+    long saveVtk( in string fname );
+
+    void setLevel (in long debug_level )
       raises (SALOME::SALOME_Exception);
 
-    long saveVtk( in string fname );//CS_NOT_SPEC
 
     /*!
     */
@@ -75,11 +107,14 @@ module HEXABLOCK_ORB
 
 
     /*!
-        Arêtes
+        Aretes
     */
     Edge addEdge( in Vertex v0, in Vertex v1 )
         raises (SALOME::SALOME_Exception);
 
+    Edge addEdgeVector ( in Vertex v0, in Vector w1 )
+        raises (SALOME::SALOME_Exception);
+
     long countEdge()
         raises (SALOME::SALOME_Exception);
 
@@ -111,7 +146,7 @@ module HEXABLOCK_ORB
 
 
     /*!
-        Hexaèdre
+        Hexaedre
     */
     Hexa addHexa( in Quad q0, in Quad q1, in Quad q2, in Quad q3, in Quad q4, in Quad q5 )
         raises (SALOME::SALOME_Exception);
@@ -140,11 +175,11 @@ module HEXABLOCK_ORB
     Vector addVectorVertices( in Vertex v1, in Vertex v2 )
         raises (SALOME::SALOME_Exception);
 
-//     long countVector()
-//         raises (SALOME::SALOME_Exception);
-// 
-//     Vector getVector( in long i )
-//         raises (SALOME::SALOME_Exception);
+    long countVector()
+         raises (SALOME::SALOME_Exception);
+
+    Vector getVector( in long i )
+           raises (SALOME::SALOME_Exception);
 
 
     /*!
@@ -153,26 +188,26 @@ module HEXABLOCK_ORB
     Cylinder addCylinder( in Vertex base, in Vector direction, in double radius, in double height )
         raises (SALOME::SALOME_Exception);
 
-//     long countCylinder()
-//         raises (SALOME::SALOME_Exception);
-// 
-//     Cylinder getCylinder( in long i )
-//         raises (SALOME::SALOME_Exception);
+    long countCylinder()
+         raises (SALOME::SALOME_Exception);
+
+    Cylinder getCylinder( in long i )
+             raises (SALOME::SALOME_Exception);
 
 
     /*!
         Pipe
     */
     Pipe addPipe( in Vertex base, in Vector direction,
-                  in double int_radius, in double ext_radius, 
+                  in double int_radius, in double ext_radius,
                   in double height )
         raises (SALOME::SALOME_Exception);
 
-//     long countPipe()
-//         raises (SALOME::SALOME_Exception);
-// 
-//     Pipe getPipe( in long i )
-//         raises (SALOME::SALOME_Exception);
+     long countPipe()
+          raises (SALOME::SALOME_Exception);
+
+     Pipe getPipe( in long i )
+          raises (SALOME::SALOME_Exception);
 
 
     /*!
@@ -185,14 +220,14 @@ module HEXABLOCK_ORB
         raises (SALOME::SALOME_Exception);
 
    /*!
-       Grille cartésiennes
+       Grille cartesiennes
    */
-    Elements makeCartesian( in Vertex pt, 
+    Elements makeCartesian( in Vertex pt,
             in Vector vx, in Vector vy, in Vector vz,
             in long nx, in long ny, in long nz)
         raises (SALOME::SALOME_Exception);
 
-    Elements makeCartesian1( in Vertex v, 
+    Elements makeCartesian1( in Vertex v,
             in Vector v1,
             in long px, in long py, in long pz,
             in long mx, in long my, in long mz )
@@ -209,50 +244,51 @@ module HEXABLOCK_ORB
         raises (SALOME::SALOME_Exception);
 
     /*!
-        Grille sphérique
+        Grille cylindrique (variante)
+    */
+    Elements makeCylindricals( in Vertex pt,
+          in Vector vex, in Vector vez,
+          in RealVector tdr, in RealVector tda, in RealVector tdl,
+          in boolean fill )
+        raises (SALOME::SALOME_Exception);
+
+    /*!
+        Grille spherique
     */
-//     Elements makeSpherical( in Vertex pt,
-//           in double dx,
-//           in double dy,
-//           in double dz,
-//           in long n )
-//         raises (SALOME::SALOME_Exception); //CS_TODO
 
     Elements makeSpherical( in Vertex pt,
-        in Vector dv,
+        in double rayon,
         in long n,
         in double k )
-        raises (SALOME::SALOME_Exception); //CS_TO_DEL
+        raises (SALOME::SALOME_Exception);
 
 
     /*!
-        Cylindre découpé en blocs
+        Cylindre decoupe en blocs
     */
 //     Elements makeCylinder( in Cylinder cyl, in long nr, in long na, in long nl )
 //         raises (SALOME::SALOME_Exception);//CS_TODO
     Elements makeCylinder( in Cylinder cyl, in Vector vr, in long nr, in long na, in long nl )
         raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
-   
+
 
     /*!
-        Tuyau découpé en blocs
+        Tuyau decoupe en blocs
     */
-//     Elements makePipe( in Pipe p, in long nr, in long na, in long nl )
-//         raises (SALOME::SALOME_Exception);
-
+    Elements makePipe( in Pipe p, in Vector v, in long nr, in long na, in long nl )
+        raises (SALOME::SALOME_Exception);
 
     /*!
-        2 Cylindres en T découpés en blocs
+        2 Cylindres en T decoupes en blocs
     */
     CrossElements makeCylinders( in Cylinder c1, in Cylinder c2 )
-      raises (SALOME::SALOME_Exception);//CS_NEW CS_NOT_SPEC
+      raises (SALOME::SALOME_Exception);
 
     /*!
-        2 Tuyau découpé en intersection découpés en blocs
+        2 Tuyau decoupe en intersection decoupees en blocs
     */
-//     Elements makePipes( in Pipe p1, in long n1r, in long n1a, in long n1l,
-//                         in Pipe p2, in long n2r, in long n2a, in long n2l )
-//         raises (SALOME::SALOME_Exception);
+    CrossElements makePipes( in Pipe p1, in Pipe p2 )
+        raises (SALOME::SALOME_Exception);
 
     /*!
         Prismer des quadrangles
@@ -261,7 +297,11 @@ module HEXABLOCK_ORB
         raises (SALOME::SALOME_Exception);
 
     Elements prismQuads( in Quads qds, in Vector v, in long nb )
-        raises (SALOME::SALOME_Exception); //CS_NEW
+        raises (SALOME::SALOME_Exception);
+
+    Elements prismQuadsVec (in Quads qds, in Vector v, in RealVector thaut,
+                            in long opt )
+        raises (SALOME::SALOME_Exception);
 
     Elements joinQuad( in Quad qa, in Quad qb,
                        in Vertex va1, in Vertex vb1,
@@ -275,10 +315,43 @@ module HEXABLOCK_ORB
                         in Vertex va2, in Vertex vb2,
                         in long nb )
         raises (SALOME::SALOME_Exception);
-// 
-// 
+
+                // HexaBlock V3
+    Elements revolutionQuads( in Quads qds, in Vertex ori, in Vector dir,
+                              in RealVector angles)
+        raises (SALOME::SALOME_Exception);
+
+    Elements replace( in Quads qds, in Vertex p1, in Vertex c1,
+                      in Vertex p2, in Vertex c2, in Vertex p3, in Vertex c3)
+        raises (SALOME::SALOME_Exception);
+
+    Elements makeSphere (in Vertex center, in Vector vx, in Vector vz,
+                         in double radius, in double radhole,
+                         in Vertex plorig,
+                         in long nrad, in long nang, in long nhaut)
+        raises (SALOME::SALOME_Exception);
+
+    Elements makePartSphere (in Vertex center, in Vector vx, in Vector vz,
+                             in double  radius, in double radhole,
+                             in Vertex plorig, in double angle,
+                             in long nrad, in long nang, in long nhaut)
+        raises (SALOME::SALOME_Exception);
+
+    Elements makeRind (in Vertex center, in Vector vx, in Vector vz,
+                       in double  radext, in double radint, in double radhole,
+                       in Vertex plorig,
+                       in long nrad, in long nang, in long nhaut)
+        raises (SALOME::SALOME_Exception);
+
+    Elements makePartRind (in Vertex center, in Vector vx, in Vector vz,
+                         in double  radext, in double radint, in double radhole,
+                         in Vertex plorig, in double angle,
+                         in long nrad, in long nang, in long nhaut)
+        raises (SALOME::SALOME_Exception);
+//
+//
 //     /*!
-//         Fusionner 2 Ã©léments de même nature //CS_NOT_SPEC
+//         Fusionner 2 elements de meme nature //CS_NOT_SPEC
 //     */
 
 //     Elements mergeQuads( in Quad qa, in Quad qb,
@@ -291,7 +364,7 @@ module HEXABLOCK_ORB
                         in Vertex va2, in Vertex vb2 )
         raises (SALOME::SALOME_Exception);//CS_NOT_SPEC //CS_NEW
 
-// 
+//
 //     Elements mergeEdges( in Edge e1, in Edge e2,
 //                         in Vertex v1, in Vertex v2 )
 //         raises (SALOME::SALOME_Exception);
@@ -307,29 +380,22 @@ module HEXABLOCK_ORB
 
 
     /*!
-        Déconnecter des Ã©léments du modèle
+        Deconnecter des elements du modele
     */
-    Elements disconnectQuad( in Hexa h, in Quad q )  //CS_NOT_SPEC
-//     long disconnectQuad( in Hexa h, in Quad q )//CS_NOT_SPEC
-//         raises (SALOME::SALOME_Exception);
-//     Quad disconnectQuad( in Hexa h, in Quad q )//CS_NOT_SPEC
+    Elements disconnectQuad( in Hexa h, in Quad q )
         raises (SALOME::SALOME_Exception);
 
-    Elements disconnectEdge( in Hexa h, in Edge e )//CS_NOT_SPEC
+    Elements disconnectEdge( in Hexa h, in Edge e )
        raises (SALOME::SALOME_Exception);
-//     Elements disconnectEdge( in Hexa h, in Edge e )
-//     long disconnectEdge( in Hexa h, in Edge e ) 
-//     Edge disconnectEdge( in Hexa h, in Edge e ) //CS_NOT_SPEC
-//         raises (SALOME::SALOME_Exception);
 
-    Elements disconnectVertex( in Hexa h, in Vertex v )//CS_NOT_SPEC
-//     long disconnectVertex( in Hexa h, in Vertex v )
-//     Vertex disconnectVertex( in Hexa h, in Vertex v ) //CS_NOT_SPEC
+    Elements disconnectVertex( in Hexa h,  in Vertex v )
         raises (SALOME::SALOME_Exception);
 
+    Elements disconnectEdges( in Hexas th, in Edges te )
+       raises (SALOME::SALOME_Exception);
 
     /*!
-        Couper des hexaèdres du modèle
+        Couper des hexaedres du modele
     */
     Elements cut( in Edge e, in long nb_of_cuts )
         raises (SALOME::SALOME_Exception);
@@ -337,58 +403,58 @@ module HEXABLOCK_ORB
     /*!
         Make elements by transforming elements
     */
-//     Elements makeTranslation( in Element e, in Vector vec )
+//     Elements makeTranslation( in Elements e, in Vector vec )
 //         raises (SALOME::SALOME_Exception);
     Elements makeTranslation( in Elements l, in Vector vec )
         raises (SALOME::SALOME_Exception);
-// 
-//     Elements makeScale( in Vertex e, in Vertex ver, in double k )
-//         raises (SALOME::SALOME_Exception);
-// 
-    Elements makeRotation(in Elements l, in Vertex ver, in Vector vec, in double angle)
+//
+//
+    Elements makeRotation (in Elements l, in Vertex ver, in Vector vec, in double angle)
         raises (SALOME::SALOME_Exception);
-// 
-//     Elements makeSymmetryPoint(in Element e, in Vertex ver)
-//         raises (SALOME::SALOME_Exception);
-// 
-//     Elements makeSymmetryLine(in Element e, in Vertex ver, in Vector vec)
-//         raises (SALOME::SALOME_Exception);
-// 
-//     Elements makeSymmetryPlane(in Element e, in Vertex ver, in Vector vec)
-//         raises (SALOME::SALOME_Exception);
-// 
+    Elements makeScale (in Elements e, in Vertex ver, in double k )
+        raises (SALOME::SALOME_Exception);
+
+    Elements makeSymmetryPoint (in Elements e, in Vertex ver)
+        raises (SALOME::SALOME_Exception);
+
+    Elements makeSymmetryLine (in Elements e, in Vertex ver, in Vector vec)
+        raises (SALOME::SALOME_Exception);
+
+    Elements makeSymmetryPlane (in Elements e, in Vertex ver, in Vector vec)
+        raises (SALOME::SALOME_Exception);
+
     /*!
     Modify elements by transforming elements
     */
-//     void performTranslation(in Element e, in Vector vec)
+//     void performTranslation(in Elements e, in Vector vec)
 //         raises (SALOME::SALOME_Exception);
 
     void performTranslation(in Elements l, in Vector vec)
         raises (SALOME::SALOME_Exception);
-// 
-//     void performScale(in Element e, in Vertex ver, in double k)
-//         raises (SALOME::SALOME_Exception);
-// 
+//
     void performRotation(in Elements l, in Vertex ver, in Vector vec, in double angle)
         raises (SALOME::SALOME_Exception);
-// 
-//     void performSymmetryPoint(in Element e, in Vertex ver)
-//         raises (SALOME::SALOME_Exception);
-// 
-//     void performSymmetryLine(in Element e, in Vertex ver, in Vector vec)
-//         raises (SALOME::SALOME_Exception);
-// 
-//     void performSymmetryPlane(in Element e, in Vertex ver, in Vector vec)
-//         raises (SALOME::SALOME_Exception);
-// 
+//
+    void performScale(in Elements e, in Vertex ver, in double k)
+        raises (SALOME::SALOME_Exception);
+
+    void performSymmetryPoint(in Elements e, in Vertex ver)
+        raises (SALOME::SALOME_Exception);
+
+    void performSymmetryLine(in Elements e, in Vertex ver, in Vector vec)
+        raises (SALOME::SALOME_Exception);
+
+    void performSymmetryPlane(in Elements e, in Vertex ver, in Vector vec)
+        raises (SALOME::SALOME_Exception);
+//
 //     /*!
 //                     --------
 //                     MAILLAGE
 //                     --------
 //     */
-// 
+//
 //     /*!
-//         Créer, Ã©diter et supprimer un groupe
+//         Creer, editer et supprimer un groupe
 //     */
 //     HexaGroup addHexaGroup( in string name )
     Group addHexaGroup( in string name )
@@ -433,7 +499,7 @@ module HEXABLOCK_ORB
 
 
     /*!
-        Définir une loi de discrétisation
+        Definir une loi de discretisation
     */
     Law addLaw( in string name, in long nb_nodes )
         raises (SALOME::SALOME_Exception);
@@ -452,7 +518,7 @@ module HEXABLOCK_ORB
 
 
     /*!
-        Discretization defined on the model of blocks 
+        Discretization defined on the model of blocks
     */
     long countPropagation()
         raises (SALOME::SALOME_Exception);
@@ -463,6 +529,78 @@ module HEXABLOCK_ORB
     Propagation findPropagation( in Edge e )
         raises (SALOME::SALOME_Exception);
 
+    /*!
+        Association on lines
+    */
+//       Shape
+
+//       Ajouts 05/09/20011
+
+    long countUsedVertex()
+        raises (SALOME::SALOME_Exception);
+    long countUsedEdge()
+        raises (SALOME::SALOME_Exception);
+    long countUsedQuad()
+        raises (SALOME::SALOME_Exception);
+    long countUsedHexa()
+        raises (SALOME::SALOME_Exception);
+
+    Vertex getUsedVertex( in long i )
+        raises (SALOME::SALOME_Exception);
+    Edge getUsedEdge( in long i )
+        raises (SALOME::SALOME_Exception);
+    Quad getUsedQuad( in long i )
+        raises (SALOME::SALOME_Exception);
+    Hexa getUsedHexa( in long i )
+        raises (SALOME::SALOME_Exception);
+
+    Hexa addHexa5Quads (in Quad q1, in Quad q2, in Quad q3, in Quad q4,
+                        in Quad q5) raises (SALOME::SALOME_Exception);
+    Hexa addHexa4Quads ( in Quad q1, in Quad q2, in Quad q3, in Quad q4)
+         raises (SALOME::SALOME_Exception);
+    Hexa addHexa3Quads ( in Quad q1, in Quad q2, in Quad q3)
+         raises (SALOME::SALOME_Exception);
+    Hexa addHexa2Quads ( in Quad q1, in Quad q2)
+         raises (SALOME::SALOME_Exception);
+
+    boolean removeQuad( in Quad q )
+        raises (SALOME::SALOME_Exception);//CS_NOT_SPEC
+    boolean removeElements( in Elements b )
+        raises (SALOME::SALOME_Exception);
+
+    void clearAssociation ()
+      raises (SALOME::SALOME_Exception);
+
+                    // Hexa 5
+
+    NewShape addShape (in GEOM::GEOM_Object geometry, in string name)
+             raises   (SALOME::SALOME_Exception);
+
+    NewShape getShape (in long nro) raises (SALOME::SALOME_Exception);
+
+    long countShape ()
+         raises (SALOME::SALOME_Exception);
+
+    long associateOpenedLine (in Edges  mlines,
+                              in Shapes glines, in IntVector subids,
+                              in double pstart, in double    pend)
+        raises (SALOME::SALOME_Exception);
+
+    long associateClosedLine (in Vertex mfirst, in Edges     mlines,
+                              in Shapes glines, in IntVector subids,
+                              in double pstart, in boolean   inv)
+        raises (SALOME::SALOME_Exception);
+    /*!
+        2 Cylindres en T decoupes en blocs    (Hexa5)
+    */
+    Elements makeBiCylinder ( in Cylinder c1, in Cylinder c2 )
+               raises (SALOME::SALOME_Exception);
+
+    /*!
+        2 Tuyau decoupe en intersection decoupees en blocs    (Hexa5)
+    */
+    Elements makeBiPipe ( in Pipe p1, in Pipe p2 )
+               raises (SALOME::SALOME_Exception);
   };
 };