Integration of OCCT 6.5.0 from SVN
[occt.git] / src / ApproxInt / ApproxInt_MultiLine.cdl
CommitLineData
7fd59977 1-- File: ApproxInt_MultiLine.cdl
2-- Created: Thu Mar 18 12:40:05 1993
3-- Author: Laurent BUCHARD
4-- <lbr@sdsun2>
5---Copyright: Matra Datavision 1993
6
7
8generic class MultiLine from ApproxInt (
9 TheLine as Transient;
10 TheSvSurfaces as any)
11
12uses Array1OfPnt from TColgp,
13 Array1OfPnt2d from TColgp,
14 Array1OfVec from TColgp,
15 Array1OfVec2d from TColgp,
16 Status from Approx,
17 Trsf from gp,
18 Trsf2d from gp
19
20
21is
22
23 Create(line : TheLine;
24 PtrSvSurfaces : Address from Standard;
25 NbP3d : Integer from Standard;
26 NbP2d : Integer from Standard;
27 xo,ax,yo,ay,zo,az : Real from Standard;
28 u1o,a1u,v1o,a1v : Real from Standard;
29 u2o,a2u,v2o,a2v : Real from Standard;
30 P2DOnFirst : Boolean from Standard;
31 IndMin : Integer from Standard = 0;
32 IndMax : Integer from Standard = 0)
33
34
35 returns MultiLine from ApproxInt;
36
37 ---Purpose: The class SvSurfaces is used when the
38 -- approximation algorithm needs some extra points on
39 -- the line <line>. A New line is then created which
40 -- shares the same surfaces and functions.
41 --
42 -- SvSurfaces is a deferred class which allows
43 -- several implementations of this algorithm with
44 -- different surfaces (bi-parametric ones, or
45 -- implicit and biparametric ones)
46
47 Create(line : TheLine;
48 NbP3d : Integer from Standard;
49 NbP2d : Integer from Standard;
50 xo,ax,yo,ay,zo,az : Real from Standard;
51 u1o,a1u,v1o,a1v : Real from Standard;
52 u2o,a2u,v2o,a2v : Real from Standard;
53 P2DOnFirst : Boolean from Standard;
54 IndMin : Integer from Standard = 0;
55 IndMax : Integer from Standard = 0)
56
57 ---Purpose: No Extra points will be added on the current line
58 --
59 returns MultiLine from ApproxInt;
60
61
62 FirstPoint(me) returns Integer from Standard is static;
63
64 LastPoint(me) returns Integer from Standard is static;
65
66 NbP2d(me) returns Integer is static;
67 ---Purpose: Returns the number of 2d points of a TheLine.
68 --
69
70 NbP3d(me) returns Integer is static;
71 ---Purpose: Returns the number of 3d points of a TheLine.
72 --
73
74 WhatStatus(me) returns Status from Approx is static;
75
76 Value(me; MPointIndex: Integer; tabPt: out Array1OfPnt) is static;
77 ---Purpose: returns the 3d points of the multipoint <MPointIndex>
78 -- when only 3d points exist.
79
80 Value(me; MPointIndex: Integer;
81 tabPt2d: out Array1OfPnt2d) is static;
82 ---Purpose: returns the 2d points of the multipoint <MPointIndex>
83 -- when only 2d points exist.
84
85 Value(me; MPointIndex: Integer;
86 tabPt: out Array1OfPnt; tabPt2d: out Array1OfPnt2d from TColgp) is static;
87 ---Purpose: returns the 3d and 2d points of the multipoint
88 -- <MPointIndex>.
89
90 Tangency(me; MPointIndex: Integer; tabV: out Array1OfVec from TColgp)
91 returns Boolean is static;
92 ---Purpose: returns the 3d points of the multipoint <MPointIndex>
93 -- when only 3d points exist.
94
95 Tangency(me; MPointIndex: Integer;
96 tabV2d: out Array1OfVec2d)
97 returns Boolean is static;
98 ---Purpose: returns the 2d tangency points of the multipoint
99 -- <MPointIndex> only when 2d points exist.
100
101 Tangency(me; MPointIndex: Integer;
102 tabV: out Array1OfVec from TColgp; tabV2d: out Array1OfVec2d from TColgp)
103 returns Boolean is static;
104 ---Purpose: returns the 3d and 2d points of the multipoint
105 -- <MPointIndex>.
106 --
107
108 MakeMLBetween(me; Low,High,NbPointsToInsert: Integer from Standard)
109 returns MultiLine from ApproxInt is static;
110
111--------------------------------------------------------------------------------
112
113fields
114 PtrOnmySvSurfaces : Address from Standard;
115 myLine : TheLine;
116 indicemin : Integer from Standard;
117 indicemax : Integer from Standard;
118 nbp3d : Integer from Standard;
119 nbp2d : Integer from Standard;
120 p2donfirst : Boolean from Standard;
121
122
123 --- The Points of the line <TheLine> are transformed
124 -- as follow :
125 -- Modified_X = Xo + Ax * TheLine.Point().X()
126 -- Modified_Y = Yo + Ay * TheLine.Point().Y()
127 -- Modified_Z = Zo + Az * TheLine.Point().Z()
128 -- Modified_U1 = U1o + A1u * TheLine.Point().u1()
129 -- Modified_V1 = V1o + A1v * TheLine.Point().v1()
130 -- Modified_U2 = U2o + A2u * TheLine.Point().u2()
131 -- Modified_V2 = V2o + A2v * TheLine.Point().v2()
132
133 Xo,Ax,Yo,Ay,Zo,Az : Real from Standard;
134 U1o,A1u,V1o,A1v : Real from Standard;
135 U2o,A2u,V2o,A2v : Real from Standard;
136
137end MultiLine;
138
139