Salome HOME
Bug 0020052: EDF 867 GEOM: Non removable extra edges are created with fuse operation...
[modules/geom.git] / src / GEOMAlgo / BlockFix_SphereSpaceModifier.cdl
1 --  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 --
3 --  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 --  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 --
6 --  This library is free software; you can redistribute it and/or
7 --  modify it under the terms of the GNU Lesser General Public
8 --  License as published by the Free Software Foundation; either
9 --  version 2.1 of the License.
10 --
11 --  This library is distributed in the hope that it will be useful,
12 --  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 --  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 --  Lesser General Public License for more details.
15 --
16 --  You should have received a copy of the GNU Lesser General Public
17 --  License along with this library; if not, write to the Free Software
18 --  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 --
20 --  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 --
22 -- File:        BlockFix_SphereSpaceModifier.cdl
23 -- Created:     Tue Dec  7 12:01:49 2004
24 -- Author:      Pavel Durandin
25 --              <det@doomox>
26 ---Copyright:   Open CASCADE SA 2004
27
28
29 class SphereSpaceModifier from BlockFix inherits Modification from BRepTools 
30
31         ---Purpose: Rotation of the parametric space of the sphere in order
32         --          to avoid the seam and degenerared edge within it
33
34 uses
35     Vertex   from TopoDS, 
36     Edge     from TopoDS,
37     Face     from TopoDS,
38     Location from TopLoc,
39     Shape    from GeomAbs,
40     Pnt      from gp,
41     Curve    from Geom,
42     Curve    from Geom2d,
43     Surface  from Geom,
44     IndexedMapOfTransient from TColStd,
45     DataMapOfShapeInteger from TopTools
46
47 is
48     
49     Create returns mutable SphereSpaceModifier from BlockFix;
50     
51     SetTolerance(me: mutable; Toler: Real);
52         ---Purpose: Sets the tolerance for recognition of geometry
53
54     NewSurface(me: mutable; F  :     Face     from TopoDS;
55                             S  : out Surface  from Geom;
56                             L  : out Location from TopLoc;
57                             Tol: out Real     from Standard;
58                             RevWires : out Boolean from Standard;
59                             RevFace  : out Boolean from Standard)
60     returns Boolean from Standard;
61         ---Purpose: Returns Standard_True if the face <F> has  been
62         --          modified. In this case, <S> is the new geometric
63         --          support of the face, <L> the new location,  <Tol>
64         --          the new tolerance.  Otherwise, returns
65         --          Standard_False, and <S>, <L>, <Tol> are  not
66         --          significant.
67         
68     NewCurve(me: mutable; E  :     Edge     from TopoDS;
69                           C  : out Curve    from Geom;
70                           L  : out Location from TopLoc;
71                           Tol: out Real     from Standard)
72     returns Boolean from Standard;
73         ---Purpose: Returns Standard_True  if  the edge  <E> has  been
74         --          modified.  In this case,  <C> is the new geometric
75         --          support of the  edge, <L> the  new location, <Tol>
76         --          the         new    tolerance.   Otherwise, returns
77         --          Standard_False,    and  <C>,  <L>,   <Tol> are not
78         --          significant.
79
80     NewPoint(me: mutable; V  :     Vertex   from TopoDS;
81                           P  : out Pnt      from gp;
82                           Tol: out Real     from Standard)
83     returns Boolean from Standard;
84         ---Purpose: Returns  Standard_True if the  vertex <V> has been
85         --          modified.  In this  case, <P> is the new geometric
86         --          support of the vertex,   <Tol> the new  tolerance.
87         --          Otherwise, returns Standard_False, and <P>,  <Tol>
88         --          are not significant.
89
90     NewCurve2d(me: mutable; E    :     Edge     from TopoDS;
91                             F    :     Face     from TopoDS;
92                             NewE :     Edge     from TopoDS;
93                             NewF :     Face     from TopoDS;
94                             C    : out Curve    from Geom2d;
95                             Tol  : out Real     from Standard)
96     returns Boolean from Standard;
97         ---Purpose: Returns Standard_True if  the edge  <E> has a  new
98         --          curve on surface on the face <F>.In this case, <C>
99         --          is the new geometric support of  the edge, <L> the
100         --          new location, <Tol> the new tolerance.
101         --          
102         --          Otherwise, returns  Standard_False, and <C>,  <L>,
103         --          <Tol> are not significant.
104         --          
105         --          <NewE> is the new  edge created from  <E>.  <NewF>
106         --          is the new face created from <F>. They may be usefull.
107
108     NewParameter(me: mutable; V  :     Vertex from TopoDS;
109                               E  :     Edge   from TopoDS;
110                               P  : out Real   from Standard;
111                               Tol: out Real   from Standard)
112     returns Boolean from Standard;
113         ---Purpose: Returns Standard_True if the Vertex  <V> has a new
114         --          parameter on the  edge <E>. In  this case,  <P> is
115         --          the parameter,    <Tol>  the     new    tolerance.
116         --          Otherwise, returns Standard_False, and <P>,  <Tol>
117         --          are not significant.
118
119     Continuity(me: mutable; E          : Edge from TopoDS;
120                             F1,F2      : Face from TopoDS;
121                             NewE       : Edge from TopoDS;
122                             NewF1,NewF2: Face from TopoDS)
123     returns Shape from GeomAbs;
124         ---Purpose: Returns the  continuity of  <NewE> between <NewF1>
125         --          and <NewF2>.
126         --          
127         --          <NewE> is the new  edge created from <E>.  <NewF1>
128         --          (resp. <NewF2>) is the new  face created from <F1>
129         --          (resp. <F2>).
130     
131     ForRotation(me: mutable; F: Face from TopoDS) returns Boolean;
132     
133 fields 
134     
135     myTolerance   : Real;
136     myMapOfFaces  : DataMapOfShapeInteger from TopTools;
137     myMapOfSpheres: IndexedMapOfTransient from TColStd;
138     --myMapOfGeom: MapOfShapeTransient from TColStd;
139
140 end SphereSpaceModifier;
141