Salome HOME
enable make test
[modules/paravis.git] / test / VisuPrs / 3D_viewer / A9.py
1 # Copyright (C) 2010-2015  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 # This case corresponds to: /visu/3D_viewer/A9 case
21 # Create 3D Viewer and test set view properties for Deformed Shape presentation
22 # Author:       POLYANSKIKH VERA
23 from paravistest import *
24 from presentations import *
25 from pvsimple import *
26 import sys
27 import time
28
29 def check_value(prs, property_name, value, do_raise=1, compare_toler=-1.0):
30     # compare just set value and the one got from presentation
31     really_set_value = prs.GetPropertyValue(property_name)
32     is_equal = 1
33     if compare_toler > 0:
34         is_equal = (fabs(really_set_value - value) < compare_toler)
35     else:
36         is_equal = (really_set_value == value)
37     if not is_equal:
38         msg = str(really_set_value) + " has been set instead"
39         if do_raise:
40             raise RuntimeError(msg)
41         else:
42             print (msg)
43
44     return (not is_equal)
45
46
47 def check_all_params(prs, pres_type,  shad, opac, lwid):
48     err = check_value(prs, "Representation", pres_type, 0, -1.0)
49     err = err + check_value(prs, "Interpolation", shad, 0, -1.0)
50     err = err + check_value(prs, "Opacity", opac, 0, compare_prec)
51     err = err + check_value(prs, "LineWidth", lwid,  0, compare_prec)
52     return err
53
54 # Directory for saving snapshots
55 picturedir = get_picture_dir("3D_viewer/A9")
56
57 # Add path separator to the end of picture path if necessery
58 if not picturedir.endswith(os.sep):
59     picturedir += os.sep
60
61 # Get view
62 my_view = GetRenderView()
63 reset_view(my_view)
64 Render(my_view)
65
66 theFileName = datadir + "cube_hexa8_quad4.med"
67 print " --------------------------------- "
68 print "file ", theFileName
69 print " --------------------------------- "
70
71 OpenDataFile(theFileName)
72 proxy = GetActiveSource()
73 if proxy is None:
74     raise RuntimeError("Error: can't import file.")
75 else:
76     print "OK"
77
78 field_name = 'fieldcelldouble'
79
80 print "\nCreating scalar_map.......",
81 scalar_map = ScalarMapOnField(proxy, EntityType.CELL, field_name, 1)
82 if scalar_map is None:
83     raise RuntimeError("Error!!! Presentation wasn't created...")
84
85 display_only(scalar_map, my_view)
86 reset_view(my_view)
87 Render(my_view)
88
89 compare_prec = 0.00001
90
91 print "\nChange Presentation Parameters..."
92 # Group 1 (SHADED)
93
94 print "\nCheck in SURFACE:"
95
96 call_and_check(scalar_map, "Representation",
97 RepresentationType.get_name(RepresentationType.SURFACE))
98 shrink_filter = Shrink(scalar_map.Input)
99 shrink_filter.ShrinkFactor = 0.8
100 shrink_filter.UpdatePipeline()
101 shrinked_scalar_map = GetRepresentation(shrink_filter)
102 shrinked_scalar_map.ColorArrayName = (EntityType.get_pvtype(EntityType.CELL), field_name)
103 shrinked_scalar_map.Representation = scalar_map.Representation
104 lookup_table = scalar_map.LookupTable
105 shrinked_scalar_map.LookupTable = lookup_table
106 scalar_map.Visibility = 0
107 shrinked_scalar_map.Visibility = 1
108 Render(my_view)
109
110 shape_to_show = shrinked_scalar_map
111 setShaded(my_view, 1)
112 call_and_check(shape_to_show, "Interpolation", "Gouraud")
113 Render(my_view)
114 call_and_check(shape_to_show, "Opacity", 0.8, 1, compare_prec)
115 call_and_check(shape_to_show, "LineWidth", 5.0,  1, compare_prec)
116
117 time.sleep(1)
118
119 # save picture in file
120 # Construct image file name
121 pic_name = picturedir + "params_SURFACE_1." + pictureext
122 # Show and record the presentation
123 process_prs_for_test(shape_to_show, my_view, pic_name)
124
125
126 call_and_check(shape_to_show, "Representation",
127 RepresentationType.get_name(RepresentationType.WIREFRAME))
128 call_and_check(shape_to_show, "Representation",
129 RepresentationType.get_name(RepresentationType.SURFACE))
130
131 time.sleep(1)
132 picture_name = picturedir + "params_SURFACE_2." + pictureext
133
134 # save picture in file
135 # Construct image file name
136 pic_name = picturedir + "params_SURFACE_2." + pictureext
137 # Show and record the presentation
138 process_prs_for_test(shape_to_show, my_view, pic_name)
139
140 err = check_all_params(shape_to_show,
141 RepresentationType.get_name(RepresentationType.SURFACE), "Gouraud", 0.8, 5.0)
142
143 ##call_and_check(scalar_map, "Shrinked", 0, "Shrinked")
144 ##call_and_check(scalar_map, "Shrinked", 1, "Shrinked")
145
146 time.sleep(1)
147
148 # save picture in file
149 # Construct image file name
150 pic_name = picturedir + "params_SURFACE_3." + pictureext
151 # Show and record the presentation
152 process_prs_for_test(shape_to_show, my_view, pic_name)
153
154 err = err + check_all_params(shape_to_show,
155 RepresentationType.get_name(RepresentationType.SURFACE), "Gouraud", 0.8, 5.0)
156
157 call_and_check(shape_to_show, "Interpolation", "Flat")
158 call_and_check(shape_to_show, "Interpolation", "Gouraud")
159
160 time.sleep(1)
161
162 # save picture in file
163 # Construct image file name
164 pic_name = picturedir + "params_SURFACE_4." + pictureext
165 # Show and record the presentation
166 process_prs_for_test(shape_to_show, my_view, pic_name)
167
168 err = err + check_all_params(shape_to_show,
169 RepresentationType.get_name(RepresentationType.SURFACE), "Gouraud", 0.8, 5.0)
170
171 call_and_check(shape_to_show, "Opacity", 1.0,  1, compare_prec)
172 call_and_check(shape_to_show, "Opacity", 0.8,  1, compare_prec)
173
174 time.sleep(1)
175
176 # save picture in file
177 # Construct image file name
178 pic_name = picturedir + "params_SURFACE_5." + pictureext
179 # Show and record the presentation
180 process_prs_for_test(shape_to_show, my_view, pic_name)
181
182 err = err + check_all_params(shape_to_show,
183 RepresentationType.get_name(RepresentationType.SURFACE), "Gouraud", 0.8, 5.0)
184
185 # Reset
186 ##call_and_check(shape_to_show, "Shrinked", 0, "Shrinked")
187 setShaded(my_view, 0)
188 call_and_check(shape_to_show, "Interpolation", "Flat",)
189 Render(my_view)
190 call_and_check(shape_to_show, "Opacity", 1.0, 1, compare_prec)
191 call_and_check(shape_to_show, "LineWidth", 1.0, 1, compare_prec)
192
193 # Group 2 (WIREFRAME)
194 hide_all(my_view)
195 print "\nCheck in WIREFRAME:"
196 scalar_map.Visibility = 1
197 call_and_check(scalar_map, "Representation",
198 RepresentationType.get_name(RepresentationType.WIREFRAME), "Representation")
199 shrink_filter = Shrink(scalar_map.Input)
200 shrink_filter.ShrinkFactor = 0.8
201 shrink_filter.UpdatePipeline()
202 shrinked_scalar_map = GetRepresentation(shrink_filter)
203 shrinked_scalar_map.ColorArrayName = (EntityType.get_pvtype(EntityType.CELL), field_name)
204 shrinked_scalar_map.Representation = scalar_map.Representation
205 lookup_table = scalar_map.LookupTable
206 shrinked_scalar_map.LookupTable = lookup_table
207 scalar_map.Visibility = 0
208 shrinked_scalar_map.Visibility = 1
209 shape_to_show = shrinked_scalar_map
210
211 setShaded(my_view, 1)
212 call_and_check(shape_to_show, "Interpolation", "Gouraud")
213 Render(my_view)
214 call_and_check(shape_to_show, "Opacity", 0.8, 1, compare_prec)
215 call_and_check(shape_to_show, "LineWidth", 5.0, 1, compare_prec)
216
217 time.sleep(1)
218
219 # save picture in file
220 # Construct image file name
221 pic_name = picturedir + "params_WIREFRAME_1." + pictureext
222 # Show and record the presentation
223 process_prs_for_test(shape_to_show, my_view, pic_name)
224
225
226 call_and_check(shape_to_show, "Representation",
227 RepresentationType.get_name(RepresentationType.SURFACE))
228 call_and_check(shape_to_show, "Representation",
229 RepresentationType.get_name(RepresentationType.WIREFRAME))
230
231 time.sleep(1)
232 # save picture in file
233 # Construct image file name
234 pic_name = picturedir + "params_WIREFRAME_2." + pictureext
235 # Show and record the presentation
236 process_prs_for_test(shape_to_show, my_view, pic_name)
237
238 err = err + check_all_params(shape_to_show,
239 RepresentationType.get_name(RepresentationType.WIREFRAME), "Gouraud", 0.8, 5.0)
240
241 ##call_and_check(shape_to_show, "Shrinked", 0)
242 ##call_and_check(shape_to_show, "Shrinked", 1)
243
244 time.sleep(1)
245 # save picture in file
246 # Construct image file name
247 pic_name = picturedir + "params_WIREFRAME_3." + pictureext
248 # Show and record the presentation
249 process_prs_for_test(shrinked_scalar_map, my_view, pic_name)
250
251 err = err + check_all_params(shape_to_show,
252 RepresentationType.get_name(RepresentationType.WIREFRAME), "Gouraud", 0.8, 5.0)
253
254 call_and_check(shape_to_show, "Interpolation", "Flat")
255 call_and_check(shape_to_show, "Interpolation", "Gouraud")
256
257 time.sleep(1)
258 # save picture in file
259 # Construct image file name
260 pic_name = picturedir + "params_WIREFRAME_4." + pictureext
261 # Show and record the presentation
262 process_prs_for_test(shape_to_show, my_view, pic_name)
263
264 err = err + check_all_params(shape_to_show,
265 RepresentationType.get_name(RepresentationType.WIREFRAME), "Gouraud", 0.8, 5.0)
266
267 call_and_check(shape_to_show, "Opacity", 1.0, 1, compare_prec)
268 call_and_check(shape_to_show, "Opacity", 0.8, 1, compare_prec)
269
270 time.sleep(1)
271 # save picture in file
272 # Construct image file name
273 pic_name = picturedir + "params_WIREFRAME_5." + pictureext
274 # Show and record the presentation
275 process_prs_for_test(shape_to_show, my_view, pic_name)
276
277 err = err + check_all_params(shape_to_show,
278 RepresentationType.get_name(RepresentationType.WIREFRAME), "Gouraud", 0.8, 5.0)
279
280 if err:
281     raise RuntimeError("Presentation parameters are not stable")