b311480e |
1 | -- Created on: 1996-07-26 |
2 | -- Created by: s: Maria PUMBORIOS |
3 | -- Copyright (c) 1996-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
d5f74e42 |
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 |
973c2be1 |
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. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
b311480e |
16 | |
7fd59977 |
17 | -- Laurent BOURESCHE |
7fd59977 |
18 | |
19 | private class InternalBuilder from FilletSurf inherits FilBuilder from ChFi3d |
20 | |
21 | ---Purpose: This class is private. It is used by the class Builder |
22 | -- from FilletSurf. It computes geometric information about fillets. |
23 | |
24 | uses |
25 | SurfData from ChFiDS, |
26 | HElSpine from ChFiDS, |
27 | Spine from ChFiDS, |
28 | SequenceOfSurfData from ChFiDS, |
29 | HSurface from BRepAdaptor, |
30 | TopolTool from Adaptor3d, |
31 | Shape,Edge,Face from TopoDS, |
32 | Surface from Geom, |
33 | Curve from Geom, |
34 | TrimmedCurve from Geom, |
35 | FilletShape from ChFi3d, |
36 | ListOfShape from TopTools, |
37 | Vector from math, |
38 | Real from Standard, |
39 | Curve from Geom2d, |
40 | Pnt from gp, |
41 | StatusType,ErrorTypeStatus,StatusDone from FilletSurf, |
42 | HCurve2d from BRepAdaptor, |
43 | Orientation from TopAbs |
44 | is |
45 | |
46 | |
47 | Create(S : Shape from TopoDS; |
48 | FShape : FilletShape from ChFi3d = ChFi3d_Polynomial; |
49 | Ta : Real from Standard = 1.0e-2; |
50 | Tapp3d : Real from Standard=1.0e-4; |
51 | Tapp2d : Real from Standard=1.0e-5) |
52 | |
53 | returns InternalBuilder from FilletSurf; |
54 | |
55 | |
56 | |
57 | Add(me : in out; |
58 | E : ListOfShape from TopTools; |
59 | R : Real from Standard) |
60 | |
61 | ---Purpose: Initializes the contour with a list of Edges |
62 | -- 0 : no problem |
63 | -- 1 : empty list |
64 | -- 2 : the edges are not G1 |
65 | -- 3 : two connected faces on a same support are not G1 |
66 | -- 4 : the edge is not on shape |
67 | -- 5 : NotSharpEdge: the edge is not sharp |
68 | returns Integer from Standard; |
69 | |
70 | |
71 | Perform(me : in out); |
72 | --- computation of the fillet |
73 | |
74 | PerformSurf(me : in out; |
75 | SeqData : out SequenceOfSurfData from ChFiDS; |
76 | Guide : HElSpine from ChFiDS; |
77 | Spine : Spine from ChFiDS; |
78 | Choix : Integer from Standard; |
79 | S1 : HSurface from BRepAdaptor; |
80 | I1 : TopolTool from Adaptor3d; |
81 | S2 : HSurface from BRepAdaptor; |
82 | I2 : TopolTool from Adaptor3d; |
83 | MaxStep : Real from Standard; |
84 | Fleche : Real from Standard; |
85 | TolGuide : Real from Standard; |
86 | First,Last : in out Real from Standard; |
87 | Inside,Appro : Boolean from Standard; |
88 | Forward : Boolean from Standard; |
89 | RecOnS1,RecOnS2 : Boolean from Standard; |
90 | Soldep : Vector from math; |
91 | Intf,Intl : in out Boolean from Standard) |
92 | returns Boolean |
93 | is redefined protected; |
94 | ---Purpose: This method calculates the elements of construction of the |
95 | -- fillet (constant or evolutive). |
96 | -- |
97 | PerformSurf(me : in out; |
98 | SeqData : out SequenceOfSurfData from ChFiDS; |
99 | Guide : HElSpine from ChFiDS; |
100 | Spine : Spine from ChFiDS; |
101 | Choix : Integer from Standard; |
102 | S1 : HSurface from BRepAdaptor; |
103 | I1 : TopolTool from Adaptor3d; |
104 | PC1 : HCurve2d from BRepAdaptor; |
105 | Sref1 : HSurface from BRepAdaptor; |
106 | PCref1 : HCurve2d from BRepAdaptor; |
107 | Decroch1 : out Boolean from Standard; |
108 | S2 : HSurface from BRepAdaptor; |
109 | I2 : TopolTool from Adaptor3d; |
110 | Or2 : Orientation from TopAbs; |
111 | MaxStep : Real from Standard; |
112 | Fleche : Real from Standard; |
113 | TolGuide : Real from Standard; |
114 | First,Last : in out Real from Standard; |
115 | Inside,Appro,Forward : Boolean from Standard; |
116 | RecP,RecS,RecRst : Boolean from Standard; |
117 | Soldep : Vector from math) |
118 | is redefined protected; |
119 | |
120 | PerformSurf(me : in out; |
121 | SeqData : out SequenceOfSurfData from ChFiDS; |
122 | Guide : HElSpine from ChFiDS; |
123 | Spine : Spine from ChFiDS; |
124 | Choix : Integer from Standard; |
125 | S1 : HSurface from BRepAdaptor; |
126 | I1 : TopolTool from Adaptor3d; |
127 | Or1 : Orientation from TopAbs; |
128 | S2 : HSurface from BRepAdaptor; |
129 | I2 : TopolTool from Adaptor3d; |
130 | PC2 : HCurve2d from BRepAdaptor; |
131 | Sref2 : HSurface from BRepAdaptor; |
132 | PCref2 : HCurve2d from BRepAdaptor; |
133 | Decroch2 : out Boolean from Standard; |
134 | MaxStep : Real from Standard; |
135 | Fleche : Real from Standard; |
136 | TolGuide : Real from Standard; |
137 | First,Last : in out Real from Standard; |
138 | Inside,Appro,Forward : Boolean from Standard; |
139 | RecP,RecS,RecRst : Boolean from Standard; |
140 | Soldep : Vector from math) |
141 | is redefined protected; |
142 | |
143 | PerformSurf(me : in out; |
144 | Data : out SequenceOfSurfData from ChFiDS; |
145 | Guide : HElSpine from ChFiDS; |
146 | Spine : Spine from ChFiDS; |
147 | Choix : Integer from Standard; |
148 | S1 : HSurface from BRepAdaptor; |
149 | I1 : TopolTool from Adaptor3d; |
150 | PC1 : HCurve2d from BRepAdaptor; |
151 | Sref1 : HSurface from BRepAdaptor; |
152 | PCref1 : HCurve2d from BRepAdaptor; |
153 | Decroch1 : out Boolean from Standard; |
154 | Or1 : Orientation from TopAbs; |
155 | S2 : HSurface from BRepAdaptor; |
156 | I2 : TopolTool from Adaptor3d; |
157 | PC2 : HCurve2d from BRepAdaptor; |
158 | Sref2 : HSurface from BRepAdaptor; |
159 | PCref2 : HCurve2d from BRepAdaptor; |
160 | Decroch2 : out Boolean from Standard; |
161 | Or2 : Orientation from TopAbs; |
162 | MaxStep : Real from Standard; |
163 | Fleche : Real from Standard; |
164 | TolGuide : Real from Standard; |
165 | First,Last : in out Real from Standard; |
166 | Inside,Appro,Forward : Boolean from Standard; |
167 | RecP1,RecRst1 : Boolean from Standard; |
168 | RecP2,RecRst2 : Boolean from Standard; |
169 | Soldep : Vector from math) |
170 | is redefined protected; |
171 | |
172 | Done (me) returns Boolean from Standard; |
173 | |
174 | NbSurface(me) returns Integer from Standard; |
175 | ---Purpose: gives the number of NUBS surfaces of the Fillet. |
176 | |
177 | SurfaceFillet (me;Index:Integer from Standard) |
178 | ---Purpose: gives the NUBS surface of index Index. |
179 | ---C++: return const & |
180 | returns Surface from Geom; |
181 | |
182 | TolApp3d (me;Index:Integer from Standard) returns Real from Standard; |
183 | ---Purpose: gives the 3d tolerance reached during approximation |
184 | -- of the surface of index Index |
185 | |
186 | |
187 | SupportFace1 (me;Index:Integer from Standard) |
188 | ---Purpose:gives the first support face relative to SurfaceFillet(Index); |
189 | ---C++:return const & |
190 | returns Face from TopoDS; |
191 | |
192 | SupportFace2 (me;Index:Integer from Standard) |
193 | ---Purpose:gives the second support face relative to SurfaceFillet(Index); |
194 | ---C++:return const & |
195 | returns Face from TopoDS; |
196 | |
197 | CurveOnFace1 (me;Index:Integer from Standard) |
198 | ---C++: return const & |
199 | --- Purpose: gives the 3d curve of SurfaceFillet(Index) on SupportFace1(Index) |
200 | returns Curve from Geom; |
201 | |
202 | CurveOnFace2 (me;Index:Integer from Standard) |
203 | ---C++: return const & |
204 | ---Purpose: gives the 3d curve of SurfaceFillet(Index) on SupportFace2(Index) |
205 | returns Curve from Geom; |
206 | |
207 | PCurveOnFace1(me;Index:Integer from Standard) |
208 | ---Purpose:gives the PCurve associated to CurvOnSup1(Index) on the support face |
209 | ---C++: return const& |
210 | returns Curve from Geom2d; |
211 | |
212 | PCurve1OnFillet (me;Index:Integer from Standard) |
213 | ---Purpose: gives the PCurve associated to CurveOnFace1(Index) on the Fillet |
214 | ---C++: return const& |
215 | returns Curve from Geom2d; |
216 | |
217 | PCurveOnFace2(me;Index:Integer from Standard) |
218 | ---Purpose: gives the PCurve associated to CurveOnSup2(Index) on the support face |
219 | ---C++: return const& |
220 | returns Curve from Geom2d; |
221 | |
222 | PCurve2OnFillet (me;Index:Integer from Standard) |
223 | ---Purpose: gives the PCurve associated to CurveOnSup2(Index) on the fillet |
224 | ---C++: return const& |
225 | returns Curve from Geom2d; |
226 | |
227 | FirstParameter(me) |
228 | ---Purpose:gives the parameter of the fillet on the first edge. |
229 | -- |
230 | -- |
231 | -- |
232 | returns Real from Standard; |
233 | |
234 | LastParameter (me) |
235 | ---Purpose: gives the parameter of the fillet on the last edge |
236 | -- |
237 | returns Real from Standard; |
238 | |
239 | StartSectionStatus(me) |
240 | -- returns: |
241 | -- TwoExtremityOnEdge: each extremity of start section of the Fillet is |
242 | -- on the edge of the corresponding support face. |
243 | -- OneExtremityOnEdge: only one of the extremities of start section of the Fillet |
244 | -- is on the edge of the corresponding support face. |
245 | -- NoExtremityOnEdge: any extremity of the start section ofthe fillet is on |
246 | -- the edge of the corresponding support face. |
247 | |
248 | returns StatusType from FilletSurf; |
249 | |
250 | EndSectionStatus(me) |
251 | -- returns: |
252 | -- twoExtremityonEdge : each extremity of end section of the Fillet is |
253 | -- on the edge of the corresponding support face. |
254 | -- OneExtremityOnEdge: only one of the extremities of end section of the Fillet |
255 | -- is on the edge of the corresponding support face. |
256 | -- NoExtremityOnEdge : any extremity of the end section of the fillet is on |
257 | -- the edge of the corresponding support face. |
258 | |
259 | returns StatusType from FilletSurf; |
260 | |
261 | |
262 | Simulate (me:in out); |
263 | -- computes only the sections used in the computation of the fillet |
264 | |
265 | NbSection(me;IndexSurf:Integer from Standard) |
266 | returns Integer from Standard; |
267 | -- gives the number of sections relative to SurfaceFillet(IndexSurf) |
268 | |
269 | Section(me;IndexSurf:Integer from Standard;IndexSec:Integer from Standard; |
270 | Circ: out TrimmedCurve from Geom); |
271 | -- gives the arc of circle corresponding to section number |
272 | -- IndexSec of SurfaceFillet(IndexSurf) (The basis curve of the |
273 | -- trimmed curve is a Geom_Circle) |
274 | |
275 | end InternalBuilder; |
276 | |
277 | |
278 | |
279 | |
280 | |
281 | |
282 | |
283 | |
284 | |
285 | |