0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / ApproxInt / ApproxInt_MultiLineTool.cdl
1 -- Created on: 1993-03-26
2 -- Created by: Laurent BUCHARD
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 generic class MultiLineTool from ApproxInt (TheMultiLine   as any;
18                                             TheMultiMPoint as any)
19
20
21 uses 
22       Status           from Approx,
23       Array1OfPnt      from TColgp,
24       Array1OfPnt2d    from TColgp,
25       Array1OfVec      from TColgp,
26       Array1OfVec2d    from TColgp
27     
28 is
29     
30     
31     FirstPoint(myclass; ML: TheMultiLine) returns Integer;
32         ---C++:inline
33         ---Purpose: Returns the number of multipoints of the TheMultiLine.
34
35     LastPoint(myclass; ML: TheMultiLine) returns Integer;
36         ---C++:inline
37         ---Purpose: Returns the number of multipoints of the TheMultiLine.
38
39     NbP2d(myclass; ML: TheMultiLine) returns Integer;
40         ---C++:inline
41         ---Purpose: Returns the number of 2d points of a TheMultiLine.
42
43
44     NbP3d(myclass; ML: TheMultiLine) returns Integer; 
45         ---C++:inline
46         ---Purpose: Returns the number of 3d points of a TheMultiLine.
47
48
49     Value(myclass; ML:  TheMultiLine; MPointIndex: Integer; tabPt: out Array1OfPnt);
50         ---C++:inline
51         ---Purpose: returns the 3d points of the multipoint <MPointIndex>
52         --          when only 3d points exist.
53
54
55     Value(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
56           tabPt2d: out Array1OfPnt2d from TColgp);
57         ---C++:inline
58         ---Purpose: returns the 2d points of the multipoint <MPointIndex>
59         --          when only 2d points exist.
60
61
62     Value(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
63           tabPt: out Array1OfPnt from TColgp; tabPt2d: out Array1OfPnt2d);
64         ---C++:inline
65         ---Purpose: returns the 3d and 2d points of the multipoint 
66         --          <MPointIndex>.
67
68     Tangency(myclass; ML:  TheMultiLine; MPointIndex: Integer; tabV: out Array1OfVec from TColgp)
69     returns Boolean;
70         ---C++:inline
71         ---Purpose: returns the 3d points of the multipoint <MPointIndex>
72         --          when only 3d points exist.
73
74
75     Tangency(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
76           tabV2d: out Array1OfVec2d from TColgp)
77     returns Boolean;
78         ---C++:inline
79         ---Purpose: returns the 2d tangency points of the multipoint 
80         --          <MPointIndex> only when 2d points exist.
81
82
83     Tangency(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
84              tabV: out Array1OfVec from TColgp; tabV2d: out Array1OfVec2d from TColgp)
85     returns Boolean;
86         ---C++:inline
87         ---Purpose: returns the 3d and 2d points of the multipoint 
88         --          <MPointIndex>.
89
90
91 --- methods not used but necessary
92
93
94     Curvature(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
95              tabV: out Array1OfVec from TColgp)
96     returns Boolean;
97         ---C++:inline
98         ---Purpose: returns the 3d curvature of the multipoint <MPointIndex>
99         --          when only 3d points exist.
100
101
102     Curvature(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
103           tabV2d: out Array1OfVec2d from TColgp)
104     returns Boolean;
105         ---C++:inline
106         ---Purpose: returns the 2d curvature points of the multipoint 
107         --          <MPointIndex> only when 2d points exist.
108
109
110     Curvature(myclass; ML:  TheMultiLine; MPointIndex: Integer; 
111              tabV: out Array1OfVec from TColgp; 
112              tabV2d: out Array1OfVec2d from TColgp)
113     returns Boolean;
114         ---C++:inline
115         ---Purpose: returns the 3d and 2d curvature of the multipoint 
116         --          <MPointIndex>.
117
118     
119      
120     MakeMLBetween(myclass; ML:  TheMultiLine; I1, I2: Integer;
121                   NbPMin: Integer) 
122     returns TheMultiLine;
123         ---C++:inline
124         ---Purpose: Is called if WhatStatus returned "PointsAdded".
125    
126     WhatStatus(myclass; ML:  TheMultiLine; I1, I2: Integer) 
127         ---C++:inline
128     returns Status from Approx;
129     
130 end MultiLineTool;    
131