b311480e |
1 | -- Created on: 1995-12-12 |
2 | -- Created by: Jacques GOUSSARD |
3 | -- Copyright (c) 1995-1999 Matra Datavision |
4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS |
5 | -- |
6 | -- The content of this file is subject to the Open CASCADE Technology Public |
7 | -- License Version 6.5 (the "License"). You may not use the content of this file |
8 | -- except in compliance with the License. Please obtain a copy of the License |
9 | -- at http://www.opencascade.org and read it completely before using this file. |
10 | -- |
11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its |
12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. |
13 | -- |
14 | -- The Original Code and all software distributed under the License is |
15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the |
16 | -- Initial Developer hereby disclaims all such warranties, including without |
17 | -- limitation, any warranties of merchantability, fitness for a particular |
18 | -- purpose or non-infringement. Please see the License for the specific terms |
19 | -- and conditions governing the rights and limitations under the License. |
20 | |
7fd59977 |
21 | -- modified by eap Fri Dec 21 12:17:40 2001 (bug OCC35) |
22 | -- Closed2d() added |
23 | |
24 | |
25 | class Wire from BRepCheck inherits Result from BRepCheck |
26 | |
27 | ---Purpose: |
28 | |
29 | uses Shape from TopoDS, |
30 | Face from TopoDS, |
31 | Wire from TopoDS, |
32 | Edge from TopoDS, |
33 | IndexedDataMapOfShapeListOfShape from TopTools, |
34 | Status from BRepCheck |
35 | |
36 | is |
37 | |
38 | Create(W: Wire from TopoDS) |
39 | |
40 | returns mutable Wire from BRepCheck; |
41 | |
42 | |
43 | InContext(me: mutable; ContextShape: Shape from TopoDS); |
44 | ---Purpose: if <ContextShape> is a face, consequently checks |
45 | -- SelfIntersect(), Closed(), Orientation() and |
46 | -- Closed2d until faulty is found |
47 | |
48 | Minimum(me: mutable); |
49 | ---Purpose: checks that the wire is not empty and "connex". |
50 | -- Called by constructor |
51 | |
52 | Blind(me: mutable); |
53 | ---Purpose: Does nothing |
54 | |
55 | |
56 | |
57 | Closed(me: mutable; Update: Boolean from Standard = Standard_False) |
58 | ---Purpose: Checks if the oriented edges of the wire give a |
59 | -- closed wire. If the wire is closed, returns |
60 | -- BRepCheck_NoError. Warning : if the first and |
61 | -- last edge are infinite, the wire will be |
62 | -- considered as a closed one. If <Update> is set to |
63 | -- Standard_True, registers the status in the list. |
64 | -- May return (and registers): |
65 | -- **BRepCheck_NotConnected, if wire is not |
66 | -- topologically closed |
67 | -- **BRepCheck_RedundantEdge, if an edge is in wire |
68 | -- more than 3 times or in case of 2 occurences if |
69 | -- not with FORWARD and REVERSED orientation. |
70 | -- **BRepCheck_NoError |
71 | returns Status from BRepCheck |
72 | is static; |
73 | |
74 | Closed2d(me: mutable; F : Face from TopoDS; |
75 | Update: Boolean from Standard = Standard_False) |
76 | ---Purpose: Checks if edges of the wire give a wire closed in |
77 | -- 2d space. |
78 | -- Returns BRepCheck_NoError, or BRepCheck_NotClosed |
79 | -- If <Update> is set to Standard_True, registers the |
80 | -- status in the list. |
81 | returns Status from BRepCheck |
82 | is static; |
83 | |
84 | Orientation(me: mutable; F : Face from TopoDS; |
85 | Update: Boolean from Standard = Standard_False) |
86 | ---Purpose: Checks if the oriented edges of the wire are |
87 | -- correctly oriented. An internal call is made to |
88 | -- the method Closed. If no face exists, call the |
89 | -- method with a null face (TopoDS_face()). If |
90 | -- <Update> is set to Standard_True, registers the |
91 | -- status in the list. |
92 | -- May return (and registers): |
93 | -- BRepCheck_InvalidDegeneratedFlag, |
94 | -- BRepCheck_BadOrientationOfSubshape, |
95 | -- BRepCheck_NotClosed, |
96 | -- BRepCheck_NoError |
97 | returns Status from BRepCheck |
98 | is static; |
99 | |
100 | SelfIntersect(me: mutable; F : Face from TopoDS; |
101 | E1,E2 : out Edge from TopoDS; |
102 | Update: Boolean from Standard = Standard_False) |
103 | |
104 | ---Purpose: Checks if the wire intersect itself on the face |
105 | -- <F>. <E1> and <E2> are the first intersecting |
106 | -- edges found. <E2> may be a null edge when a |
107 | -- self-intersecting edge is found.If <Update> is set |
108 | -- to Standard_True, registers the status in the |
109 | -- list. |
110 | -- May return (and register): |
111 | -- BRepCheck_EmptyWire, |
112 | -- BRepCheck_SelfIntersectingWire, |
113 | -- BRepCheck_NoCurveOnSurface, |
114 | -- BRepCheck_NoError |
115 | returns Status from BRepCheck |
116 | is static; |
117 | |
118 | |
119 | |
120 | GeometricControls(me) |
121 | ---Purpose: report SelfIntersect() check would be (is) done |
122 | returns Boolean from Standard |
123 | is static; |
124 | |
125 | GeometricControls(me: mutable; B: Boolean from Standard) |
126 | ---Purpose: set SelfIntersect() to be checked |
127 | is static; |
128 | |
129 | |
130 | |
131 | fields |
132 | |
133 | -- myNbori : Integer from Standard; -- not used (eap) |
134 | myCdone : Boolean from Standard; -- Closed() or Oriented() is done |
135 | myCstat : Status from BRepCheck; -- result of Closed() or Oriented() |
136 | myMapVE : IndexedDataMapOfShapeListOfShape from TopTools; |
137 | myGctrl : Boolean from Standard; -- do check SelfIntersect() or not |
138 | |
139 | end Wire; |
140 | |
141 | |
142 | |