b311480e |
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 | |
7fd59977 |
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; |