b311480e |
1 | -- Created on: 1992-11-17 |
2 | -- Created by: Remi LEQUETTE |
3 | -- Copyright (c) 1992-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 | -- |
973c2be1 |
8 | -- This library is free software; you can redistribute it and / or modify it |
9 | -- under the terms of the GNU Lesser General Public version 2.1 as published |
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 | deferred generic class FaceExplorer from TopClass |
18 | (TheEdge as any) |
19 | |
20 | ---Purpose: Describe an exploration of a 2D face suitable for |
21 | -- classification. |
22 | |
23 | uses |
24 | Orientation from TopAbs, |
25 | Pnt2d from gp, |
26 | Lin2d from gp |
27 | |
28 | is |
29 | Reject(me; P : Pnt2d from gp) returns Boolean |
30 | ---Purpose: Should return True if the point is outside a |
31 | -- bounding volume of the face. |
32 | is deferred; |
33 | |
34 | Segment(me; P : Pnt2d from gp; |
35 | L : out Lin2d from gp; Par : out Real) |
36 | ---Purpose: Returns in <L>, <Par> a segment having at least |
37 | -- one intersection with the face boundary to |
38 | -- compute intersections. |
39 | is deferred; |
40 | |
41 | InitWires(me : in out) |
42 | ---Purpose: Starts an exploration of the wires. |
43 | is deferred; |
44 | |
45 | MoreWires(me) returns Boolean |
46 | ---Purpose: Returns True if there is a current wire. |
47 | ---C++: inline |
48 | is deferred; |
49 | |
50 | NextWire(me : in out) |
51 | ---Purpose: Sets the explorer to the next wire and returns |
52 | -- False if there are no more wires. |
53 | is deferred; |
54 | |
55 | RejectWire(me; L : Lin2d from gp; Par : Real) returns Boolean |
56 | ---Purpose: Returns True if the wire bounding volume does not |
57 | -- intersect the segment. |
58 | is deferred; |
59 | |
60 | InitEdges(me : in out) |
61 | ---Purpose: Starts an exploration of the edges of the current |
62 | -- wire. |
63 | is deferred; |
64 | |
65 | MoreEdges(me) returns Boolean |
66 | ---Purpose: Returns True if there is a current edge. |
67 | ---C++: inline |
68 | is deferred; |
69 | |
70 | NextEdge(me : in out) |
71 | ---Purpose: Sets the explorer to the next wire and returns |
72 | -- False if there are no more wires. |
73 | is deferred; |
74 | |
75 | RejectEdge(me; L : Lin2d from gp; Par : Real) returns Boolean |
76 | ---Purpose: Returns True if the edge bounding volume does not |
77 | -- intersect the segment. |
78 | is deferred; |
79 | |
80 | CurrentEdge(me; E : out TheEdge; Or : out Orientation from TopAbs) |
81 | ---Purpose: Curent edge in current wire and its orientation |
82 | is deferred; |
83 | |
84 | end FaceExplorer; |