40c53ab79d1285550eca0a43f073521cd1ece5e8
[occt.git] / src / BRepCheck / BRepCheck_Wire.cdl
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
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