0024751: Performance improvements in the Edge/Edge intersection algorithm
[occt.git] / src / IntTools / IntTools_Curve.cdl
1 -- Created on: 2000-11-23
2 -- Created by: Michael KLOKOV
3 -- Copyright (c) 2000-2014 OPEN CASCADE SAS
4 --
5 -- This file is part of Open CASCADE Technology software library.
6 --
7 -- This library is free software; you can redistribute it and/or modify it under
8 -- the terms of the GNU Lesser General Public License version 2.1 as published
9 -- by the Free Software Foundation, with special exception defined in the file
10 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 -- distribution for complete text of the license and disclaimer of any warranty.
12 --
13 -- Alternatively, this file may be used under the terms of Open CASCADE
14 -- commercial license or contractual agreement.
15
16 class Curve from IntTools
17
18
19 uses
20     Curve from Geom,
21     Curve from Geom2d,
22     Pnt  from gp, 
23     CurveType from GeomAbs
24 is
25     Create  
26         returns Curve from IntTools;
27         ---Purpose:
28         --- Empty constructor
29         ---
30
31     Create(Curve3d: Curve from Geom;  
32            FirstCurve2d : Curve from Geom2d;
33            SecondCurve2d: Curve from Geom2d)
34         returns Curve from IntTools;
35         ---Purpose:
36         --- Initializes me by a 3d curve
37         --- and two 2d curves
38         ---
39
40     SetCurves(me: in out;  
41               Curve3d: Curve from Geom;  
42               FirstCurve2d  : Curve from Geom2d;
43               SecondCurve2d : Curve from Geom2d);
44         ---Purpose:
45         --- Modifier
46         ---
47     
48     SetCurve(me: in out;  
49                 Curve3d: Curve from Geom);
50         ---C++: inline
51         ---Purpose:
52         --- Modifier
53         ---
54     
55     SetFirstCurve2d(me: in out;  
56                 FirstCurve2d: Curve from Geom2d);
57         ---C++: inline
58         ---Purpose:
59         --- Modifier
60         ---
61     
62     SetSecondCurve2d(me: in out;  
63                 SecondCurve2d: Curve from Geom2d);
64         ---C++: inline
65         ---Purpose:
66         --- Modifier
67         ---
68
69     Curve(me)  
70         returns any Curve from Geom;
71         ---C++: return const &
72         ---C++: inline
73         ---Purpose:
74         --- Selector
75         ---
76     
77     FirstCurve2d(me)
78         returns any Curve from Geom2d;
79         ---C++: return const &
80         ---C++: inline
81         ---Purpose:
82         --- Selector
83         ---
84             
85     SecondCurve2d(me)
86         returns any Curve from Geom2d;
87         ---C++: return const &
88         ---C++: inline 
89         ---Purpose:
90         --- Selector
91         ---
92         
93     HasBounds (me) 
94         returns Boolean from Standard;
95         ---Purpose:
96         --- Returns true if 3d curve is BoundedCurve from Geom
97         ---
98
99     Bounds    (me; aT1:out Real from Standard;            
100                    aT2:out Real from Standard;            
101                    aP1:out Pnt  from gp;     
102                    aP2:out Pnt  from gp);
103         ---Purpose:
104         --- Returns boundary parameters
105         --- and corresponded 3d point.
106         ---
107         --  Warning:
108         --- If HasBounds returns false
109         --- the returned parameters are equal
110         --- to zero.
111         ---
112
113     D0        (me;  
114                aT1:out Real from Standard; 
115                aP1:out Pnt  from gp) 
116         returns Boolean from Standard;
117         ---Purpose:
118         --- Computes 3d point corresponded to parameter aT1
119         --- Returns true if given parameter aT1
120         --- is inside the boundaries of the curve
121         ---
122      
123     Type  (me) 
124         returns CurveType from GeomAbs; 
125         ---Purpose:
126         --- Returns the type of 3d curve
127         ---
128  
129 fields
130
131     my3dCurve : Curve from Geom;
132     my2dCurve1: Curve from Geom2d;
133     my2dCurve2: Curve from Geom2d;
134     
135 end Curve from IntTools;