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