Salome HOME
Preparation of 3.1.0a2: version ID. compilation with new KERNEL
[modules/visu.git] / examples / VISU_Example_04.py
1 # Show some results presentations in different 3D and 2D viewers
2 # with different options (view parameters and display modes).
3 # Uses MED files fra.med and TimeStamps.med from ${KERNEL_ROOT_DIR}/examples directory.
4
5 # Pay attention to a viewer title to know its purpose.
6
7 # This script is equivalent to script VISU_SWIG/visu_view3d.py
8
9 import os
10 import time
11 import math
12 import VISU
13 import SALOMEDS
14 from visu_gui import *
15
16 aDelay = 1
17
18 myViewManager = myVisu.GetViewManager();
19
20 myView = myViewManager.Create3DView();
21 myView.SetTitle("The window will be soon destroyed!")
22 print "myViewManager.Create3DView()"
23 time.sleep(aDelay)
24
25 myView.Maximize()
26 print "myView.Maximize()"
27 time.sleep(aDelay)
28
29 myView.Restore()
30 print "myView.Restore()"
31 time.sleep(aDelay)
32
33 myView.Minimize()
34 print "myView.Minimize()"
35 time.sleep(aDelay)
36
37 myViewManager.Destroy(myView)
38 print "myViewManager.Destroy(myView)"
39 time.sleep(aDelay)
40
41
42 medFile = "fra.med"
43 myFieldName = "VITESSE";
44
45 aMeshName ="LE VOLUME"
46 anEntity = VISU.NODE
47 aTimeStampId = 1
48
49 medFile = os.getenv('KERNEL_ROOT_DIR') + '/examples/' + medFile
50 myResult = myVisu.ImportFile(medFile)
51
52 myView = myViewManager.Create3DView();
53
54 print "myView.SetBackground(...)"
55 aColor = SALOMEDS.Color(0.0,0.3,1.0)
56 myView.SetBackground(aColor);
57
58 myView.SetTitle("The viewer will display ScalarMap")
59 print "myViewManager.Create3DView()"
60
61 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
62
63 myView.Display(aScalarMap);
64 print "myView.Display(aScalarMap)"
65 myView.SetFocalPoint([0,0,0]);
66 print "myView.SetFocalPoint(...)"
67 myView.SetParallelScale(2);
68 print "myView.SetParallelScale(...)"
69 myView.FitAll();
70
71 aMax = aScalarMap.GetMax()
72 aMin = aScalarMap.GetMin()
73 aDelta = (aMax - aMin)/2.0
74 aNbColors = aScalarMap.GetNbColors()
75 aNbColors = 64
76 for i in range(2,aNbColors) :
77     aScalarMap.SetNbColors(i)
78     aX = aMin + aDelta*i/aNbColors
79     aY = aMax - aDelta*i/aNbColors
80     aScalarMap.SetRange(aX,aY)
81     myView.Update();
82     time.sleep(aDelay)
83
84 aScalarMap.SetRange(aMin,aMax)
85
86 print "myView.Update()"
87 myView.Update();
88 print "myView.FitAll()"
89 myView.FitAll();
90
91
92 myView = myViewManager.Create3DView();
93 myView.SetTitle("Here we will display CutPlanes")
94
95 print "myView.SetBackground(...)"
96 aColor = SALOMEDS.Color(0.0,0.7,0.0)
97 myView.SetBackground(aColor);
98
99 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
100 print "myVisu.CutPlanesOnField(...)"
101
102 myView.DisplayOnly(aCutPlanes);
103 print "myView.DisplayOnly(aCutPlanes)"
104
105 aPoint = myView.GetPointOfView();
106 aPoint[0] = aPoint[0] + 10;
107 myView.SetPointOfView(aPoint);
108 print "myView.SetPointOfView(...)"
109 myView.ScaleView(VISU.View3D.YAxis,10.0);
110 myView.ScaleView(VISU.View3D.XAxis,3.0);
111 print "myView.ScaleView(...)"
112 time.sleep(aDelay)
113
114 myView.FitAll();
115
116 aNbPlanes = aCutPlanes.GetNbPlanes()
117 aNbPlanes = 30
118 aXAngle = aCutPlanes.GetRotateX()
119 aYAngle = aCutPlanes.GetRotateY()
120 anOrientation = aCutPlanes.GetOrientationType()
121 for i in range(aNbPlanes,1,-1) :
122     aCutPlanes.SetNbPlanes(i)
123     aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
124     aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
125     aCutPlanes.SetOrientation(anOrientation,aX,aY)
126     myView.Update();
127     time.sleep(aDelay)
128
129 aNbPlanes = 10
130 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
131 for i in range(1,aNbPlanes) :
132     aCutPlanes.SetNbPlanes(i)
133     myView.Update();
134     time.sleep(aDelay)
135
136 myView.SaveViewParams('AAA')
137 print "myView.SaveViewParams('AAA')"
138 time.sleep(aDelay)
139
140 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
141 myView.RemoveScale();
142
143 print "myView.Update()"
144 myView.Update();
145 print "myView.FitAll()"
146 myView.FitAll();
147
148
149 myView = myViewManager.Create3DView();
150 print "myViewManager.Create3DView()"
151
152 myView.SetTitle("IsoSurface's viewer")
153
154 print "myView.SetBackground(...)"
155 aColor = SALOMEDS.Color(1.0,0.7,0.0)
156 myView.SetBackground(aColor);
157 time.sleep(aDelay)
158
159 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
160
161 myView.DisplayOnly(aIsoSurfaces);
162 myView.FitAll();
163 print "myView.DisplayOnly(aCutPlanes)"
164 time.sleep(aDelay)
165
166 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
167 aNbSurfaces = 32
168 for i in range(2,aNbSurfaces) :
169     aIsoSurfaces.SetNbSurfaces(i)
170     myView.Update();
171     time.sleep(aDelay)
172
173 aIsoSurfaces.SetNbSurfaces(10)
174
175 print "myView.Update()"
176 myView.Update();
177 print "myView.FitAll()"
178 myView.FitAll();
179
180
181 myView = myViewManager.Create3DView();
182 myView.SetTitle("The viewer for CutLines")
183 print "myViewManager.Create3DView()"
184 time.sleep(aDelay)
185
186 print "myView.SetBackground(...)"
187 aColor = SALOMEDS.Color(0.7,0.7,0.7)
188 myView.SetBackground(aColor);
189 time.sleep(aDelay)
190
191 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
192 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
193 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
194
195 myView.DisplayOnly(aCutLines);
196 myView.FitAll();
197 print "myView.DisplayOnly(aCutLines)"
198 time.sleep(aDelay)
199
200 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
201 aTable = myVisu.CreateTable( aSObj.GetID() )
202 print "myVisu.CreateTable(...)"
203
204 aTableView = myViewManager.CreateTableView(aTable)
205 aTableView.SetTitle('Changed Title')
206
207 aContainer = myVisu.CreateContainer()
208 print "myVisu.CreateContainer(...)"
209
210 aNbCurve = aTable.GetNbRows() - 1
211 for i in range(2,aNbCurve):
212    aCurve = myVisu.CreateCurve( aTable, 1, i )
213    print i, aCurve
214    aContainer.AddCurve(aCurve)
215
216
217 myView = myViewManager.CreateXYPlot();
218 myView.SetTitle("The viewer for Curves from CutLines")
219 print "myViewManager.CreateXYPlot()"
220 time.sleep(aDelay)
221
222 myView.Display(aContainer)
223
224
225 myView = myViewManager.Create3DView();
226 myView.SetTitle("The viewer for Animation")
227 print "myViewManager.Create3DView()"
228 time.sleep(aDelay)
229
230 medFile = "TimeStamps.med"
231 myFieldName = "vitesse";
232
233 medFile = os.getenv('KERNEL_ROOT_DIR') + '/examples/' + medFile
234 myResult = myVisu.ImportFile(medFile)
235
236 anAnim = myVisu.CreateAnimation(myView);
237 aSObj = myStudy.FindObjectIOR(myResult.GetID())
238 aSObj = aSObj.FindSubObject(1)[1]
239 aSObj = aSObj.FindSubObject(2)[1]
240 aSObj = aSObj.FindSubObject(2)[1]
241 anAnim.addField(aSObj)
242 anAnim.setPresentationType(0,VISU.TISOSURFACE)
243 print "Generate presentations"
244 anAnim.generatePresentations(0)
245 print "Generate frames"
246 anAnim.generateFrames()
247 print "Start Animation"
248 anAnim.setSpeed(99)
249 anAnim.startAnimation()
250 myView.FitAll()
251 while 1:
252     time.sleep(1+aDelay)
253     if not anAnim.isRunning():
254         anAnim.stopAnimation()
255         break