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