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