summaryrefslogtreecommitdiff
path: root/src/BOP/BOP_WireEdgeSet.cdl
blob: 8453acd310177fc70911de9aadb3f13bc5ef5786 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
-- File:	BOP_WireEdgeSet.cdl
-- Created:	Wed Jun 16 11:52:45 1993
-- Author:	Jean Yves LEBEY
--		<jyl@zerox>
---Copyright:	 Matra Datavision 1993

class WireEdgeSet from BOP inherits ShapeSet from BOP

    ---Purpose: The class containing data and methods  
    --          for a set of edges and wires
    --
    -- Bound is a wire,  
    -- Boundelement is an edge.
    --
    -- The ShapeSet stores :
    --  - a list of wire (bounds),
    --  - a list of edge (boundelements) to start reconstructions,
    --  - a map of vertex giving the list of edge incident to a vertex.

uses

    Orientation from TopAbs, 
    
    Shape  from TopoDS,
    Face   from TopoDS,
    Edge   from TopoDS,
    Vertex from TopoDS,
    
    ListOfShape from TopTools, 
    
    Pnt2d from gp,
    Vec2d from gp
   
    
is
    Create   
    	returns WireEdgeSet from BOP; 
    	---Purpose:  
    	--- Empty constructor; 
    	---
    Create  (F:  Face from TopoDS) 
    	returns WireEdgeSet from BOP;
    	---Purpose:  
    	--- Creates a WES to build edges connected by vertices
    	--- on face F. Edges of the WireEdgeSet must have a representation
    	--- on surface of face F.
    	---
    Initialize(me:out; 
    	    F:  Face from TopoDS);   
    	---Purpose:  
    	--- Initialize a WES to build edges connected by vertices
    	--- on face F. Edges of the WireEdgeSet must have a representation
    	--- on surface of face F. 
    	---
    Face(me)  
    	returns Face from TopoDS;
    	---C++: return const & 
    	---Purpose:   
    	--- Selector 
    	---
    AddShape(me:out; 
    	    S:Shape from TopoDS)  
    	is redefined;
    	---Purpose:    
    	--- See  in  base  class,  please  
    	---
    AddStartElement(me:out; 
    	    S:Shape from TopoDS)  
    	is redefined;
    	---Purpose:    
    	--- See  in  base  class,  please  
    	---
    AddElement(me:out; 
    	    S:Shape from TopoDS)  
    	is redefined;
    	---Purpose:    
    	--- See  in  base  class,  please  
    	---
    InitNeighbours(me:out; 
    	    E:Shape from TopoDS)  
    	is redefined; 
    	---Purpose:  
    	--- Internal  usage 
    	---
    FindNeighbours(me:out)  
    	is redefined;
    	---Purpose:
    	--- Build the list of neighbour edges of edge myCurrentShape
    	--- Initialize iterator of neighbour edges to edge myCurrentShape
    	---
    MakeNeighboursList(me:out; 
    	    	       E,V:Shape from TopoDS)  
    	returns ListOfShape from TopTools  
    	is redefined;
    	---C++: return const &
   
    VertexConnectsEdges(me; 
    	    V,E1,E2:Shape from TopoDS; 
    	    O1,O2:out Orientation from TopAbs)
    	returns Boolean from Standard 
    	is private;
    	---Purpose: 
    	--- Indicates whether vertex V is a good connexity vertex between
    	--- edges E1 and E2.
    	--- i.e, returns True if V is shared by E1 and E2 and if V has different 
    	--- orientations on E1 and E2.
    	--- If V is shared by E1 and E2, returns the orientation of V on E1 and E2
	---

    VertexConnectsEdgesClosing(me; 
    	    V,E1,E2:Shape from TopoDS)  
    	returns Boolean from Standard 
    	is private;
    	---Purpose:  
    	--- Internal  usage 
    	---
    NbClosingShapes(me; 
    	    L:ListOfShape from TopTools)  
    	returns Integer from Standard  
    	is private;
    	---Purpose:  
    	--- Internal  usage 
    	---
    LocalD1(me; 
    	    F :  Face from  TopoDS; 
    	    E :  Edge from  TopoDS;  
    	    V :  Vertex from TopoDS; 
    	    P2:  out Pnt2d from gp; 
    	    V2:  out Vec2d from gp)  
    	is private;
    	---Purpose:  
    	--- Internal  usage 
    	---
    IsClosed(me; 
    	    E:Shape from TopoDS) 
    	 returns Boolean from Standard 
    	 is private;
    	---Purpose:  
    	--- indicates if the edge <E> is a closing edge of myFace
    	--- Internal  usage 
    	---
    IsUClosed(me; 
    	    E:Shape from TopoDS)  
    	returns Boolean from Standard  
    	is private;
    	---Purpose:  
    	--- indicates if the edge <E> is a closing edge on U of myFace
    	--- Internal  usage 
    	---
    IsVClosed(me; 
    	    E:Shape from TopoDS)  
    	returns Boolean from Standard  
    	is private;
    	---Purpose:  
    	--- indicates if the edge <E> is a closing edge on V of myFace
    	--- Internal  usage 
    	---
    IsUVISO(myclass; 
    	    E:Edge from TopoDS; 
    	    F:Face from TopoDS; 
    	    uiso,viso:out Boolean from Standard);
    	---Purpose:  
    	--- Internal  usage 
    	---

    RemoveEdgeFromWES  (me:out; 
    	    aE : Edge from TopoDS);
    	---Purpose:  
    	--- Removes the edge aE from the WES      
    	---
    KeptTwice(me; 
    	    aE : Edge from  TopoDS) 
    	returns Boolean from Standard;   
    	---Purpose:  
    	--- Returns TRUE if the edge aE has been kept twice 
    	--- in  the WES      
    	---
    
fields

    myFace:Face from TopoDS;
    myDEBVertexIndex:Integer from Standard;
    
end WireEdgeSet from BOP;