7fd59977 |
1 | -- File: GeomFill_Darboux.cdl |
2 | -- Created: Wed Mar 4 11:57:03 1998 |
3 | -- Author: Roman BORISOV |
4 | -- <rbv@ecolox.nnov.matra-dtv.fr> |
5 | ---Copyright: Matra Datavision 1998 |
6 | |
7 | |
8 | class Darboux from GeomFill |
9 | inherits TrihedronLaw from GeomFill |
10 | |
11 | ---Purpose: Defines Darboux case of Frenet Trihedron Law |
12 | |
13 | uses |
14 | |
15 | HSurface from Adaptor3d, |
16 | Shape from GeomAbs, |
17 | Array1OfReal from TColStd, |
18 | Vec from gp, |
19 | HArray1OfReal from TColStd, |
20 | CurveOnSurface from Adaptor3d |
21 | |
22 | raises |
23 | OutOfRange, ConstructionError |
24 | |
25 | is |
26 | Create |
27 | returns Darboux from GeomFill |
28 | raises ConstructionError; |
29 | |
30 | Copy(me) |
31 | returns TrihedronLaw from GeomFill |
32 | is redefined; |
33 | |
34 | -- |
35 | -- |
36 | --========== To compute Location and derivatives Location |
37 | -- |
38 | D0(me : mutable; |
39 | Param: Real; |
40 | Tangent : out Vec from gp; |
41 | Normal : out Vec from gp; |
42 | BiNormal : out Vec from gp) |
43 | ---Purpose: compute Triedrhon on curve at parameter <Param> |
44 | returns Boolean is redefined; |
45 | |
46 | D1(me : mutable; |
47 | Param: Real; |
48 | Tangent : out Vec from gp; |
49 | DTangent : out Vec from gp; |
50 | Normal : out Vec from gp; |
51 | DNormal : out Vec from gp; |
52 | BiNormal : out Vec from gp; |
53 | DBiNormal : out Vec from gp) |
54 | ---Purpose: compute Triedrhon and derivative Trihedron on curve |
55 | -- at parameter <Param> |
56 | -- Warning : It used only for C1 or C2 aproximation |
57 | returns Boolean |
58 | is redefined; |
59 | |
60 | D2(me : mutable; |
61 | Param: Real; |
62 | Tangent : out Vec from gp; |
63 | DTangent : out Vec from gp; |
64 | D2Tangent : out Vec from gp; |
65 | Normal : out Vec from gp; |
66 | DNormal : out Vec from gp; |
67 | D2Normal : out Vec from gp; |
68 | BiNormal : out Vec from gp; |
69 | DBiNormal : out Vec from gp; |
70 | D2BiNormal : out Vec from gp) |
71 | ---Purpose: compute Trihedron on curve |
72 | -- first and seconde derivatives. |
73 | -- Warning : It used only for C2 aproximation |
74 | returns Boolean |
75 | is redefined; |
76 | -- |
77 | -- =================== Management of continuity =================== |
78 | -- |
79 | NbIntervals(me; S : Shape from GeomAbs) |
80 | ---Purpose: Returns the number of intervals for continuity |
81 | -- <S>. |
82 | -- May be one if Continuity(me) >= <S> |
83 | returns Integer is redefined; |
84 | |
85 | Intervals(me; T : in out Array1OfReal from TColStd; |
86 | S : Shape from GeomAbs) |
87 | ---Purpose: Stores in <T> the parameters bounding the intervals |
88 | -- of continuity <S>. |
89 | -- |
90 | -- The array must provide enough room to accomodate |
91 | -- for the parameters. i.e. T.Length() > NbIntervals() |
92 | raises |
93 | OutOfRange from Standard |
94 | is redefined; |
95 | |
96 | |
97 | -- =================== To help computation of Tolerance =============== |
98 | GetAverageLaw(me : mutable; |
99 | ATangent : out Vec from gp; |
100 | ANormal : out Vec from gp; |
101 | ABiNormal : out Vec from gp) |
102 | ---Purpose: Get average value of Tangent(t) and Normal(t) it is usfull to |
103 | -- make fast approximation of rational surfaces. |
104 | is redefined; |
105 | |
106 | -- =================== To help Particular case =============== |
107 | |
108 | IsConstant(me) |
109 | ---Purpose: Say if the law is Constant. |
110 | returns Boolean |
111 | is redefined; |
112 | |
113 | IsOnlyBy3dCurve(me) |
114 | ---Purpose: Return False. |
115 | returns Boolean |
116 | is redefined; |
117 | |
118 | end Darboux; |