0022922: Clean up warnings on uninitialized / unused variables
[occt.git] / src / GeomFill / GeomFill.cdl
1 -- File:        GeomFill.cdl
2 -- Created:     Tue Sep 28 11:34:33 1993
3 -- Author:      Bruno DUMORTIER
4 --              <dub@sdsun1>
5 ---Copyright:    Matra Datavision 1993
6
7         ---Purpose: Tools and Data to filling Surface and Sweep Surfaces          
8
9 package GeomFill
10
11 uses
12     TColgp,
13     TColGeom, 
14     TColGeom2d,
15     TColStd,
16     TCollection,
17     gp,
18     Geom,  
19     Geom2d,
20     GeomAbs, 
21     Convert,
22     Adaptor3d, 
23     GeomAdaptor,
24     Law, 
25     Extrema,
26     AppBlend, 
27     Approx, 
28     math,
29     MMgt,
30     StdFail
31     
32 is
33
34     enumeration FillingStyle 
35     is StretchStyle, CoonsStyle, CurvedStyle end; 
36         ---Purpose: Defines the three filling styles used in this package
37         -- -   GeomFill_Stretch - the style with the flattest patches
38         -- -   GeomFill_Coons - a rounded style of patch with
39         --   less depth than those of Curved
40         -- -   GeomFill_Curved - the style with the most rounded patches.     
41     enumeration ApproxStyle 
42     is Section, Location end;  
43      
44     enumeration  PipeError 
45     is  PipeOk,   
46         PipeNotOk,   
47         PlaneNotIntersectGuide,  
48         ImpossibleContact 
49     end;
50     
51      
52     enumeration Trihedron 
53     is IsCorrectedFrenet, IsFixed, IsFrenet, IsConstantNormal, IsDarboux, 
54      IsGuideAC,  IsGuidePlan, 
55       IsGuideACWithContact,  IsGuidePlanWithContact end;
56     
57     class Filling;
58         ---Purpose: Root class for Filling;
59
60       class Stretch;
61       
62       class Coons;
63       
64       class Curved;
65       
66       
67     class BezierCurves;
68         ---Purpose: class for Filling BezierCurves.
69         --          WARNING:
70         --            Some problems may appear with the rational Curves.
71       
72     class BSplineCurves;
73         ---Purpose: class for Filling BSplineCurves.
74         --          WARNING:
75         --            Some problems may appear with the rational Curves.
76       
77     class Profiler;
78         ---Purpose: class for evaluation of the Common BSpline Profile
79         --          from a sequence a BSplineCurves.
80         
81     class SectionGenerator;
82         ---Purpose: class for instantiation of AppBlend .
83         --          inherits Profiler.
84
85     class Line;
86         ---Purpose: class for instantiation of AppBlend
87     
88     class AppSurf instantiates AppSurf from AppBlend
89         ( SectionGenerator from GeomFill,
90           Line             from GeomFill);
91         ---Purpose: Approximate a  BSplineSurface passing by all the
92         --          curves described in the SectionGenerator
93
94
95     class SweepSectionGenerator;
96         ---Purpose: class for instantiation of AppBlend.
97         --          evaluate the sections of a sweep surface.
98
99     class AppSweep instantiates AppSurf from AppBlend
100         ( SweepSectionGenerator from GeomFill,
101           Line                  from GeomFill);
102         ---Purpose: Approximate a sweep surface passing  by  all the
103         --          curves described in the SweepSectionGenerator.
104  
105
106     class Generator;
107         ---Purpose: Create a surface using generating lines.  Inherits
108         --          profiler.  The  surface will be  a  BSplineSurface
109         --          passing  by   all  the  curves  described  in  the
110         --          generator. The VDegree of the resulting surface is
111         --          1.
112
113     class Pipe;
114         ---Purpose: Create a pipe surface.         
115
116
117     --- Family of classes providing algorithms to  fill a contour with
118     --  constraints of tangency.
119
120  
121 --    class  Draft;
122         ---Purpose: Depouille
123                 
124     class  Tensor;
125         
126
127     class ConstrainedFilling;
128     ---Purpose: class for filling  a contour of 2, 3  or 4 curves with
129     --          tangency  constaints. The  only FillingStyle  used  is
130     --          Coons.
131     --
132
133     deferred class Boundary;      -- inherits TShared
134     ---Purpose: Root  class  defining the methods   we  need to make a
135     --          constrained boundary.   Any  new type  of  constrained
136     --          boundary must inherit this class.
137     --
138       
139     class DegeneratedBound;       -- inherits Boundary
140     ---Purpose: class    defining  a   degenerated  boundary   for   a
141     --          constrained filling   with  a   point  and  no   other
142     --          constraint. Only used to  simulate an  ordinary bound,
143     --          may not be usefull and desapear soon. 
144     --
145       
146     class SimpleBound;            -- inherits Boundary
147     ---Purpose: class  defining a boundary  for  a constrained filling
148     --          with a  3d curve  and  no other  constraint.  Contains
149     --          fields to allow a reparametrization of curve.
150     --
151       
152     class BoundWithSurf;          -- inherits Boundary
153     ---Purpose: class defining   a boundary for  a constrained filling
154     --          with a  curve and  a normals  field along  a  surface.
155     --          Contains fields  to allow a reparametrization of curve
156     --          and normals field.
157     --
158
159     class CoonsAlgPatch;          -- inherits TShared
160     ---Purpose: class defining an algorithmic patch based on 4 Curves.
161
162     deferred class TgtField;      -- inherits TShared
163     ---Purpose: Root class defining the methods we need to definine an
164     --          algorithmic tgte field.
165
166     class TgtOnCoons;             -- inherits TgteField
167     ---Purpose: Class defining  an   algorithmic  tgte field  along  a
168     --          boundary of a CoonsAlgPatch.
169
170     class CornerState;
171     ---Purpose: Class (should be a structure) storing the informations
172     --          about    continuity,     normals parallelism,    coons
173     --          conditions and bounds  tangents angle on the corner of
174     --          contour  to be filled.
175
176     --
177     --  instantiation of Sequence of Trsf
178     --          
179
180     class SequenceOfTrsf
181         instantiates Sequence  from TCollection (Trsf from gp); 
182
183     --
184     -- private classes
185     -- 
186     
187     private class CircularBlendFunc;  
188     private class SweepFunction; 
189     private class LocFunction;
190     private class PolynomialConvertor;  
191     private class QuasiAngularConvertor; 
192     private class SnglrFunc; 
193     private class FunctionDraft;  
194     private class PlanFunc;
195     private class FunctionGuide; 
196
197     --- 
198     ---  Sweep Data
199     ---
200     deferred  class  SectionLaw; 
201         class UniformSection; 
202         class EvolvedSection; 
203         class NSections; 
204
205     deferred  class  LocationLaw; 
206         class  CurveAndTrihedron; 
207         class  LocationDraft; 
208         class  LocationGuide; 
209         
210     deferred  class  TrihedronLaw; 
211         class Fixed;
212         class Frenet; 
213         class CorrectedFrenet;
214         class ConstantBiNormal; 
215         class Darboux; 
216         class DraftTrihedron; 
217         
218
219     deferred  class  TrihedronWithGuide;  
220         class GuideTrihedronAC;  
221         class GuideTrihedronPlan;
222       
223
224       
225     class  Sweep; 
226     class  SectionPlacement;
227
228     class  Array1OfSectionLaw  
229         instantiates Array1  from TCollection (SectionLaw from GeomFill);  
230          
231     class  HArray1OfSectionLaw  
232         instantiates HArray1 from TCollection (SectionLaw from GeomFill, 
233                                      Array1OfSectionLaw  from  GeomFill);  
234                                      
235     class  Array1OfLocationLaw  
236         instantiates Array1  from TCollection (LocationLaw from GeomFill);  
237          
238     class  HArray1OfLocationLaw  
239         instantiates HArray1 from TCollection (LocationLaw from GeomFill, 
240                                                Array1OfLocationLaw  from  GeomFill);     
241
242     --  package methods
243     --          
244
245     Surface( Curve1 : Curve from Geom;
246              Curve2 : Curve from Geom) 
247     returns Surface from Geom;
248         ---Purpose:
249 -- Builds a ruled surface between the two curves, Curve1 and Curve2.
250     GetCircle(TConv      : ParameterisationType from Convert;
251               ns1, ns2   : Vec from gp;
252               nplan      : Vec from gp;
253               pt1, pt2   : Pnt from gp;
254               Rayon      : Real from Standard;
255               Center     : Pnt from gp;
256               Poles      : out Array1OfPnt   from TColgp;
257               Weigths    : out Array1OfReal  from TColStd); 
258
259     GetCircle(TConv         : ParameterisationType from Convert;
260               ns1, ns2      : Vec from gp;
261               dn1w, dn2w    : Vec from gp;
262               nplan, dnplan : Vec from gp;
263               pts1, pts2    : Pnt from gp;
264               tang1, tang2  : Vec from gp;
265               Rayon, DRayon : Real from Standard;
266               Center        : Pnt from gp;
267               DCenter       : Vec from gp;
268               Poles         : out Array1OfPnt   from TColgp;
269               DPoles        : out Array1OfVec   from TColgp;
270               Weigths       : out Array1OfReal  from TColStd;
271               DWeigths      : out Array1OfReal  from TColStd)
272               ---Level: Internal
273               returns Boolean;
274         
275     GetCircle(TConv         : ParameterisationType from Convert;
276               ns1, ns2      : Vec from gp;
277               dn1w, dn2w             : Vec from gp;
278               d2n1w, d2n2w           : Vec from gp;
279               nplan, dnplan, d2nplan : Vec from gp;
280               pts1  , pts2           : Pnt from gp;
281               tang1 , tang2          : Vec from gp;
282               Dtang1, Dtang2         : Vec from gp;
283               Rayon, DRayon, D2Rayon : Real from Standard;
284               Center                 : Pnt from gp;
285               DCenter, D2Center      : Vec from gp;
286               Poles         : out Array1OfPnt   from TColgp;
287               DPoles        : out Array1OfVec   from TColgp;
288               D2Poles       : out Array1OfVec   from TColgp;
289               Weigths       : out Array1OfReal  from TColStd;
290               DWeigths      : out Array1OfReal  from TColStd;
291               D2Weigths     : out Array1OfReal  from TColStd)
292               ---Level: Internal
293               returns Boolean;
294                 
295     GetShape(MaxAng:    Real         from  Standard;
296              NbPoles,NbKnots,Degree : out Integer from Standard;
297              TypeConv : in  out ParameterisationType from Convert);
298
299     Knots(TypeConv : ParameterisationType from Convert; 
300           TKnots: out Array1OfReal from TColStd);
301
302
303     Mults(TypeConv : ParameterisationType from Convert; 
304           TMults: out Array1OfInteger from TColStd);
305           
306     GetMinimalWeights(TConv      : ParameterisationType from Convert;
307                       AngleMin   : Real;
308                       AngleMax   : Real;
309                       Weigths    : out Array1OfReal  from TColStd);           
310           
311     GetTolerance(TConv      : ParameterisationType from Convert;
312                  AngleMin   : Real;
313                  Radius     : Real;
314                  AngularTol : Real;
315                  SpatialTol : Real)
316               ---Purpose: Used  by  the  generical classes to determine
317               --          Tolerance for approximation
318               ---Level: Internal        
319               returns Real;
320
321 end GeomFill;