2 -- Created: Tue Sep 28 11:34:33 1993
3 -- Author: Bruno DUMORTIER
5 ---Copyright: Matra Datavision 1993
7 ---Purpose: Tools and Data to filling Surface and Sweep Surfaces
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;
47 PlaneNotIntersectGuide,
53 is IsCorrectedFrenet, IsFixed, IsFrenet, IsConstantNormal, IsDarboux,
54 IsGuideAC, IsGuidePlan,
55 IsGuideACWithContact, IsGuidePlanWithContact end;
58 ---Purpose: Root class for Filling;
68 ---Purpose: class for Filling BezierCurves.
70 -- Some problems may appear with the rational Curves.
73 ---Purpose: class for Filling BSplineCurves.
75 -- Some problems may appear with the rational Curves.
78 ---Purpose: class for evaluation of the Common BSpline Profile
79 -- from a sequence a BSplineCurves.
81 class SectionGenerator;
82 ---Purpose: class for instantiation of AppBlend .
86 ---Purpose: class for instantiation of AppBlend
88 class AppSurf instantiates AppSurf from AppBlend
89 ( SectionGenerator from GeomFill,
91 ---Purpose: Approximate a BSplineSurface passing by all the
92 -- curves described in the SectionGenerator
95 class SweepSectionGenerator;
96 ---Purpose: class for instantiation of AppBlend.
97 -- evaluate the sections of a sweep surface.
99 class AppSweep instantiates AppSurf from AppBlend
100 ( SweepSectionGenerator from GeomFill,
102 ---Purpose: Approximate a sweep surface passing by all the
103 -- curves described in the SweepSectionGenerator.
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
114 ---Purpose: Create a pipe surface.
117 --- Family of classes providing algorithms to fill a contour with
118 -- constraints of tangency.
122 ---Purpose: Depouille
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
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.
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.
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.
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.
159 class CoonsAlgPatch; -- inherits TShared
160 ---Purpose: class defining an algorithmic patch based on 4 Curves.
162 deferred class TgtField; -- inherits TShared
163 ---Purpose: Root class defining the methods we need to definine an
164 -- algorithmic tgte field.
166 class TgtOnCoons; -- inherits TgteField
167 ---Purpose: Class defining an algorithmic tgte field along a
168 -- boundary of a CoonsAlgPatch.
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.
177 -- instantiation of Sequence of Trsf
181 instantiates Sequence from TCollection (Trsf from gp);
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;
200 deferred class SectionLaw;
201 class UniformSection;
202 class EvolvedSection;
205 deferred class LocationLaw;
206 class CurveAndTrihedron;
210 deferred class TrihedronLaw;
213 class CorrectedFrenet;
214 class ConstantBiNormal;
216 class DraftTrihedron;
219 deferred class TrihedronWithGuide;
220 class GuideTrihedronAC;
221 class GuideTrihedronPlan;
226 class SectionPlacement;
228 class Array1OfSectionLaw
229 instantiates Array1 from TCollection (SectionLaw from GeomFill);
231 class HArray1OfSectionLaw
232 instantiates HArray1 from TCollection (SectionLaw from GeomFill,
233 Array1OfSectionLaw from GeomFill);
235 class Array1OfLocationLaw
236 instantiates Array1 from TCollection (LocationLaw from GeomFill);
238 class HArray1OfLocationLaw
239 instantiates HArray1 from TCollection (LocationLaw from GeomFill,
240 Array1OfLocationLaw from GeomFill);
245 Surface( Curve1 : Curve from Geom;
246 Curve2 : Curve from Geom)
247 returns Surface from Geom;
249 -- Builds a ruled surface between the two curves, Curve1 and Curve2.
250 GetCircle(TConv : ParameterisationType from Convert;
251 ns1, ns2 : 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);
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)
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)
295 GetShape(MaxAng: Real from Standard;
296 NbPoles,NbKnots,Degree : out Integer from Standard;
297 TypeConv : in out ParameterisationType from Convert);
299 Knots(TypeConv : ParameterisationType from Convert;
300 TKnots: out Array1OfReal from TColStd);
303 Mults(TypeConv : ParameterisationType from Convert;
304 TMults: out Array1OfInteger from TColStd);
306 GetMinimalWeights(TConv : ParameterisationType from Convert;
309 Weigths : out Array1OfReal from TColStd);
311 GetTolerance(TConv : ParameterisationType from Convert;
316 ---Purpose: Used by the generical classes to determine
317 -- Tolerance for approximation