0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / FilletSurf / FilletSurf_InternalBuilder.cdl
CommitLineData
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
19private 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
24uses
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
44is
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
275end InternalBuilder;
276
277
278
279
280
281
282
283
284
285