1 # Copyright (C) 2010-2016 CEA/DEN, EDF R&D
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.
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.
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
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 # This case corresponds to: /visu/dump_study/A6 case
22 from paravistest import datadir, delete_with_inputs
23 from presentations import *
24 from pvsimple import *
25 from paravistest import save_trace
26 from paraview import smtrace
28 GetActiveViewOrCreate('RenderView')
30 config = smtrace.start_trace()
31 config.SetFullyTraceSupplementalProxies(True)
32 config.SetPropertiesToTraceOnCreate(config.RECORD_ALL_PROPERTIES)
34 settings = {"Offset": [0.0001, 0.0002, 0], "ScalarMode": ("Component", 2), "Position": [0.1, 0.2], "Size": [0.15, 0.25], "Discretize": 1, "NbColors": 44, "NbLabels": 22, "Title": "My presentation", "UseLogScale": 1, "Orientation": 'Horizontal', "Scale": 0.12929}
36 # 1. TimeStamps.med import
37 file_path = datadir + "TimeStamps.med"
38 OpenDataFile(file_path)
39 med_reader = GetActiveSource()
40 if med_reader is None:
41 raise RuntimeError("TimeStamps.med wasn't imported...")
43 # 2. ScalarMapOnDeformedShape creation
46 prs = DeformedShapeAndScalarMapOnField(med_reader, EntityType.NODE, med_field, 1)
48 prs.SetScalarBarVisibility(GetActiveView(),1)
51 prs.Position = settings["Offset"]
52 prs.LookupTable.VectorMode = settings["ScalarMode"][0]
53 prs.LookupTable.VectorComponent = settings["ScalarMode"][1]
54 prs.LookupTable.Discretize = settings["Discretize"]
55 prs.LookupTable.NumberOfTableValues = settings["NbColors"]
56 prs.LookupTable.UseLogScale = settings["UseLogScale"]
58 prs.Input.ScaleFactor = settings["Scale"]
59 range_min = prs.LookupTable.RGBPoints[0]
60 range_max = prs.LookupTable.RGBPoints[4]
63 bar.Position = settings["Position"]
64 #bar.Position2 = settings["Size"]
65 #bar.NumberOfLabels = settings["NbLabels"]
66 bar.Title = settings["Title"]
67 bar.Orientation = settings["Orientation"]
70 text = smtrace.stop_trace()
71 path_to_save = os.path.join(os.getenv("HOME"), "ScalarMapOnDeformedShape.py")
72 save_trace( path_to_save, text )
74 # 4. Delete the created objects, recreate the view
75 delete_with_inputs(prs)
76 delete_pv_object(GetActiveView())
77 view = CreateRenderView()
79 # 5. Execution of the created script
80 exec(compile(open(path_to_save).read(), path_to_save, 'exec'))
82 # 6. Checking of the settings done before dump
83 recreated_bar = view.Representations[1]
84 recreated_prs = view.Representations[0]
90 offset = recreated_prs.Position
91 for i in range(len(settings["Offset"])):
92 if abs(offset[i] - settings["Offset"][i]) > tolerance:
93 print("ERROR!!! Offset value with ", i, " index is incorrect: ", offset[i], " instead of ", settings["Offset"][i])
97 vector_mode = recreated_prs.LookupTable.VectorMode
98 vector_component = recreated_prs.LookupTable.VectorComponent
100 if vector_mode != settings["ScalarMode"][0]:
101 print("ERROR!!! Vector mode value is incorrect: ", vector_mode, " instead of ", settings["ScalarMode"][0])
103 if vector_component != settings["ScalarMode"][1]:
104 print("ERROR!!! Vector component value is incorrect: ", vector_component, " instead of ", settings["ScalarMode"][1])
107 # Position of scalar bar
108 pos_x = recreated_bar.Position[0]
109 pos_y = recreated_bar.Position[1]
111 if abs(pos_x - settings["Position"][0]) > tolerance:
112 print("ERROR!!! X coordinate of position of scalar bar is incorrect: ", pos_x, " instead of ", settings["Position"][0])
114 if abs(pos_y - settings["Position"][1]) > tolerance:
115 print("ERROR!!! Y coordinate of position of scalar bar is incorrect: ", pos_y, " instead of ", settings["Position"][1])
119 #width = recreated_bar.Position2[0]
120 #height = recreated_bar.Position2[1]
122 #if abs(width - settings["Size"][0]) > tolerance:
123 # print("ERROR!!! Width of scalar bar is incorrect: ", width, " instead of ", settings["Size"][0])
125 #if abs(height - settings["Size"][1]) > tolerance:
126 # print("ERROR!!! Height of scalar bar is incorrect: ", height, " instead of ", settings["Size"][1])
130 discretize = recreated_prs.LookupTable.Discretize
131 if discretize != settings["Discretize"]:
132 print("ERROR!!! Discretize property is incorrect: ", discretize, " instead of ", settings["Discretize"])
136 nb_colors = recreated_prs.LookupTable.NumberOfTableValues
137 if nb_colors != settings["NbColors"]:
138 print("ERROR!!! Number of colors of scalar bar is incorrect: ", nb_colors, " instead of ", settings["NbColors"])
142 #nb_labels = recreated_bar.NumberOfLabels
143 #if nb_labels != settings["NbLabels"]:
144 # print("ERROR!!! Number of labels of scalar bar is incorrect: ", nb_labels, " instead of ", settings["NbLabels"])
148 title = recreated_bar.Title
149 if title != settings["Title"]:
150 print("ERROR!!! Title of presentation is incorrect: ", title, " instead of ", settings["Title"])
154 use_log_scale = recreated_prs.LookupTable.UseLogScale
155 if use_log_scale != settings["UseLogScale"]:
156 print("ERROR!!! Scaling of presentation is incorrect: ", use_log_scale, " instead of ", settings["UseLogScale"])
160 orientation = recreated_bar.Orientation
161 if orientation != settings["Orientation"]:
162 print("ERROR!!! Orientation of scalar bar is incorrect: ", orientation, " instead of ", settings["Orientation"])
166 cur_range_min = recreated_prs.LookupTable.RGBPoints[0]
167 cur_range_max = recreated_prs.LookupTable.RGBPoints[4]
169 if abs(cur_range_min - range_min) > tolerance:
170 print("ERROR!!! Minimum value of range of presentation is incorrect: ", cur_range_min, " instead of ", range_min)
173 if abs(cur_range_max - range_max) > tolerance:
174 print("ERROR!!! Maximum value of range of presentation is incorrect: ", cur_range_max, " instead of ", range_max)
178 scale = recreated_prs.Input.ScaleFactor
179 if abs(scale - settings["Scale"]) > tolerance:
180 print("ERROR!!! Scale of presentation is incorrect: ", scale, " instead of ", settings["Scale"])
184 raise RuntimeError("There is(are) some error(s) was(were) found... For more info see ERRORs above...")