1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
|
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to
// this header file considered to be the "object code" form of the original source.
#ifndef _ChFi3d_Builder_HeaderFile
#define _ChFi3d_Builder_HeaderFile
#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif
#ifndef _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
#ifndef _ChFiDS_Map_HeaderFile
#include <ChFiDS_Map.hxx>
#endif
#ifndef _Handle_TopOpeBRepDS_HDataStructure_HeaderFile
#include <Handle_TopOpeBRepDS_HDataStructure.hxx>
#endif
#ifndef _Handle_TopOpeBRepBuild_HBuilder_HeaderFile
#include <Handle_TopOpeBRepBuild_HBuilder.hxx>
#endif
#ifndef _ChFiDS_ListOfStripe_HeaderFile
#include <ChFiDS_ListOfStripe.hxx>
#endif
#ifndef _ChFiDS_StripeMap_HeaderFile
#include <ChFiDS_StripeMap.hxx>
#endif
#ifndef _ChFiDS_Regularities_HeaderFile
#include <ChFiDS_Regularities.hxx>
#endif
#ifndef _TopTools_ListOfShape_HeaderFile
#include <TopTools_ListOfShape.hxx>
#endif
#ifndef _TopTools_DataMapOfShapeListOfInteger_HeaderFile
#include <TopTools_DataMapOfShapeListOfInteger.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_ChFiDS_Spine_HeaderFile
#include <Handle_ChFiDS_Spine.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _ChFiDS_ErrorStatus_HeaderFile
#include <ChFiDS_ErrorStatus.hxx>
#endif
#ifndef _Handle_ChFiDS_SurfData_HeaderFile
#include <Handle_ChFiDS_SurfData.hxx>
#endif
#ifndef _Handle_ChFiDS_HElSpine_HeaderFile
#include <Handle_ChFiDS_HElSpine.hxx>
#endif
#ifndef _Handle_BRepAdaptor_HSurface_HeaderFile
#include <Handle_BRepAdaptor_HSurface.hxx>
#endif
#ifndef _Handle_Adaptor3d_TopolTool_HeaderFile
#include <Handle_Adaptor3d_TopolTool.hxx>
#endif
#ifndef _Handle_BRepAdaptor_HCurve2d_HeaderFile
#include <Handle_BRepAdaptor_HCurve2d.hxx>
#endif
#ifndef _TopAbs_Orientation_HeaderFile
#include <TopAbs_Orientation.hxx>
#endif
#ifndef _Handle_BRepBlend_Line_HeaderFile
#include <Handle_BRepBlend_Line.hxx>
#endif
#ifndef _Handle_Adaptor3d_HSurface_HeaderFile
#include <Handle_Adaptor3d_HSurface.hxx>
#endif
#ifndef _Handle_Adaptor2d_HCurve2d_HeaderFile
#include <Handle_Adaptor2d_HCurve2d.hxx>
#endif
#ifndef _Handle_ChFiDS_Stripe_HeaderFile
#include <Handle_ChFiDS_Stripe.hxx>
#endif
#ifndef _Handle_BRepTopAdaptor_TopolTool_HeaderFile
#include <Handle_BRepTopAdaptor_TopolTool.hxx>
#endif
#ifndef _TopAbs_State_HeaderFile
#include <TopAbs_State.hxx>
#endif
#ifndef _Handle_Geom2d_Curve_HeaderFile
#include <Handle_Geom2d_Curve.hxx>
#endif
class TopOpeBRepDS_HDataStructure;
class TopOpeBRepBuild_HBuilder;
class Standard_OutOfRange;
class Standard_NoSuchObject;
class Standard_ConstructionError;
class TopoDS_Shape;
class TopoDS_Edge;
class ChFiDS_Spine;
class TopoDS_Vertex;
class TopTools_ListOfShape;
class Geom_Surface;
class ChFiDS_SurfData;
class ChFiDS_HElSpine;
class BRepAdaptor_HSurface;
class Adaptor3d_TopolTool;
class math_Vector;
class BRepAdaptor_HCurve2d;
class BRepBlend_Line;
class Adaptor3d_HSurface;
class Blend_Function;
class Blend_FuncInv;
class Adaptor2d_HCurve2d;
class Blend_SurfRstFunction;
class Blend_SurfPointFuncInv;
class Blend_SurfCurvFuncInv;
class Blend_RstRstFunction;
class Blend_CurvPointFuncInv;
class ChFiDS_Stripe;
class BRepTopAdaptor_TopolTool;
class ChFiDS_SequenceOfSurfData;
class gp_Pnt2d;
class ChFiDS_ListOfStripe;
class ChFiDS_CommonPoint;
class TopoDS_Face;
class AppBlend_Approx;
class Geom2d_Curve;
//! Root class for calculation of surfaces (fillets, <br>
//! chamfers) destined to smooth edges of <br>
//! a gap on a Shape and the reconstruction of the Shape. <br>
class ChFi3d_Builder {
public:
void* operator new(size_t,void* anAddress)
{
return anAddress;
}
void* operator new(size_t size)
{
return Standard::Allocate(size);
}
void operator delete(void *anAddress)
{
if (anAddress) Standard::Free((Standard_Address&)anAddress);
}
Standard_EXPORT virtual void Delete() ;
Standard_EXPORT virtual ~ChFi3d_Builder(){Delete() ; }
Standard_EXPORT void SetParams(const Standard_Real Tang,const Standard_Real Tesp,const Standard_Real T2d,const Standard_Real TApp3d,const Standard_Real TolApp2d,const Standard_Real Fleche) ;
Standard_EXPORT void SetContinuity(const GeomAbs_Shape InternalContinuity,const Standard_Real AngularTolerance) ;
//! extracts from the list the contour containing edge E. <br>
//! <br>
Standard_EXPORT void Remove(const TopoDS_Edge& E) ;
//! gives the number of the contour containing E or 0 <br>
//! if E does not belong to any contour. <br>
Standard_EXPORT Standard_Integer Contains(const TopoDS_Edge& E) const;
//! gives the number of the contour containing E or 0 <br>
//! if E does not belong to any contour. <br>
//! Sets in IndexInSpine the index of E in the contour if it's found <br>
Standard_EXPORT Standard_Integer Contains(const TopoDS_Edge& E,Standard_Integer& IndexInSpine) const;
//! gives the number of disjoint contours on which <br>
//! the fillets are calculated <br>
Standard_EXPORT Standard_Integer NbElements() const;
//! gives the n'th set of edges (contour) <br>//! if I >NbElements() <br>
Standard_EXPORT Handle_ChFiDS_Spine Value(const Standard_Integer I) const;
//! returns the length of the contour of index IC. <br>
Standard_EXPORT Standard_Real Length(const Standard_Integer IC) const;
//! returns the First vertex V of <br>
//! the contour of index IC. <br>
Standard_EXPORT TopoDS_Vertex FirstVertex(const Standard_Integer IC) const;
//! returns the Last vertex V of <br>
//! the contour of index IC. <br>
Standard_EXPORT TopoDS_Vertex LastVertex(const Standard_Integer IC) const;
//! returns the abscissa of the vertex V on <br>
//! the contour of index IC. <br>
Standard_EXPORT Standard_Real Abscissa(const Standard_Integer IC,const TopoDS_Vertex& V) const;
//! returns the relative abscissa([0.,1.]) of the <br>
//! vertex V on the contour of index IC. <br>
Standard_EXPORT Standard_Real RelativeAbscissa(const Standard_Integer IC,const TopoDS_Vertex& V) const;
//! returns true if the contour of index IC is closed <br>
//! an tangent. <br>
Standard_EXPORT Standard_Boolean ClosedAndTangent(const Standard_Integer IC) const;
//! returns true if the contour of index IC is closed <br>
Standard_EXPORT Standard_Boolean Closed(const Standard_Integer IC) const;
//! general calculation of geometry on all edges, <br>
//! topologic reconstruction. <br>
Standard_EXPORT void Compute() ;
//! returns True if the computation is success <br>
Standard_EXPORT Standard_Boolean IsDone() const;
//! if (Isdone()) makes the result. <br>//! if (!Isdone()) <br>
Standard_EXPORT TopoDS_Shape Shape() const;
//! Advanced function for the history <br>
Standard_EXPORT const TopTools_ListOfShape& Generated(const TopoDS_Shape& EouV) ;
//! Returns the number of contours on which the calculation <br>
//! has failed. <br>
Standard_EXPORT Standard_Integer NbFaultyContours() const;
//! Returns the number of I'th contour on which the calculation <br>
//! has failed. <br>
Standard_EXPORT Standard_Integer FaultyContour(const Standard_Integer I) const;
//! Returns the number of surfaces calculated on the contour IC. <br>
Standard_EXPORT Standard_Integer NbComputedSurfaces(const Standard_Integer IC) const;
//! Returns the IS'th surface calculated on the contour IC. <br>
Standard_EXPORT Handle_Geom_Surface ComputedSurface(const Standard_Integer IC,const Standard_Integer IS) const;
//! Returns the number of vertices on which the calculation <br>
//! has failed. <br>
Standard_EXPORT Standard_Integer NbFaultyVertices() const;
//! Returns the IV'th vertex on which the calculation has failed. <br>
Standard_EXPORT TopoDS_Vertex FaultyVertex(const Standard_Integer IV) const;
//! returns True if a partial result has been calculated <br>
Standard_EXPORT Standard_Boolean HasResult() const;
//! if (HasResult()) returns partial result <br>//! if (!HasResult()) <br>
Standard_EXPORT TopoDS_Shape BadShape() const;
//! for the stripe IC ,indication on the cause <br>
//! of failure WalkingFailure,TwistedSurface,Error, Ok <br>
Standard_EXPORT ChFiDS_ErrorStatus StripeStatus(const Standard_Integer IC) const;
//! Reset all results of compute and returns the algorythm <br>
//! in the state of the last acquisition to <br>
//! enable modification of contours or areas. <br>
Standard_EXPORT void Reset() ;
//! Returns the Builder of topologic operations. <br>
Standard_EXPORT Handle_TopOpeBRepBuild_HBuilder Builder() const;
//! Method, implemented in the inheritants, calculates <br>
//! the elements of construction of the surface (fillet or <br>
//! chamfer). <br>
Standard_EXPORT Standard_Boolean SplitKPart(const Handle(ChFiDS_SurfData)& Data,ChFiDS_SequenceOfSurfData& SetData,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Iedge,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,Standard_Boolean& Intf,Standard_Boolean& Intl) ;
Standard_EXPORT Standard_Integer PerformTwoCornerbyInter(const Standard_Integer Index) ;
protected:
Standard_EXPORT ChFi3d_Builder(const TopoDS_Shape& S,const Standard_Real Ta);
Standard_EXPORT virtual void SimulKPart(const Handle(ChFiDS_SurfData)& SD) const = 0;
Standard_EXPORT virtual Standard_Boolean SimulSurf(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecOnS1,const Standard_Boolean RecOnS2,const math_Vector& Soldep,Standard_Boolean& Intf,Standard_Boolean& Intl) = 0;
Standard_EXPORT virtual void SimulSurf(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HCurve2d)& PC1,const Handle(BRepAdaptor_HSurface)& Sref1,const Handle(BRepAdaptor_HCurve2d)& PCref1,Standard_Boolean& Decroch1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const TopAbs_Orientation Or2,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst,const math_Vector& Soldep) ;
Standard_EXPORT virtual void SimulSurf(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const TopAbs_Orientation Or1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Handle(BRepAdaptor_HCurve2d)& PC2,const Handle(BRepAdaptor_HSurface)& Sref2,const Handle(BRepAdaptor_HCurve2d)& PCref2,Standard_Boolean& Decroch2,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst,const math_Vector& Soldep) ;
Standard_EXPORT virtual void SimulSurf(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HCurve2d)& PC1,const Handle(BRepAdaptor_HSurface)& Sref1,const Handle(BRepAdaptor_HCurve2d)& PCref1,Standard_Boolean& Decroch1,const TopAbs_Orientation Or1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Handle(BRepAdaptor_HCurve2d)& PC2,const Handle(BRepAdaptor_HSurface)& Sref2,const Handle(BRepAdaptor_HCurve2d)& PCref2,Standard_Boolean& Decroch2,const TopAbs_Orientation Or2,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP1,const Standard_Boolean RecRst1,const Standard_Boolean RecP2,const Standard_Boolean RecRst2,const math_Vector& Soldep) ;
Standard_EXPORT Standard_Boolean SimulData(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& Guide,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,Blend_Function& Func,Blend_FuncInv& FInv,const Standard_Real PFirst,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const math_Vector& Soldep,const Standard_Integer NbSecMin,const Standard_Boolean RecOnS1 = Standard_False,const Standard_Boolean RecOnS2 = Standard_False) ;
Standard_EXPORT Standard_Boolean SimulData(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& HGuide,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor2d_HCurve2d)& PC2,const Handle(Adaptor3d_TopolTool)& I2,Standard_Boolean& Decroch,Blend_SurfRstFunction& Func,Blend_FuncInv& FInv,Blend_SurfPointFuncInv& FInvP,Blend_SurfCurvFuncInv& FInvC,const Standard_Real PFirst,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const math_Vector& Soldep,const Standard_Integer NbSecMin,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst) ;
Standard_EXPORT Standard_Boolean SimulData(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& HGuide,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor2d_HCurve2d)& PC1,const Handle(Adaptor3d_TopolTool)& I1,Standard_Boolean& Decroch1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor2d_HCurve2d)& PC2,const Handle(Adaptor3d_TopolTool)& I2,Standard_Boolean& Decroch2,Blend_RstRstFunction& Func,Blend_SurfCurvFuncInv& FInv1,Blend_CurvPointFuncInv& FInvP1,Blend_SurfCurvFuncInv& FInv2,Blend_CurvPointFuncInv& FInvP2,const Standard_Real PFirst,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const math_Vector& Soldep,const Standard_Integer NbSecMin,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP1,const Standard_Boolean RecRst1,const Standard_Boolean RecP2,const Standard_Boolean RecRst2) ;
Standard_EXPORT virtual void SetRegul() = 0;
Standard_EXPORT Standard_Boolean PerformElement(const Handle(ChFiDS_Spine)& CElement) ;
Standard_EXPORT void PerformExtremity(const Handle(ChFiDS_Spine)& CElement) ;
Standard_EXPORT void PerformSetOfSurf(Handle(ChFiDS_Stripe)& S,const Standard_Boolean Simul = Standard_False) ;
Standard_EXPORT void PerformSetOfKPart(Handle(ChFiDS_Stripe)& S,const Standard_Boolean Simul = Standard_False) ;
Standard_EXPORT void PerformSetOfKGen(Handle(ChFiDS_Stripe)& S,const Standard_Boolean Simul = Standard_False) ;
Standard_EXPORT void Trunc(const Handle(ChFiDS_SurfData)& SD,const Handle(ChFiDS_Spine)& Spine,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_HSurface)& S2,const Standard_Integer iedge,const Standard_Boolean isfirst,const Standard_Integer cntlFiOnS) ;
Standard_EXPORT void CallPerformSurf(Handle(ChFiDS_Stripe)& Stripe,const Standard_Boolean Simul,ChFiDS_SequenceOfSurfData& SeqSD,Handle(ChFiDS_SurfData)& SD,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Handle(BRepAdaptor_HSurface)& HS1,const Handle(BRepAdaptor_HSurface)& HS3,const gp_Pnt2d& P1,const gp_Pnt2d& P3,Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HSurface)& HS2,const Handle(BRepAdaptor_HSurface)& HS4,const gp_Pnt2d& P2,const gp_Pnt2d& P4,Handle(Adaptor3d_TopolTool)& I2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecOnS1,const Standard_Boolean RecOnS2,math_Vector& Soldep,Standard_Boolean& Intf,Standard_Boolean& Intl,Handle(BRepAdaptor_HSurface)& Surf1,Handle(BRepAdaptor_HSurface)& Surf2) ;
//! Method, implemented in the inheritants, calculating <br>
//! elements of construction of the surface (fillet or <br>
//! chamfer). <br>
Standard_EXPORT virtual Standard_Boolean PerformSurf(ChFiDS_SequenceOfSurfData& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecOnS1,const Standard_Boolean RecOnS2,const math_Vector& Soldep,Standard_Boolean& Intf,Standard_Boolean& Intl) = 0;
//! Method, implemented in inheritants, calculates <br>
//! the elements of construction of the surface (fillet <br>
//! or chamfer) contact edge/face. <br>
Standard_EXPORT virtual void PerformSurf(ChFiDS_SequenceOfSurfData& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HCurve2d)& PC1,const Handle(BRepAdaptor_HSurface)& Sref1,const Handle(BRepAdaptor_HCurve2d)& PCref1,Standard_Boolean& Decroch1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const TopAbs_Orientation Or2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst,const math_Vector& Soldep) ;
//! Method, implemented in inheritants, calculates <br>
//! the elements of construction of the surface (fillet <br>
//! or chamfer) contact edge/face. <br>
Standard_EXPORT virtual void PerformSurf(ChFiDS_SequenceOfSurfData& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const TopAbs_Orientation Or1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Handle(BRepAdaptor_HCurve2d)& PC2,const Handle(BRepAdaptor_HSurface)& Sref2,const Handle(BRepAdaptor_HCurve2d)& PCref2,Standard_Boolean& Decroch2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst,const math_Vector& Soldep) ;
//! Method, implemented in inheritants, calculates <br>
//! the elements of construction of the surface (fillet <br>
//! or chamfer) contact edge/edge. <br>
Standard_EXPORT virtual void PerformSurf(ChFiDS_SequenceOfSurfData& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HCurve2d)& PC1,const Handle(BRepAdaptor_HSurface)& Sref1,const Handle(BRepAdaptor_HCurve2d)& PCref1,Standard_Boolean& Decroch1,const TopAbs_Orientation Or1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Handle(BRepAdaptor_HCurve2d)& PC2,const Handle(BRepAdaptor_HSurface)& Sref2,const Handle(BRepAdaptor_HCurve2d)& PCref2,Standard_Boolean& Decroch2,const TopAbs_Orientation Or2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP1,const Standard_Boolean RecRst1,const Standard_Boolean RecP2,const Standard_Boolean RecRst2,const math_Vector& Soldep) ;
Standard_EXPORT virtual void PerformTwoCorner(const Standard_Integer Index) = 0;
Standard_EXPORT virtual void PerformThreeCorner(const Standard_Integer Index) = 0;
Standard_EXPORT void PerformMoreThreeCorner(const Standard_Integer Index,const Standard_Integer nbcourb) ;
Standard_EXPORT virtual void ExtentOneCorner(const TopoDS_Vertex& V,const Handle(ChFiDS_Stripe)& S) = 0;
Standard_EXPORT virtual void ExtentTwoCorner(const TopoDS_Vertex& V,const ChFiDS_ListOfStripe& LS) = 0;
Standard_EXPORT virtual void ExtentThreeCorner(const TopoDS_Vertex& V,const ChFiDS_ListOfStripe& LS) = 0;
Standard_EXPORT virtual Standard_Boolean PerformFirstSection(const Handle(ChFiDS_Spine)& S,const Handle(ChFiDS_HElSpine)& HGuide,const Standard_Integer Choix,Handle(BRepAdaptor_HSurface)& S1,Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I1,const Handle(Adaptor3d_TopolTool)& I2,const Standard_Real Par,math_Vector& SolDep,TopAbs_State& Pos1,TopAbs_State& Pos2) const = 0;
Standard_EXPORT Standard_Boolean SearchFace(const Handle(ChFiDS_Spine)& Sp,const ChFiDS_CommonPoint& Pc,const TopoDS_Face& FRef,TopoDS_Face& FVoi) const;
Standard_EXPORT Standard_Boolean StripeOrientations(const Handle(ChFiDS_Spine)& Sp,TopAbs_Orientation& Or1,TopAbs_Orientation& Or2,Standard_Integer& ChoixConge) const;
//! Calculates a Line of contact face/face. <br>
Standard_EXPORT Standard_Boolean ComputeData(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,Blend_Function& Func,Blend_FuncInv& FInv,const Standard_Real PFirst,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const math_Vector& Soldep,Standard_Boolean& Intf,Standard_Boolean& Intl,Standard_Boolean& Gd1,Standard_Boolean& Gd2,Standard_Boolean& Gf1,Standard_Boolean& Gf2,const Standard_Boolean RecOnS1 = Standard_False,const Standard_Boolean RecOnS2 = Standard_False) ;
//! Calculates a Line of contact edge/face. <br>
Standard_EXPORT Standard_Boolean ComputeData(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& HGuide,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor2d_HCurve2d)& PC2,const Handle(Adaptor3d_TopolTool)& I2,Standard_Boolean& Decroch,Blend_SurfRstFunction& Func,Blend_FuncInv& FInv,Blend_SurfPointFuncInv& FInvP,Blend_SurfCurvFuncInv& FInvC,const Standard_Real PFirst,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const math_Vector& Soldep,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst) ;
//! Calculates a Line of contact edge/edge. <br>
Standard_EXPORT Standard_Boolean ComputeData(Handle(ChFiDS_SurfData)& Data,const Handle(ChFiDS_HElSpine)& HGuide,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor2d_HCurve2d)& PC1,const Handle(Adaptor3d_TopolTool)& I1,Standard_Boolean& Decroch1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Adaptor2d_HCurve2d)& PC2,const Handle(Adaptor3d_TopolTool)& I2,Standard_Boolean& Decroch2,Blend_RstRstFunction& Func,Blend_SurfCurvFuncInv& FInv1,Blend_CurvPointFuncInv& FInvP1,Blend_SurfCurvFuncInv& FInv2,Blend_CurvPointFuncInv& FInvP2,const Standard_Real PFirst,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const math_Vector& Soldep,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP1,const Standard_Boolean RecRst1,const Standard_Boolean RecP2,const Standard_Boolean RecRst2) ;
Standard_EXPORT Standard_Boolean CompleteData(Handle(ChFiDS_SurfData)& Data,Blend_Function& Func,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_HSurface)& S2,const TopAbs_Orientation Or1,const Standard_Boolean Gd1,const Standard_Boolean Gd2,const Standard_Boolean Gf1,const Standard_Boolean Gf2,const Standard_Boolean Reversed = Standard_False) ;
Standard_EXPORT Standard_Boolean CompleteData(Handle(ChFiDS_SurfData)& Data,Blend_SurfRstFunction& Func,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_HSurface)& S2,const TopAbs_Orientation Or,const Standard_Boolean Reversed) ;
Standard_EXPORT Standard_Boolean CompleteData(Handle(ChFiDS_SurfData)& Data,Blend_RstRstFunction& Func,Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_HSurface)& S2,const TopAbs_Orientation Or) ;
Standard_EXPORT Standard_Boolean StoreData(Handle(ChFiDS_SurfData)& Data,const AppBlend_Approx& Approx,const Handle(BRepBlend_Line)& Lin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Adaptor3d_HSurface)& S2,const TopAbs_Orientation Or1,const Standard_Boolean Gd1,const Standard_Boolean Gd2,const Standard_Boolean Gf1,const Standard_Boolean Gf2,const Standard_Boolean Reversed = Standard_False) ;
Standard_EXPORT Standard_Boolean CompleteData(Handle(ChFiDS_SurfData)& Data,const Handle(Geom_Surface)& Surfcoin,const Handle(Adaptor3d_HSurface)& S1,const Handle(Geom2d_Curve)& PC1,const Handle(Adaptor3d_HSurface)& S2,const Handle(Geom2d_Curve)& PC2,const TopAbs_Orientation Or,const Standard_Boolean On1,const Standard_Boolean Gd1,const Standard_Boolean Gd2,const Standard_Boolean Gf1,const Standard_Boolean Gf2) ;
Standard_Real tolappangle;
Standard_Real tolesp;
Standard_Real tol2d;
Standard_Real tolapp3d;
Standard_Real tolapp2d;
Standard_Real fleche;
GeomAbs_Shape myConti;
ChFiDS_Map myEFMap;
ChFiDS_Map myESoMap;
ChFiDS_Map myEShMap;
ChFiDS_Map myVFMap;
ChFiDS_Map myVEMap;
Handle_TopOpeBRepDS_HDataStructure myDS;
Handle_TopOpeBRepBuild_HBuilder myCoup;
ChFiDS_ListOfStripe myListStripe;
ChFiDS_StripeMap myVDataMap;
ChFiDS_Regularities myRegul;
ChFiDS_ListOfStripe badstripes;
TopTools_ListOfShape badvertices;
TopTools_DataMapOfShapeListOfInteger myEVIMap;
Standard_Boolean done;
Standard_Boolean hasresult;
private:
Standard_EXPORT Standard_Boolean FaceTangency(const TopoDS_Edge& E0,const TopoDS_Edge& E1,const TopoDS_Vertex& V) const;
Standard_EXPORT void PerformSetOfSurfOnElSpine(const Handle(ChFiDS_HElSpine)& ES,Handle(ChFiDS_Stripe)& St,Handle(BRepTopAdaptor_TopolTool)& It1,Handle(BRepTopAdaptor_TopolTool)& It2,const Standard_Boolean Simul = Standard_False) ;
Standard_EXPORT void PerformFilletOnVertex(const Standard_Integer Index) ;
Standard_EXPORT void PerformSingularCorner(const Standard_Integer Index) ;
Standard_EXPORT void PerformOneCorner(const Standard_Integer Index,const Standard_Boolean PrepareOnSame = Standard_False) ;
Standard_EXPORT void IntersectMoreCorner(const Standard_Integer Index) ;
Standard_EXPORT void PerformMoreSurfdata(const Standard_Integer Index) ;
Standard_EXPORT void PerformIntersectionAtEnd(const Standard_Integer Index) ;
Standard_EXPORT void ExtentAnalyse() ;
Standard_EXPORT Standard_Boolean FindFace(const TopoDS_Vertex& V,const ChFiDS_CommonPoint& P1,const ChFiDS_CommonPoint& P2,TopoDS_Face& Fv) const;
Standard_EXPORT Standard_Boolean FindFace(const TopoDS_Vertex& V,const ChFiDS_CommonPoint& P1,const ChFiDS_CommonPoint& P2,TopoDS_Face& Fv,const TopoDS_Face& Favoid) const;
Standard_EXPORT Standard_Boolean MoreSurfdata(const Standard_Integer Index) const;
Standard_EXPORT Standard_Boolean StartSol(const Handle(ChFiDS_Spine)& Spine,Handle(BRepAdaptor_HSurface)& HS,gp_Pnt2d& P,Handle(BRepAdaptor_HCurve2d)& HC,Standard_Real& W,const Handle(ChFiDS_SurfData)& SD,const Standard_Boolean isFirst,const Standard_Integer OnS,Handle(BRepAdaptor_HSurface)& HSref,Handle(BRepAdaptor_HCurve2d)& HCref,Standard_Boolean& RecP,Standard_Boolean& RecS,Standard_Boolean& RecRst,Standard_Boolean& C1Obst,Handle(BRepAdaptor_HSurface)& HSbis,gp_Pnt2d& Pbis,const Standard_Boolean Decroch,const TopoDS_Vertex& Vref) const;
Standard_EXPORT void StartSol(const Handle(ChFiDS_Stripe)& S,const Handle(ChFiDS_HElSpine)& HGuide,Handle(BRepAdaptor_HSurface)& HS1,Handle(BRepAdaptor_HSurface)& HS2,Handle(BRepTopAdaptor_TopolTool)& I1,Handle(BRepTopAdaptor_TopolTool)& I2,gp_Pnt2d& P1,gp_Pnt2d& P2,Standard_Real& First) const;
Standard_EXPORT void ConexFaces(const Handle(ChFiDS_Spine)& Sp,const Standard_Integer IEdge,const Standard_Integer RefChoix,Handle(BRepAdaptor_HSurface)& HS1,Handle(BRepAdaptor_HSurface)& HS2) const;
TopoDS_Shape myShape;
Standard_Real angular;
TopTools_ListOfShape myGenerated;
TopoDS_Shape myShapeResult;
TopoDS_Shape badShape;
};
// other Inline functions and methods (like "C++: function call" methods)
#endif
|