7fd59977 |
1 | -- File: GeomFill_BoundWithSurf.cdl |
2 | -- Created: Tue Oct 17 15:02:27 1995 |
3 | -- Author: Laurent BOURESCHE |
4 | -- <lbo@phylox> |
5 | ---Copyright: Matra Datavision 1995 |
6 | |
7 | |
8 | class BoundWithSurf from GeomFill inherits Boundary from GeomFill |
9 | |
10 | ---Purpose: Defines a 3d curve as a boundary for a |
11 | -- GeomFill_ConstrainedFilling algorithm. |
12 | -- This curve is attached to an existing surface. |
13 | -- Defines a constrained boundary for filling |
14 | -- the computations are done with a CurveOnSurf and a |
15 | -- normals field defined by the normalized normal to |
16 | -- the surface along the PCurve. |
17 | |
18 | uses |
19 | Pnt from gp, |
20 | Vec from gp, |
21 | Function from Law, |
22 | CurveOnSurface from Adaptor3d |
23 | |
24 | is |
25 | |
26 | Create(CurveOnSurf : CurveOnSurface from Adaptor3d; |
27 | Tol3d : Real from Standard; |
28 | Tolang : Real from Standard) |
29 | returns mutable BoundWithSurf from GeomFill; |
30 | ---Purpose: |
31 | -- Constructs a boundary object defined by the 3d curve CurveOnSurf. |
32 | -- The surface to be filled along this boundary will be in the |
33 | -- tolerance range defined by Tol3d. |
34 | -- What's more, at each point of CurveOnSurf, the angle |
35 | -- between the normal to the surface to be filled along this |
36 | -- boundary, and the normal to the surface on which |
37 | -- CurveOnSurf lies, must not be greater than TolAng. |
38 | -- This object is to be used as a boundary for a |
39 | -- GeomFill_ConstrainedFilling framework. |
40 | -- Warning |
41 | -- CurveOnSurf is an adapted curve, that is, an object |
42 | -- which is an interface between: |
43 | -- - the services provided by a curve lying on a surface from the package Geom |
44 | -- - and those required of the curve by the computation algorithm which uses it. |
45 | -- The adapted curve is created in the following way: |
46 | -- Handle(Geom_Surface) mySurface = ... ; |
47 | -- Handle(Geom2d_Curve) myParamCurve = ... ; |
48 | -- // where myParamCurve is a 2D curve in the parametric space of the surface mySurface |
49 | -- Handle(GeomAdaptor_HSurface) |
50 | -- Surface = new |
51 | -- GeomAdaptor_HSurface(mySurface); |
52 | -- Handle(Geom2dAdaptor_HCurve) |
53 | -- ParamCurve = new |
54 | -- Geom2dAdaptor_HCurve(myParamCurve); |
55 | -- CurveOnSurf = Adaptor3d_CurveOnSurface(ParamCurve,Surface); |
56 | -- The boundary is then constructed with the CurveOnSurf object: |
57 | -- Standard_Real Tol = ... ; |
58 | -- Standard_Real TolAng = ... ; |
59 | -- myBoundary = GeomFill_BoundWithSurf ( |
60 | -- CurveOnSurf, Tol, TolAng ); |
61 | |
62 | |
63 | |
64 | |
65 | Value(me; |
66 | U : Real from Standard) |
67 | returns Pnt from gp; |
68 | |
69 | D1(me; |
70 | U : Real from Standard; |
71 | P : out Pnt from gp; |
72 | V : out Vec from gp) ; |
73 | |
74 | HasNormals(me) |
75 | returns Boolean from Standard |
76 | is redefined; |
77 | |
78 | Norm(me; |
79 | U : Real from Standard) |
80 | returns Vec from gp |
81 | is redefined; |
82 | |
83 | D1Norm(me; |
84 | U : Real from Standard; |
85 | N : out Vec from gp; |
86 | DN : out Vec from gp) |
87 | is redefined; |
88 | |
89 | Reparametrize(me : mutable; |
90 | First, Last : Real from Standard; |
91 | HasDF, HasDL : Boolean from Standard; |
92 | DF, DL : Real from Standard; |
93 | Rev : Boolean from Standard); |
94 | |
95 | Bounds(me; First, Last : out Real from Standard); |
96 | |
97 | IsDegenerated(me) returns Boolean from Standard; |
98 | |
99 | fields |
100 | |
101 | myConS : CurveOnSurface from Adaptor3d; |
102 | myPar : Function from Law; |
103 | |
104 | end BoundWithSurf; |
105 | |