1// Created on: 2000-01-21
2// Created by: data exchange team
3// Copyright (c) 2000-2014 OPEN CASCADE SAS
4//
5// This file is part of Open CASCADE Technology software library.
6//
7// This library is free software; you can redistribute it and/or modify it under
8// the terms of the GNU Lesser General Public License version 2.1 as published
9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
12//
13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
15
16// pdn 05.01.98: renaming method ...Little to ...Small
17
18#include <ShapeExtend.hxx>
19#include <ShapeExtend_WireData.hxx>
20#include <ShapeAnalysis_Wire.hxx>
21
22//=======================================================================
23//function : SetFace
24//purpose  :
25//=======================================================================
26
27inline  void ShapeFix_Wire::SetFace(const TopoDS_Face& face)
28{
29  myAnalyzer->SetFace ( face );
30}
31
32//=======================================================================
33//function : SetSurface
34//purpose  :
35//=======================================================================
36
37inline  void ShapeFix_Wire::SetSurface(const Handle(Geom_Surface)& surf)
38{
39  myAnalyzer->SetSurface ( surf );
40}
41
42//=======================================================================
43//function : SetSurface
44//purpose  :
45//=======================================================================
46
47inline  void ShapeFix_Wire::SetSurface(const Handle(Geom_Surface)& surf,const TopLoc_Location& loc)
48{
49  myAnalyzer->SetSurface ( surf, loc );
50}
51
52//=======================================================================
53//function : IsLoaded
54//purpose  :
55//=======================================================================
56
57inline  Standard_Boolean ShapeFix_Wire::IsLoaded() const
58{
59  return myAnalyzer->IsLoaded();
60}
61
62//=======================================================================
63//function : IsReady
64//purpose  :
65//=======================================================================
66
67inline  Standard_Boolean ShapeFix_Wire::IsReady() const
68{
69  return myAnalyzer->IsReady();
70}
71
72//=======================================================================
73//function : Wire
74//purpose  :
75//=======================================================================
76
77inline  TopoDS_Wire ShapeFix_Wire::Wire() const
78{
79  return myAnalyzer->WireData()->Wire();
80}
81
82//=======================================================================
83//function : WireAPIMake
84//purpose  :
85//=======================================================================
86
87inline  TopoDS_Wire ShapeFix_Wire::WireAPIMake() const
88{
89  return myAnalyzer->WireData()->WireAPIMake();
90}
91
92//=======================================================================
93//function : Analyzer
94//purpose  :
95//=======================================================================
96
97inline Handle(ShapeAnalysis_Wire) ShapeFix_Wire::Analyzer() const
98{
99  return myAnalyzer;
100}
101
102//=======================================================================
103//function : WireData
104//purpose  :
105//=======================================================================
106
107inline const Handle(ShapeExtend_WireData)& ShapeFix_Wire::WireData() const
108{
109  return myAnalyzer->WireData();
110}
111
112//=======================================================================
113//function : Face
114//purpose  :
115//=======================================================================
116
117inline const TopoDS_Face& ShapeFix_Wire::Face() const
118{
119  return myAnalyzer->Face();
120}
121
122//=======================================================================
123//function : ModifyTopologyMode
124//purpose  :
125//=======================================================================
126
127inline  Standard_Boolean& ShapeFix_Wire::ModifyTopologyMode()
128{
129  return myTopoMode;
130}
131
132//=======================================================================
133//function : ModifyGeometryMode
134//purpose  :
135//=======================================================================
136
137inline  Standard_Boolean& ShapeFix_Wire::ModifyGeometryMode()
138{
139  return myGeomMode;
140}
141
142//=======================================================================
143//function : ModifyRemoveLoopMode
144//purpose  :
145//=======================================================================
146
147inline  Standard_Integer& ShapeFix_Wire::ModifyRemoveLoopMode()
148{
149  return myRemoveLoopMode;
150}
151
152//=======================================================================
153//function : ClosedWireMode
154//purpose  :
155//=======================================================================
156
157inline  Standard_Boolean& ShapeFix_Wire::ClosedWireMode()
158{
159  return myClosedMode;
160}
161
162//=======================================================================
163//function : PreferencePCurveMode
164//purpose  :
165//=======================================================================
166
167inline  Standard_Boolean& ShapeFix_Wire::PreferencePCurveMode()
168{
169  return myPreference2d;
170}
171
172//=======================================================================
173//function : FixGapsByRangesMode
174//purpose  :
175//=======================================================================
176
177inline  Standard_Boolean& ShapeFix_Wire::FixGapsByRangesMode()
178{
179  return myFixGapsByRanges;
180}
181
182//=======================================================================
183//function : Fix..Mode for high-level fixes
184
185//=======================================================================
186//function : FixReorderMode
187//purpose  :
188//=======================================================================
189
190inline  Standard_Integer& ShapeFix_Wire::FixReorderMode()
191{
192  return myFixReorderMode;
193}
194
195//=======================================================================
196//function : FixSmallMode
197//purpose  :
198//=======================================================================
199
200inline  Standard_Integer& ShapeFix_Wire::FixSmallMode()
201{
202  return myFixSmallMode;
203}
204
205//=======================================================================
206//function : FixConnectedMode
207//purpose  :
208//=======================================================================
209
210inline  Standard_Integer& ShapeFix_Wire::FixConnectedMode()
211{
212  return myFixConnectedMode;
213}
214
215//=======================================================================
216//function : FixEdgeCurvesMode
217//purpose  :
218//=======================================================================
219
220inline  Standard_Integer& ShapeFix_Wire::FixEdgeCurvesMode()
221{
222  return myFixEdgeCurvesMode;
223}
224
225//=======================================================================
226//function : FixDegeneratedMode
227//purpose  :
228//=======================================================================
229
230inline  Standard_Integer& ShapeFix_Wire::FixDegeneratedMode()
231{
232  return myFixDegeneratedMode;
233}
234
235//=======================================================================
236//function : Fix..Mode for low-level fixes
237
238//=======================================================================
239//function : FixReversed2dMode
240//purpose  :
241//=======================================================================
242
243inline  Standard_Integer& ShapeFix_Wire::FixReversed2dMode()
244{
245  return myFixReversed2dMode;
246}
247
248//=======================================================================
249//function : FixRemovePCurveMode
250//purpose  :
251//=======================================================================
252
253inline  Standard_Integer& ShapeFix_Wire::FixRemovePCurveMode()
254{
255  return myFixRemovePCurveMode;
256}
257
258//=======================================================================
259//function : FixRemoveCurve3dMode
260//purpose  :
261//=======================================================================
262
263inline  Standard_Integer& ShapeFix_Wire::FixRemoveCurve3dMode()
264{
265  return myFixRemoveCurve3dMode;
266}
267
268//=======================================================================
269//function : FixAddPCurveMode
270//purpose  :
271//=======================================================================
272
273inline  Standard_Integer& ShapeFix_Wire::FixAddPCurveMode()
274{
275  return myFixAddPCurveMode;
276}
277
278//=======================================================================
279//function : FixAddCurve3dMode
280//purpose  :
281//=======================================================================
282
283inline  Standard_Integer& ShapeFix_Wire::FixAddCurve3dMode()
284{
285  return myFixAddCurve3dMode;
286}
287
288//=======================================================================
289//function : FixSeamMode
290//purpose  :
291//=======================================================================
292
293inline  Standard_Integer& ShapeFix_Wire::FixSeamMode()
294{
295  return myFixSeamMode;
296}
297
298//=======================================================================
299//function : FixShiftedMode
300//purpose  :
301//=======================================================================
302
303inline  Standard_Integer& ShapeFix_Wire::FixShiftedMode()
304{
305  return myFixShiftedMode;
306}
307
308//=======================================================================
309//function : FixSameParameterMode
310//purpose  :
311//=======================================================================
312
313inline  Standard_Integer& ShapeFix_Wire::FixSameParameterMode()
314{
315  return myFixSameParameterMode;
316}
317
318//=======================================================================
319//function : FixVertexToleranceMode
320//purpose  :
321//=======================================================================
322
323inline  Standard_Integer& ShapeFix_Wire::FixVertexToleranceMode()
324{
325  return myFixVertexToleranceMode;
326}
327
328//=======================================================================
329//function : FixLackingMode
330//purpose  :
331//=======================================================================
332
333inline  Standard_Integer& ShapeFix_Wire::FixLackingMode()
334{
335  return myFixLackingMode;
336}
337
338//=======================================================================
339//function : FixSelfIntersectionMode
340//purpose  :
341//=======================================================================
342
343inline  Standard_Integer& ShapeFix_Wire::FixSelfIntersectionMode()
344{
345  return myFixSelfIntersectionMode;
346}
347
348//=======================================================================
349//function : FixGaps3dMode
350//purpose  :
351//=======================================================================
352
353inline  Standard_Integer& ShapeFix_Wire::FixGaps3dMode()
354{
355  return myFixGaps3dMode;
356}
357
358//=======================================================================
359//function : FixGaps2dMode
360//purpose  :
361//=======================================================================
362
363inline  Standard_Integer& ShapeFix_Wire::FixGaps2dMode()
364{
365  return myFixGaps2dMode;
366}
367
368//=======================================================================
369//function : FixNotchedEdgesMode
370//purpose  :
371//=======================================================================
372
373inline Standard_Integer& ShapeFix_Wire::FixNotchedEdgesMode()
374{
375  return myFixNotchedEdgesMode;
376}
377
378//=======================================================================
379//function : FixSelfIntersectingEdgeMode
380//purpose  :
381//=======================================================================
382
383inline  Standard_Integer& ShapeFix_Wire::FixSelfIntersectingEdgeMode()
384{
385  return myFixSelfIntersectingEdgeMode;
386}
387
388//=======================================================================
389//function : FixIntersectingEdgesMode
390//purpose  :
391//=======================================================================
392
393inline  Standard_Integer& ShapeFix_Wire::FixIntersectingEdgesMode()
394{
395  return myFixIntersectingEdgesMode;
396}
397
398//=======================================================================
399//function : FixNonAdjacentIntersectingEdgesMode
400//purpose  :
401//=======================================================================
402
403inline  Standard_Integer& ShapeFix_Wire::FixNonAdjacentIntersectingEdgesMode()
404{
405  return myFixNonAdjacentIntersectingEdgesMode;
406}
407
408//=======================================================================
409//function : FixTailMode
410//purpose  :
411//=======================================================================
412inline Standard_Integer& ShapeFix_Wire::FixTailMode()
413{
414  return myFixTailMode;
415}
416
417//=======================================================================
418//function : Status.. for high-level methods
419
420//=======================================================================
421//function : StatusReorder
422//purpose  :
423//=======================================================================
424
425inline  Standard_Boolean ShapeFix_Wire::StatusReorder(const ShapeExtend_Status status) const
426{
427  return ShapeExtend::DecodeStatus ( myStatusReorder, status );
428}
429
430//=======================================================================
431//function : StatusSmall
432//purpose  :
433//=======================================================================
434
435inline  Standard_Boolean ShapeFix_Wire::StatusSmall(const ShapeExtend_Status status) const
436{
437  return ShapeExtend::DecodeStatus ( myStatusSmall, status );
438}
439
440//=======================================================================
441//function : StatusConnected
442//purpose  :
443//=======================================================================
444
445inline  Standard_Boolean ShapeFix_Wire::StatusConnected(const ShapeExtend_Status status) const
446{
447  return ShapeExtend::DecodeStatus ( myStatusConnected, status );
448}
449
450//=======================================================================
451//function : StatusEdgeCurves
452//purpose  :
453//=======================================================================
454
455inline  Standard_Boolean ShapeFix_Wire::StatusEdgeCurves(const ShapeExtend_Status status) const
456{
457  return ShapeExtend::DecodeStatus ( myStatusEdgeCurves, status );
458}
459
460//=======================================================================
461//function : StatusDegenerated
462//purpose  :
463//=======================================================================
464
465inline  Standard_Boolean ShapeFix_Wire::StatusDegenerated(const ShapeExtend_Status status) const
466{
467  return ShapeExtend::DecodeStatus ( myStatusDegenerated, status );
468}
469
470//=======================================================================
471//function : StatusLacking
472//purpose  :
473//=======================================================================
474
475inline  Standard_Boolean ShapeFix_Wire::StatusLacking(const ShapeExtend_Status status) const
476{
477  return ShapeExtend::DecodeStatus ( myStatusLacking, status );
478}
479
480//=======================================================================
481//function : StatusSelfIntersection
482//purpose  :
483//=======================================================================
484
485inline  Standard_Boolean ShapeFix_Wire::StatusSelfIntersection(const ShapeExtend_Status status) const
486{
487  return ShapeExtend::DecodeStatus ( myStatusSelfIntersection, status );
488}
489
490//=======================================================================
491//function : StatusGaps3d
492//purpose  :
493//=======================================================================
494
495inline  Standard_Boolean ShapeFix_Wire::StatusGaps3d(const ShapeExtend_Status status) const
496{
497  return ShapeExtend::DecodeStatus ( myStatusGaps3d, status );
498}
499
500//=======================================================================
501//function : StatusGaps2d
502//purpose  :
503//=======================================================================
504
505inline  Standard_Boolean ShapeFix_Wire::StatusGaps2d(const ShapeExtend_Status status) const
506{
507  return ShapeExtend::DecodeStatus ( myStatusGaps2d, status );
508}
509
510//=======================================================================
511//function : StatusClosed
512//purpose  :
513//=======================================================================
514
515inline  Standard_Boolean ShapeFix_Wire::StatusClosed(const ShapeExtend_Status status) const
516{
517  return ShapeExtend::DecodeStatus ( myStatusClosed, status );
518}
519//=======================================================================
520//function : StatusNotches
521//purpose  :
522//=======================================================================
523
524inline  Standard_Boolean ShapeFix_Wire::StatusNotches(const ShapeExtend_Status status) const
525{
526  return ShapeExtend::DecodeStatus ( myStatusNotches, status );
527}
528
529//=======================================================================
530//function : StatusFixTails
531//purpose  :
532//=======================================================================
533inline Standard_Boolean ShapeFix_Wire::StatusFixTails(const ShapeExtend_Status status) const
534{
535  return ShapeExtend::DecodeStatus(myStatusFixTails, status);
536}
537
538//=======================================================================
539//function : LastFixStatus - Status for low-level methods (common)
540//purpose  :
541//=======================================================================
542
543inline  Standard_Boolean ShapeFix_Wire::LastFixStatus(const ShapeExtend_Status status) const
544{
545  return ShapeExtend::DecodeStatus ( myLastFixStatus, status );
546}
547
548//=======================================================================
549//function : FixEdgeTool
550//purpose  :
551//=======================================================================
552
553inline  Handle(ShapeFix_Edge) ShapeFix_Wire::FixEdgeTool() const
554{
555  return myFixEdge;
556}
557
558//=======================================================================
559//function : StatusRemovedSegment
560//purpose  :
561//=======================================================================
562
563inline  Standard_Boolean ShapeFix_Wire::StatusRemovedSegment() const
564{
565  return myStatusRemovedSegment;
566}
567