1 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
18 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
22 // File : GEOM_Shape.idl
23 // Author : Lucien PIGNOLONI
25 #ifndef __GEOM_Shape__
26 #define __GEOM_Shape__
30 //-----------------------------------------------------------------//
31 // Topological types for shapes (like Open Cascade types) //
32 //-----------------------------------------------------------------//
34 enum shape_type { COMPOUND, COMPSOLID, SOLID, SHELL,
35 FACE, WIRE, EDGE, VERTEX, SHAPE } ;
37 //----------------------------------------------------------------//
39 //--------------------------------------------------- ------------//
40 struct PointStruct { double x;
43 struct DirStruct { PointStruct PS ; } ; // analog to Occ Direction
45 struct AxisStruct { double x;
52 //----------------------------------------------------------------//
53 // interface GEOM_Shape methods //
54 //----------------------------------------------------------------//
60 typedef sequence<long> ListOfSubShapeID ;
61 typedef sequence<octet> TMPFile;
63 attribute string Name; // (to set and get) the name of shape (= CORBA IOR converted into a string)
64 attribute string MainName; // (to set and get) the name of mainshape (= CORBA IOR converted into a string)
66 attribute boolean IsMainShape; // (...) true if this is a main shape (not a sub shape)
67 attribute string ShapeId; // (...) the entry of the shape in geom/OCAF document
68 attribute string StudyShapeId; // (...) the entry of the shape in the study/OCAF when added
69 attribute ListOfSubShapeID Index; // (...) list of references (number) identifing the sub shapes in the main shape
70 attribute shape_type ShapeType; // (...) a topological type of the shape
72 attribute string NameType; // (...) a topological/geometrical name of the shape
74 //Transfer resulting shape to client as sequence of bytes
75 //client can extract shape from stream using BrepTools::Read function
76 TMPFile GetShapeStream();
78 // the generator engine