0024058: Eliminate compiler warning C4702 in MSVC++ with warning level 4
[occt.git] / src / IntTools / IntTools_BeanBeanIntersector.cdl
1 -- Created on: 2001-07-06
2 -- Created by: Michael KLOKOV
3 -- Copyright (c) 2001-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20
21 class BeanBeanIntersector from IntTools
22
23     ---Purpose: The class BeanBeanIntersector computes ranges of parameters on
24     ---         the curve of a first bean (part of edge) that bounds the parts of bean which
25     ---         are on the other bean according to tolerance of edges.
26
27 uses
28     SequenceOfRoots     from IntTools,
29     MarkedRangeSet      from IntTools,
30     SequenceOfRanges    from IntTools,
31     Range               from IntTools,
32     ExtCC               from Extrema,
33     ProjectPointOnCurve from GeomAPI,
34     Edge                from TopoDS,
35     Curve               from BRepAdaptor,
36     Curve               from Geom
37
38
39 is
40     Create returns BeanBeanIntersector from IntTools;
41     
42     Create(theEdge1: Edge from TopoDS;
43            theEdge2: Edge from TopoDS)
44            returns BeanBeanIntersector from IntTools;
45         ---Purpose: 
46         --- Initializes the algorithm
47         ---
48
49     Create(theCurve1        : Curve   from BRepAdaptor;
50            theCurve2        : Curve from BRepAdaptor;
51            theBeanTolerance1: Real from Standard;
52            theBeanTolerance2: Real from Standard)
53            returns BeanBeanIntersector from IntTools;
54         ---Purpose: 
55         --- Initializes the algorithm
56         ---
57
58     Create(theCurve1          : Curve   from BRepAdaptor;
59            theCurve2          : Curve   from BRepAdaptor;
60            theFirstParOnCurve1: Real from Standard;
61            theLastParOnCurve1 : Real from Standard;
62            theFirstParOnCurve2: Real from Standard;
63            theLastParOnCurve2 : Real from Standard;
64            theBeanTolerance1  : Real from Standard;
65            theBeanTolerance2  : Real from Standard)
66            returns BeanBeanIntersector from IntTools;
67         ---Purpose: 
68         --- Initializes the algorithm
69         ---
70
71     Init(me: in out;theEdge1: Edge from TopoDS;
72                     theEdge2: Edge from TopoDS);
73         ---Purpose: 
74         --- Initializes the algorithm
75         ---
76
77
78
79     Init(me: in out;theCurve1        : Curve   from BRepAdaptor;
80                     theCurve2        : Curve from BRepAdaptor;
81                     theBeanTolerance1: Real from Standard;
82                     theBeanTolerance2: Real from Standard);
83         ---Purpose: 
84         --- Initializes the algorithm
85         ---
86
87     Init(me: in out;theCurve1          : Curve   from BRepAdaptor;
88                     theCurve2          : Curve   from BRepAdaptor;
89                     theFirstParOnCurve1: Real from Standard;
90                     theLastParOnCurve1 : Real from Standard;
91                     theFirstParOnCurve2: Real from Standard;
92                     theLastParOnCurve2 : Real from Standard;
93                     theBeanTolerance1  : Real from Standard;
94                     theBeanTolerance2  : Real from Standard);
95         ---Purpose: 
96         --- Initializes the algorithm
97         ---
98
99     SetBeanParameters(me: in out;IsFirstBean       : Boolean from Standard;
100                                  theFirstParOnCurve: Real from Standard;
101                                  theLastParOnCurve : Real from Standard);
102         ---Purpose: 
103         --- Sets bounding parameters for first bean if IsFirstBean is true
104         --- and for second bean if IsFirstBean is false
105         ---
106
107
108     Perform(me: in out);
109         ---Purpose: 
110         --- Launches the algorithm
111         --- 
112
113     IsDone(me) returns Boolean from Standard;
114         ---C++: inline
115         ---Purpose: 
116         --- Returns true if the computations was successfull
117         --- otherwise returns false
118
119     Result(me)
120         returns SequenceOfRanges from IntTools;
121         ---C++: return const &
122
123     Result(me; theResults: out SequenceOfRanges from IntTools);
124
125
126     -- private
127
128     ComputeRoughIntersection(me: in out)
129         is private;
130
131     FastComputeIntersection(me: in out)
132         returns Boolean from Standard is private;
133     
134     ComputeUsingExtrema(me: in out; theRange2: Range from IntTools)
135         is private;
136     
137     ComputeNearRangeBoundaries(me: in out; theRange2: Range from IntTools)
138         is private;
139     
140     ComputeRangeFromStartPoint(me: in out; ToIncreaseParameter : Boolean from Standard;
141                                            theParameter        : Real from Standard;
142                                            theIndex            : Integer from Standard;
143                                            theParameter2       : Real from Standard;
144                                            theRange2           : Range from IntTools)
145         is private;
146
147     Distance(me: in out; theArg           : Real from Standard;
148                          theArgOnOtherBean: out Real from Standard)
149         returns Real from Standard
150         is private;
151
152 fields
153
154     -- sources    
155     myCurve1          : Curve   from BRepAdaptor;
156     myCurve2          : Curve   from BRepAdaptor;
157     myTrsfCurve1      : Curve from Geom;
158     myTrsfCurve2      : Curve from Geom;
159
160     myFirstParameter1 : Real from Standard;
161     myLastParameter1  : Real from Standard;
162     myFirstParameter2 : Real from Standard;
163     myLastParameter2  : Real from Standard;
164
165     myBeanTolerance1  : Real from Standard;
166     myBeanTolerance2  : Real from Standard;
167     
168     myCurveResolution1: Real from Standard;
169     myCriteria        : Real from Standard;
170
171     -- tools
172     myProjector      : ProjectPointOnCurve from GeomAPI;
173     myRangeManager   : MarkedRangeSet from IntTools;    
174     myDeflection     : Real from Standard;
175
176     -- results
177     myResults        : SequenceOfRanges from IntTools;
178
179     myIsDone         : Boolean from Standard;
180
181 end BeanBeanIntersector from IntTools;