Salome HOME
updated copyright message
[modules/shaper.git] / src / FiltersPlugin / Test / TestFilter_OppositeToEdge.py
1 # Copyright (C) 2014-2023  CEA, EDF
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 from salome.shaper import model
21
22 model.begin()
23 partSet = model.moduleDocument()
24 Part_1 = model.addPart(partSet)
25 Part_1_doc = Part_1.document()
26 Box_1 = model.addBox(Part_1_doc, 100, 100, 100)
27 Translation_1 = model.addTranslation(Part_1_doc, [model.selection("SOLID", "Box_1_1")], -50, -50, -50)
28 Plane_4 = model.addPlane(Part_1_doc, model.selection("FACE", "PartSet/XOY"), model.selection("EDGE", "PartSet/OX"), 30)
29 Plane_5 = model.addPlane(Part_1_doc, model.selection("FACE", "PartSet/YOZ"), model.selection("EDGE", "PartSet/OY"), 30)
30 Plane_6 = model.addPlane(Part_1_doc, model.selection("FACE", "PartSet/XOZ"), model.selection("EDGE", "PartSet/OZ"), 30)
31 Partition_1_objects = [model.selection("SOLID", "Translation_1_1"), model.selection("FACE", "Plane_1"), model.selection("FACE", "Plane_2"), model.selection("FACE", "Plane_3")]
32 Partition_1 = model.addPartition(Part_1_doc, Partition_1_objects, keepSubResults = True)
33 Filters = model.filters(Part_1_doc, [model.addFilter(name = "OppositeToEdge", args = [model.selection("EDGE", "Partition_1_1_7/Generated_Edge&Plane_2/Plane_2&Plane_1/Plane_1")])])
34 model.end()
35
36 from GeomAPI import *
37
38 Reference = {}
39 # Faces are not applicable
40 ResultBox_1 = Partition_1.result().resultSubShapePair()[0]
41 exp = GeomAPI_ShapeExplorer(ResultBox_1.shape(), GeomAPI_Shape.FACE)
42 while exp.more():
43   Reference[model.selection(ResultBox_1, exp.current())] = False
44   exp.next()
45 # Vertices are not applicable too
46 exp = GeomAPI_ShapeExplorer(ResultBox_1.shape(), GeomAPI_Shape.VERTEX)
47 while exp.more():
48   Reference[model.selection(ResultBox_1, exp.current())] = False
49   exp.next()
50
51 # Edges of the partitioned box.
52 # Note: the expected values have to be updated if ShapeExplorer will return another order of sub-shapes.
53
54 # sub-result 0
55 SubResult = Partition_1.result().subResult(0).resultSubShapePair()[0]
56 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
57 # edges of face 1
58 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
59 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
60 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
61 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
62 # edges of face 2
63 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
64 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
65 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
66 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
67 # edges of face 3
68 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
69 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
70 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
71 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
72 # edges of face 4
73 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
74 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
75 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
76 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
77 # edges of face 5
78 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
79 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
80 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
81 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
82 # edges of face 6
83 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
84 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
85 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
86 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
87 assert(not exp.more())
88
89 # sub-result 1
90 SubResult = Partition_1.result().subResult(1).resultSubShapePair()[0]
91 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
92 # edges of face 1
93 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
94 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
95 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
96 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
97 # edges of face 2
98 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
99 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
100 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
101 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
102 # edges of face 3
103 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
104 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
105 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
106 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
107 # edges of face 4
108 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
109 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
110 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
111 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
112 # edges of face 5
113 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
114 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
115 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
116 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
117 # edges of face 6
118 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
119 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
120 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
121 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
122 assert(not exp.more())
123
124 # sub-result 2
125 SubResult = Partition_1.result().subResult(2).resultSubShapePair()[0]
126 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
127 while exp.more():
128   Reference[model.selection(SubResult, exp.current())] = False
129   exp.next()
130
131 # sub-result 3
132 SubResult = Partition_1.result().subResult(3).resultSubShapePair()[0]
133 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
134 while exp.more():
135   Reference[model.selection(SubResult, exp.current())] = False
136   exp.next()
137
138 # sub-result 4
139 SubResult = Partition_1.result().subResult(4).resultSubShapePair()[0]
140 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
141 # edges of face 1
142 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
143 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
144 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
145 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
146 # edges of face 2
147 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
148 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
149 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
150 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
151 # edges of face 3
152 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
153 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
154 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
155 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
156 # edges of face 4
157 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
158 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
159 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
160 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
161 # edges of face 5
162 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
163 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
164 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
165 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
166 # edges of face 6
167 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
168 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
169 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
170 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
171 assert(not exp.more())
172
173 # sub-result 5
174 SubResult = Partition_1.result().subResult(5).resultSubShapePair()[0]
175 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
176 while exp.more():
177   Reference[model.selection(SubResult, exp.current())] = False
178   exp.next()
179
180 # sub-result 6
181 SubResult = Partition_1.result().subResult(6).resultSubShapePair()[0]
182 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
183 # edges of face 1
184 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
185 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
186 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
187 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
188 # edges of face 2
189 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
190 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
191 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
192 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
193 # edges of face 3
194 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
195 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
196 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
197 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
198 # edges of face 4
199 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
200 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
201 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
202 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
203 # edges of face 5
204 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
205 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
206 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
207 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
208 # edges of face 6
209 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
210 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
211 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
212 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
213 assert(not exp.more())
214
215 # sub-result 7
216 SubResult = Partition_1.result().subResult(7).resultSubShapePair()[0]
217 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
218 while exp.more():
219   Reference[model.selection(SubResult, exp.current())] = False
220   exp.next()
221
222 model.checkFilter(Part_1_doc, model, Filters, Reference)