Salome HOME
Merge remote-tracking branch 'remotes/origin/Filters_Development_2'
[modules/shaper.git] / src / FiltersPlugin / Test / TestFilter_OppositeToEdge_Exclude.py
1 # Copyright (C) 2014-2019  CEA/DEN, EDF R&D
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, 20190506)
33 Filters = model.filters(Part_1_doc, [model.addFilter(name = "OppositeToEdge", exclude = True, 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())] = True
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())] = True
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 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
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 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
63 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
64 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
65 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
66 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
67 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
68 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
69
70 # sub-result 1
71 SubResult = Partition_1.result().subResult(1).resultSubShapePair()[0]
72 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
73 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
74 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
75 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
76 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
77 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
78 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
79 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
80 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
81 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
82 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
83 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
84 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
85
86 # sub-result 2
87 SubResult = Partition_1.result().subResult(2).resultSubShapePair()[0]
88 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
89 while exp.more():
90   Reference[model.selection(SubResult, exp.current())] = True
91   exp.next()
92
93 # sub-result 3
94 SubResult = Partition_1.result().subResult(3).resultSubShapePair()[0]
95 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
96 while exp.more():
97   Reference[model.selection(SubResult, exp.current())] = True
98   exp.next()
99
100 # sub-result 4
101 SubResult = Partition_1.result().subResult(4).resultSubShapePair()[0]
102 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
103 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
104 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
105 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
106 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
107 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
108 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
109 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
110 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
111 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
112 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
113 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
114 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
115
116 # sub-result 5
117 SubResult = Partition_1.result().subResult(5).resultSubShapePair()[0]
118 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
119 while exp.more():
120   Reference[model.selection(SubResult, exp.current())] = True
121   exp.next()
122
123 # sub-result 6
124 SubResult = Partition_1.result().subResult(6).resultSubShapePair()[0]
125 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
126 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
127 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
128 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
129 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
130 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
131 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
132 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
133 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
134 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
135 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
136 Reference[model.selection(SubResult, exp.current())] = True;  exp.next()
137 Reference[model.selection(SubResult, exp.current())] = False; exp.next()
138
139 # sub-result 7
140 SubResult = Partition_1.result().subResult(7).resultSubShapePair()[0]
141 exp = GeomAPI_ShapeExplorer(SubResult.shape(), GeomAPI_Shape.EDGE)
142 while exp.more():
143   Reference[model.selection(SubResult, exp.current())] = True
144   exp.next()
145
146 model.checkFilter(Part_1_doc, model, Filters, Reference)