Integration of OCCT 6.5.0 from SVN
[occt.git] / src / BRepTools / BRepTools.cdl
1 -- File:        BRepTools.cdl
2 -- Created:     Fri Aug 28 18:54:27 1992
3 -- Author:      Remi LEQUETTE
4 --              <rle@phylox>
5 ---Copyright:    Matra Datavision 1992
6
7
8 package BRepTools 
9
10         ---Level : Public. 
11         --  All methods of all  classes will be public.
12
13         ---Purpose: The BRepTools package provides  utilities for BRep
14         --          data structures.
15         --          
16         --          * WireExplorer : A tool to explore the topology of
17         --          a wire in the order of the edges.
18         --          
19         --          * ShapeSet :  Tools used for  dumping, writing and
20         --          reading.
21         --          
22         --          * UVBounds : Methods to compute the  limits of the
23         --          boundary  of a  face,  a wire or   an edge in  the
24         --          parametric space of a face.
25         --          
26         --          *  Update : Methods  to call when   a topology has
27         --          been created to compute all missing data.
28         --          
29         --          * UpdateFaceUVPoints  :  Method to  update  the UV
30         --          points stored   with  the edges   on a face.  This
31         --          method ensure that connected  edges  have the same
32         --          UV point on their common extremity.
33         --          
34         --          * Compare : Method to compare two vertices.
35         --          
36         --          * Compare : Method to compare two edges.
37         --          
38         --          * OuterWire : A method to find the outer wire of a
39         --          face.
40         --          
41         --          * OuterShell : A method to find the outer shell of
42         --          a solid.
43         --          
44         --          * Map3DEdges : A method to map all the 3D Edges of
45         --          a Shape.
46         --          
47         --          * Dump : A method to dump a BRep object.
48         --          
49
50 uses
51     BRep,
52     TopExp,
53     TopTools,
54     TopoDS,
55     TopAbs,
56     TopLoc,
57     GeomAbs,
58     GeomTools,
59     Geom,
60     Geom2d,
61     gp,
62     Bnd,
63     TColgp,
64     TColStd,
65     TCollection,
66     MMgt,
67     Message
68
69 is
70
71     class WireExplorer;
72         ---Purpose: To explore the 3D or the UV topology of a Face.
73     
74     deferred class Modification;
75         ---Purpose: Defines geometric modifications on a shape
76         --          ( on the faces, the edges, the vertices).
77     
78     class Modifier;
79         ---Purpose: Performs geometric modifications on a shape.
80
81     class TrsfModification;
82         ---Purpose: Defines a  Modification  with  a  Trsf from   gp.
83         --          Inherited from Modification.
84
85     class NurbsConvertModification;
86         ---Purpose: Conversion des entites analytiques d'une shape
87         --          en NURBS (courbes et surface 3D) 
88         --          Inherited from Modification.
89
90     class GTrsfModification;
91         ---Purpose: Defines a  Modification  with  a  GTrsf from   gp.
92         --          Inherited from Modification.
93
94     class Substitution;
95         ---Purpose: Provides a tool to change subshapes in a shape. 
96
97     class Quilt;
98         ---Purpose: Provides a tool to glue shapes on edges.
99         --          for exemple glue faces to make a shell.
100
101   --  class Sewing;
102         ---Purpose: Provides a tool to
103         --          - identify contigous boundaries (for control
104         --            of continuity: C0, C1, ...)
105         --          - assemble contigous shapes into one shape.
106
107     --
108     --  Dump, Write, Read tools
109     
110     class ShapeSet;
111         ---Purpose: A set of BRep TShapes. Inherited from TopTools. 
112
113     class ReShape;
114      ---Purpose: Provides tools for modification of shape.
115
116     class MapOfVertexPnt2d instantiates DataMap from TCollection
117         (Shape from TopoDS,
118          SequenceOfPnt2d from TColgp,
119          ShapeMapHasher  from TopTools);
120         
121     --
122     --     Methods
123     --     
124
125     UVBounds(F : Face from TopoDS;
126              UMin, UMax, VMin, VMax : out Real);
127         ---Purpose: Returns in UMin,  UMax, VMin,  VMax  the  bounding
128         --          values in the parametric space of F.
129     
130     UVBounds(F : Face from TopoDS;
131              W : Wire from TopoDS;
132              UMin, UMax, VMin, VMax : out Real);
133         ---Purpose: Returns in UMin,  UMax, VMin,  VMax  the  bounding
134         --          values of the wire in the parametric space of F.
135     
136     UVBounds(F : Face from TopoDS;
137              E : Edge from TopoDS;
138              UMin, UMax, VMin, VMax : out Real);
139         ---Purpose: Returns in UMin,  UMax, VMin,  VMax  the  bounding
140         --          values of the edge in the parametric space of F.
141         
142     AddUVBounds(F : Face from TopoDS;
143                 B : in out Box2d from Bnd);
144         ---Purpose: Adds  to  the box <B>  the bounding values in  the
145         --          parametric space of F.
146     
147     AddUVBounds(F : Face from TopoDS;
148                 W : Wire from TopoDS;
149                 B : in out Box2d from Bnd);
150         ---Purpose: Adds  to the box  <B>  the bounding  values of the
151         --          wire in the parametric space of F.
152     
153     AddUVBounds(F : Face from TopoDS;
154                 E : Edge from TopoDS;
155                 B : in out Box2d from Bnd);
156         ---Purpose: Adds to  the box <B>  the  bounding values  of the
157         --          edge in the parametric space of F.
158
159
160     Update(V : Vertex from TopoDS);
161         ---Purpose: Update a vertex (nothing is done)
162
163     Update(E : Edge from TopoDS);
164         ---Purpose: Update an edge, compute 2d bounding boxes.
165
166     Update(W : Wire from TopoDS);
167         ---Purpose: Update a wire (nothing is done)
168
169     Update(F : Face from TopoDS);
170         ---Purpose: Update a Face, update UV points.
171
172     Update(S : Shell from TopoDS);
173         ---Purpose: Update a shell (nothing is done)
174
175     Update(S : Solid from TopoDS);
176         ---Purpose: Update a solid (nothing is done)
177
178     Update(C : CompSolid from TopoDS);
179         ---Purpose: Update a composite solid (nothing is done)
180
181     Update(C : Compound from TopoDS);
182         ---Purpose: Update a compound (nothing is done)
183
184     Update(S : Shape from TopoDS);
185         ---Purpose: Update a shape, call the corect update.
186
187
188
189     UpdateFaceUVPoints(F : Face from TopoDS);
190         ---Purpose: For  all the edges  of the face  <F> reset  the UV
191         --          points to  ensure that  connected  faces  have the
192         --          same point at there common extremity.
193
194     Clean(S: Shape from TopoDS);
195         ---Purpose: Removes all the triangulations of the faces of <S>
196         --          and removes all polygons on triangulations of the
197         --          edges.
198
199
200     Triangulation(S: Shape from TopoDS; deflec: Real)
201     returns Boolean from Standard;
202         ---Purpose: verifies that each face from the shape <S> has got
203         --          a triangulation  with a  deflection <= deflec  and
204         --          the edges a discretisation on  this triangulation.
205
206
207     Compare(V1,V2 : Vertex from TopoDS) returns Boolean;
208         ---Purpose: Returns  True if  the    distance between the  two
209         --          vertices is lower than their tolerance.
210
211     Compare(E1,E2 : Edge from TopoDS) returns Boolean;
212         ---Purpose: Returns  True if  the    distance between the  two
213         --          edges is lower than their tolerance.
214
215     OuterWire(F : Face from TopoDS) returns Wire from TopoDS;
216         ---Purpose: Returns the outer most wire of <F>. Returns a Null
217         --          wire if <F> has no wires.
218     
219     OuterShell(S : Solid from TopoDS) returns Shell from TopoDS;
220         ---Purpose: Returns the outer most shell of <S>. Returns a Null
221         --          wire if <S> has no shells.
222     
223     Map3DEdges(S    : Shape from TopoDS;
224                M    : in out IndexedMapOfShape from TopTools);
225           ---Purpose: Stores in the map  <M> all the 3D topology edges
226           --          of <S>. 
227
228     IsReallyClosed(E: Edge from TopoDS; F: Face from TopoDS)
229         ---Purpose: Verifies that the edge  <E> is found two  times on
230         --          the face <F> before calling BRep_Tool::IsClosed.
231         returns Boolean from Standard;
232
233
234     Dump(Sh : Shape from TopoDS; S : in out OStream);
235           ---Purpose: Dumps the topological structure and the geometry 
236           --          of <Sh> on the stream <S>.
237
238     Write(Sh : Shape from TopoDS; S : in out OStream;
239           PR : ProgressIndicator from Message = NULL);
240           ---Purpose: Writes <Sh> on <S> in an ASCII format.
241
242     Read(Sh : out Shape from TopoDS; S : in out IStream; 
243          B  : Builder from  BRep; PR : ProgressIndicator from Message = NULL);
244           ---Purpose: Reads a Shape  from <S> in  returns it in  <Sh>.
245           --          <B> is used to build the shape.
246
247     Write(Sh : Shape from TopoDS; File : CString;
248           PR : ProgressIndicator from Message = NULL ) returns Boolean;
249           ---Purpose: Writes <Sh> in <File>.
250
251     Read(Sh : out Shape from TopoDS; File : CString;
252          B  : Builder from  BRep; PR : ProgressIndicator from Message = NULL)
253           returns Boolean;
254           ---Purpose: Reads a Shape  from <File>,  returns it in  <Sh>.
255           --          <B> is used to build the shape.
256
257 end BRepTools;
258
259