0024428: Implementation of LGPL license
[occt.git] / src / BRepFill / BRepFill.cdl
1 -- Created on: 1994-03-03
2 -- Created by: Joelle CHAUVET
3 -- Copyright (c) 1994-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and / or modify it
9 -- under the terms of the GNU Lesser General Public version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 -- Modified:    Mon Nov  3 10:24:07 1997
18 --              new class CurveConstraint
19 -- Modified:    Mon Jan 12 10:46:37 1998
20 --              new method Organize
21 -- Modified:    Mon Feb 23 09:28:33 1998
22 --              new methods SameNumber, ComputeACR, InsertACR
23 --              for sections with different number of elements
24 -- Modified:    Thu Apr 30 15:27:04 1998
25 --              methods Organize and SameNumber are dispatched in
26 --              new methods SearchOrigin and SameNumberByACR for open wires
27 --              and SameNumberByPolarMethod and ComputeOrigin for closed wires
28 -- Modified:    Tue Nov  3 10:41:06 1998
29 --              add classe CompatibleWires
30
31
32 package BRepFill
33
34
35 uses
36     MMgt,
37     TCollection,
38     TColStd,
39     GeomAbs,
40     gp, 
41     Bnd,
42     TopLoc,
43     TColgp,
44     MAT,
45     Geom2d,
46     TColGeom2d,
47     TopAbs,
48     TopoDS,
49     TopTools,
50     Geom,
51     TColGeom,
52     Geom2dAdaptor,
53     Approx,
54     Bisector,
55     BRep,
56     BRepTools,
57     BRepAlgo,
58     BRepSweep,
59     GeomFill,
60     BRepMAT2d,
61     StdFail, 
62     GeomPlate, 
63     Adaptor3d, 
64     Law, 
65     GeomLProp
66
67 is
68     enumeration TransitionStyle 
69     is Modified, Right, Round end; 
70     
71     enumeration TypeOfContact
72     is NoContact, Contact, ContactOnBorder end;
73     
74 --    private class FilledPair;
75         ---Purpose: A pair of bound shapes with the result.
76
77     
78     class Generator;
79            ---Purpose: Compute a topological surface ( a  shell) using
80            --          generating wires. The face of the shell will be
81            --          ruled surfaces through the wires.
82            --          The wires must have the same number of edges.
83        
84     deferred class SectionLaw; 
85         class ShapeLaw; 
86         class NSections; 
87           
88     class  Draft;
89      
90     deferred  class LocationLaw;  
91         class DraftLaw;
92         class Edge3DLaw; 
93         class EdgeOnSurfLaw;
94         class ACRLaw; 
95
96     class Pipe;
97           ---Purpose: Computes  a   topological  shape  using  a  wire
98           --          (spine) and a shape (profile).
99     class PipeShell; 
100           ---Purpose: Computes a topological shell using some wires --
101           --          (spines and profiles) and diplacement option
102           
103
104     class Evolved;
105           ---Purpose: Computes  an evolved  volum using  a  generating
106           --          wire and a profile.
107
108     class Sweep; 
109           ---Purpose: Computes an  Sweep  shell using a  generating
110           --          wire, an SectionLaw and an LocationLaw.
111
112  
113     class CompatibleWires;
114         ---Purpose: Computes Wires with good orientation and origin in order
115           --        to generate a shell not twisted.
116
117
118     class OffsetWire;
119         ---Purpose: Computes the offset of a Wire or the Wires contained
120         --          in a Face.
121         --          The Wire or the Face must be planar.
122
123     class OffsetAncestors;
124
125
126     class ListOfOffsetWire instantiates 
127         List from TCollection (OffsetWire from BRepFill);
128     private class ApproxSeewing;
129
130     private class MultiLine;
131    
132     private class MultiLineTool;
133     
134     private class ComputeCLine instantiates 
135         ComputeCLine from Approx ( MultiLine, MultiLineTool);
136         
137
138     private class TrimSurfaceTool;
139           ---Purpose: Compute the Pcurves and  the 3d curves resulting
140           --          of the trimming of a face by an extruded surface.
141
142     private class TrimEdgeTool;
143           ---Purpose: Geometric Tool using to construct Offset Wires.
144      
145     private class  SectionPlacement;  
146      
147     private class  Section;  
148
149     --class  TrimCorner;
150
151 --modified by NIZHNY-MKK  Tue Oct 21 17:43:15 2003
152     class TrimShellCorner;
153                              
154     private  class  SequenceOfSection  instantiates   
155         Sequence  from TCollection (Section); 
156         
157     class DataMapOfNodeDataMapOfShapeShape instantiates 
158         DataMap from TCollection (Node                from MAT,
159                                   DataMapOfShapeShape from TopTools,
160                                   MapTransientHasher  from TColStd );
161    
162     class DataMapOfNodeShape instantiates 
163         DataMap from TCollection (Node                from MAT,
164                                   Shape               from TopoDS,
165                                   MapTransientHasher  from TColStd );
166                                   
167     class DataMapOfShapeDataMapOfShapeListOfShape instantiates
168         DataMap from TCollection (Shape                      from TopoDS,
169                                   DataMapOfShapeListOfShape  from TopTools,
170                                   ShapeMapHasher             from TopTools ); 
171                                   
172     class DataMapOfShapeSequenceOfReal  instantiates
173                 DataMap from TCollection (Shape          from TopoDS,
174                                           SequenceOfReal from TColStd,
175                                           ShapeMapHasher from TopTools );
176
177     class DataMapOfShapeSequenceOfPnt   instantiates
178                 DataMap from TCollection (Shape          from TopoDS,
179                                           SequenceOfPnt  from TColgp,
180                                           ShapeMapHasher from TopTools ); 
181
182     class DataMapOfOrientedShapeListOfShape instantiates
183             DataMap from TCollection (Shape                  from TopoDS,
184                                       ListOfShape            from TopTools,  
185                                       OrientedShapeMapHasher from TopTools); 
186
187     class IndexedDataMapOfOrientedShapeListOfShape instantiates
188             IndexedDataMap from TCollection (Shape                  from TopoDS,
189                                              ListOfShape            from TopTools,  
190                                              OrientedShapeMapHasher from TopTools); 
191
192     class CurveConstraint ;
193         ---Purpose: same as CurveConstraint from GeomPlate
194         --          with BRepAdaptor_Surface instead of 
195         --          GeomAdaptor_Surface 
196         -- inherits CurveConstraint  from  GeomPlate         
197                                       
198     class Filling; 
199         ---Purpose: N-Side Filling
200         --  This algorithm avoids to build a face from:
201         --  * a set of edges defining the bounds of the face and some
202         --    constraints the surface of the face has to satisfy
203         --  * a set of edges and points defining some constraints
204         --    the support surface has to satisfy
205         --  * an initial surface to deform for satisfying the constraints
206         --  * a set of parameters to control the constraints.   
207     
208     private class FaceAndOrder;
209     
210     private class EdgeFaceAndOrder;
211     
212     private class SequenceOfFaceAndOrder instantiates
213         Sequence from TCollection (FaceAndOrder from BRepFill);
214     
215     private class SequenceOfEdgeFaceAndOrder instantiates
216         Sequence from TCollection (EdgeFaceAndOrder from BRepFill);
217                                       
218     Face( Edge1 : Edge from TopoDS;
219           Edge2 : Edge from TopoDS )
220           ---Purpose: Computes a ruled surface between two edges.
221     returns Face from TopoDS;
222
223     Shell( Wire1 : Wire from TopoDS;
224            Wire2 : Wire from TopoDS )
225            ---Purpose: Computes a ruled surface between two wires.
226            --          The wires must have the same number of edges.
227     returns Shell from TopoDS;    
228     
229     Axe (Spine       :        Shape   from TopoDS; 
230          Profile     :        Wire    from TopoDS; 
231          AxeProf     : in out Ax3     from  gp;
232          ProfOnSpine : in out Boolean from Standard;
233          Tol         :        Real    from Standard);
234            ---Purpose: Computes  <AxeProf>  as Follow. <Location> is 
235            --          the Position of the nearest vertex V  of <Profile>
236            --          to <Spine>.<XDirection> is confused with the tangent
237            --          to <Spine> at the projected point of V on the Spine.
238            --          <Direction> is normal to <Spine>.
239            --          <Spine> is a plane wire or a plane face.
240
241            --          <ProfOnSpine> is <False> if the distance
242            --          between <Profile> and <Spine> is high to <Tol>.
243            
244       
245     SearchOrigin( W : in out Wire from TopoDS; 
246                   P : Pnt  from  gp; 
247                   V : Vec  from  gp; 
248                   Tol  :  Real)  is  private;
249            ---Purpose: Computes origins and orientation on a closed wire
250           
251            
252     ComputeACR( wire : Wire from TopoDS; 
253                 ACR  : out  Array1OfReal from TColStd );
254            ---Purpose:  Compute ACR on a  wire
255            
256     InsertACR( wire     : Wire from TopoDS; 
257                ACRcuts  : Array1OfReal from TColStd; 
258                prec     : Real  from  Standard )
259            ---Purpose:  Insert ACR on a  wire
260     returns Wire from TopoDS;              
261            
262
263 end BRepFill;
264
265
266
267
268
269
270