b311480e |
1 | -- Created on: 1995-12-06 |
2 | -- Created by: Jacques GOUSSARD |
3 | -- Copyright (c) 1995-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. |
7fd59977 |
16 | |
17 | package BRepCheck |
18 | |
949df2b6 |
19 | ---Purpose: This package provides tools to check the validity |
20 | -- of the BRep. |
7fd59977 |
21 | |
22 | uses MMgt, |
23 | StdFail, |
24 | TCollection, |
25 | TopAbs, |
26 | Adaptor3d, |
27 | TopoDS, |
28 | BRep, |
29 | TopTools |
30 | |
31 | is |
32 | |
33 | deferred class Result; -- inherits TShared from MMgt |
34 | |
35 | class Vertex; -- inherits Shape |
36 | |
37 | class Edge; -- inherits Shape |
38 | |
39 | class Wire; -- inherits Shape |
40 | |
41 | class Face; -- inherits Shape |
42 | |
43 | class Shell; -- inherits Shape |
949df2b6 |
44 | |
45 | class Solid; |
46 | |
7fd59977 |
47 | class Analyzer; |
48 | |
49 | |
50 | enumeration Status is |
51 | NoError, |
52 | |
53 | -- for vertices |
54 | InvalidPointOnCurve, |
55 | InvalidPointOnCurveOnSurface, |
56 | InvalidPointOnSurface, |
57 | |
58 | -- for edges |
59 | No3DCurve, |
60 | Multiple3DCurve, |
61 | Invalid3DCurve, |
62 | NoCurveOnSurface, |
63 | InvalidCurveOnSurface, |
64 | InvalidCurveOnClosedSurface, |
65 | InvalidSameRangeFlag, |
66 | InvalidSameParameterFlag, |
67 | InvalidDegeneratedFlag, |
68 | |
69 | FreeEdge, |
70 | InvalidMultiConnexity, |
71 | InvalidRange, |
72 | |
73 | |
74 | -- for wires |
75 | EmptyWire, |
76 | RedundantEdge, |
77 | SelfIntersectingWire, -- on a face |
78 | |
79 | -- for faces |
80 | NoSurface, |
81 | InvalidWire, |
82 | RedundantWire, |
83 | IntersectingWires, |
84 | InvalidImbricationOfWires, |
85 | |
86 | -- for shells |
87 | EmptyShell, |
88 | RedundantFace, |
89 | |
949df2b6 |
90 | -- for solids |
91 | InvalidImbricationOfShells, |
7fd59977 |
92 | |
93 | -- for shapes |
94 | UnorientableShape, |
95 | NotClosed, |
96 | NotConnected, |
97 | |
98 | SubshapeNotInShape, |
99 | |
100 | BadOrientation, |
101 | BadOrientationOfSubshape, |
102 | |
52d45841 |
103 | InvalidPolygonOnTriangulation, |
104 | |
949df2b6 |
105 | InvalidToleranceValue, |
106 | |
107 | EnclosedRegion, |
108 | |
7fd59977 |
109 | -- for exception |
110 | CheckFail |
949df2b6 |
111 | |
112 | |
7fd59977 |
113 | end Status; |
114 | |
115 | |
df8d3970 |
116 | imported ListOfStatus; |
117 | |
118 | |
119 | imported ListIteratorOfListOfStatus; |
120 | |
121 | imported DataMapOfShapeListOfStatus; |
7fd59977 |
122 | |
df8d3970 |
123 | imported DataMapIteratorOfDataMapOfShapeListOfStatus; |
124 | |
125 | |
126 | imported DataMapOfShapeResult; |
949df2b6 |
127 | |
128 | |
df8d3970 |
129 | imported DataMapIteratorOfDataMapOfShapeResult; |
949df2b6 |
130 | |
131 | |
7fd59977 |
132 | -- Package method |
133 | |
134 | Add(List: in out ListOfStatus from BRepCheck; |
135 | Stat: Status from BRepCheck); |
136 | |
137 | |
138 | |
139 | Print(Stat: Status from BRepCheck; |
140 | OS: in out OStream from Standard); |
141 | |
142 | SelfIntersection(W : Wire from TopoDS; |
949df2b6 |
143 | F : Face from TopoDS; |
7fd59977 |
144 | E1 : out Edge from TopoDS; |
145 | E2 : out Edge from TopoDS) |
146 | returns Boolean from Standard; |
147 | |
148 | end BRepCheck; |