]> SALOME platform Git repositories - modules/visu.git/blob - src/VISU_SWIG/batchmode_visu_view3d.py
Salome HOME
Porting to Python 2.6 - add coding page specification for Python scripts
[modules/visu.git] / src / VISU_SWIG / batchmode_visu_view3d.py
1 #! /usr/bin/python
2 #  -*- coding: iso-8859-1 -*-
3 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
4 #
5 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 #
8 #  This library is free software; you can redistribute it and/or
9 #  modify it under the terms of the GNU Lesser General Public
10 #  License as published by the Free Software Foundation; either
11 #  version 2.1 of the License.
12 #
13 #  This library is distributed in the hope that it will be useful,
14 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
15 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 #  Lesser General Public License for more details.
17 #
18 #  You should have received a copy of the GNU Lesser General Public
19 #  License along with this library; if not, write to the Free Software
20 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
21 #
22 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #
24 #  VISU VISU_SWIG : binding of C++ implementation and Python
25 #  File   : batchmode_visu_view3d.py
26 #  Module : VISU
27 #
28 import os
29 import time
30 import math
31 import VISU
32 import SALOMEDS
33 from batchmode_visu import *
34
35 aDelay = 0
36
37 #mySession = batchmode_visu.mySession
38
39 myViewManager = myVisu.GetViewManager();
40
41 myView = myViewManager.Create3DView();
42 myView.SetTitle("The window will be soon destroyed!")
43 print "myViewManager.Create3DView()"
44 time.sleep(aDelay)
45
46 myView.Maximize()
47 print "myView.Maximize()"
48 time.sleep(aDelay)
49
50 myView.Restore()
51 print "myView.Restore()"
52 time.sleep(aDelay)
53
54 myView.Minimize()
55 print "myView.Minimize()"
56 time.sleep(aDelay)
57
58 myViewManager.Destroy(myView)
59 print "myViewManager.Destroy(myView)"
60 time.sleep(aDelay)
61
62
63
64 medFile = "fra.med"
65 myFieldName = "VITESSE";
66
67 aMeshName ="LE VOLUME"
68 anEntity = VISU.NODE
69 aTimeStampId = 1
70
71 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
72 myResult = myVisu.ImportFile(medFile)
73
74
75
76 myView = myViewManager.Create3DView();
77
78 print "myView.SetBackground(...)"
79 aColor = SALOMEDS.Color(0.0,0.3,1.0)
80 myView.SetBackground(aColor);
81
82 myView.SetTitle("The viewer will display ScalarMap")
83 print "myViewManager.Create3DView()"
84
85 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
86
87 myView.Display(aScalarMap);
88 print "myView.Display(aScalarMap)"
89 myView.SetFocalPoint([0,0,0]);
90 print "myView.SetFocalPoint(...)"
91 myView.SetParallelScale(2);
92 print "myView.SetParallelScale(...)"
93 myView.FitAll();
94
95 aMax = aScalarMap.GetMax()
96 aMin = aScalarMap.GetMin()
97 aDelta = (aMax - aMin)/2.0
98 aNbColors = aScalarMap.GetNbColors()
99 aNbColors = 64
100 for i in range(2,aNbColors) :
101     aScalarMap.SetNbColors(i)
102     aX = aMin + aDelta*i/aNbColors
103     aY = aMax - aDelta*i/aNbColors
104     aScalarMap.SetRange(aX,aY)
105     myView.Update();
106     time.sleep(aDelay)
107
108 aScalarMap.SetRange(aMin,aMax)
109
110 print "myView.Update()"
111 myView.Update();
112 print "myView.FitAll()"
113 myView.FitAll();
114
115
116
117 myView = myViewManager.Create3DView();
118 myView.SetTitle("Here we will display CutPlanes")
119
120 print "myView.SetBackground(...)"
121 aColor = SALOMEDS.Color(0.0,0.7,0.0)
122 myView.SetBackground(aColor);
123
124 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
125 print "myVisu.CutPlanesOnField(...)"
126
127 myView.DisplayOnly(aCutPlanes);
128 print "myView.DisplayOnly(aCutPlanes)"
129
130 aPoint = myView.GetPointOfView();
131 aPoint[0] = aPoint[0] + 10;
132 myView.SetPointOfView(aPoint);
133 print "myView.SetPointOfView(...)"
134 myView.ScaleView(VISU.View3D.YAxis,10.0);
135 myView.ScaleView(VISU.View3D.XAxis,3.0);
136 print "myView.ScaleView(...)"
137 time.sleep(aDelay)
138
139 myView.FitAll();
140
141 aNbPlanes = aCutPlanes.GetNbPlanes()
142 aNbPlanes = 30
143 aXAngle = aCutPlanes.GetRotateX()
144 aYAngle = aCutPlanes.GetRotateY()
145 anOrientation = aCutPlanes.GetOrientationType()
146 for i in range(aNbPlanes,1,-1) :
147     aCutPlanes.SetNbPlanes(i)
148     aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
149     aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
150     aCutPlanes.SetOrientation(anOrientation,aX,aY)
151     myView.Update();
152     time.sleep(aDelay)
153
154 aNbPlanes = 10
155 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
156 for i in range(1,aNbPlanes) :
157     aCutPlanes.SetNbPlanes(i)
158     myView.Update();
159     time.sleep(aDelay)
160
161 myView.SaveViewParams('AAA')
162 print "myView.SaveViewParams('AAA')"
163 time.sleep(aDelay)
164
165 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
166 myView.RemoveScale();
167
168 print "myView.Update()"
169 myView.Update();
170 print "myView.FitAll()"
171 myView.FitAll();
172
173
174
175 myView = myViewManager.Create3DView();
176 print "myViewManager.Create3DView()"
177
178 myView.SetTitle("IsoSurface's viewer")
179
180 print "myView.SetBackground(...)"
181 aColor = SALOMEDS.Color(1.0,0.7,0.0)
182 myView.SetBackground(aColor);
183 time.sleep(aDelay)
184
185 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
186
187 myView.DisplayOnly(aIsoSurfaces);
188 myView.FitAll();
189 print "myView.DisplayOnly(aCutPlanes)"
190 time.sleep(aDelay)
191
192 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
193 aNbSurfaces = 32
194 for i in range(2,aNbSurfaces) :
195     aIsoSurfaces.SetNbSurfaces(i)
196     myView.Update();
197     time.sleep(aDelay)
198
199 aIsoSurfaces.SetNbSurfaces(10)
200
201 print "myView.Update()"
202 myView.Update();
203 print "myView.FitAll()"
204 myView.FitAll();
205
206
207
208 myView = myViewManager.Create3DView();
209 myView.SetTitle("The viewer for CutLines")
210 print "myViewManager.Create3DView()"
211 time.sleep(aDelay)
212
213 print "myView.SetBackground(...)"
214 aColor = SALOMEDS.Color(0.7,0.7,0.7)
215 myView.SetBackground(aColor);
216 time.sleep(aDelay)
217
218 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
219 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
220 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
221
222 myView.DisplayOnly(aCutLines);
223 myView.FitAll();
224 print "myView.DisplayOnly(aCutLines)"
225 time.sleep(aDelay)
226
227 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
228 aTable = myVisu.CreateTable( aSObj.GetID() )
229 print "myVisu.CreateTable(...)"
230
231 aTableView = myViewManager.CreateTableView(aTable)
232 aTableView.SetTitle('Changed Title')
233
234 aContainer = myVisu.CreateContainer()
235 print "myVisu.CreateContainer(...)"
236
237 aNbCurve = aTable.GetNbRows() - 1
238 for i in range(2,aNbCurve):
239    aCurve = myVisu.CreateCurve( aTable, 1, i )
240    print i, aCurve
241    aContainer.AddCurve(aCurve)
242
243
244 myView = myViewManager.CreateXYPlot();
245 myView.SetTitle("The viewer for Curves from CutLines")
246 print "myViewManager.CreateXYPlot()"
247 time.sleep(aDelay)
248
249 myView.Display(aContainer)
250
251
252
253 myView = myViewManager.Create3DView();
254 myView.SetTitle("The viewer for CutSegment")
255 print "myViewManager.Create3DView()"
256 time.sleep(aDelay)
257
258 print "myView.SetBackground(...)"
259 aColor = SALOMEDS.Color(0.0,0.7,0.3)
260 myView.SetBackground(aColor);
261 time.sleep(aDelay)
262
263 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
264 aCutSegment.SetPoint1(0.0,0.0,0.0)
265 aCutSegment.SetPoint2(0.4,0.05,1.0)
266
267 myView.DisplayOnly(aCutSegment);
268 myView.FitAll();
269 print "myView.DisplayOnly(aCutSegment)"
270 time.sleep(aDelay)
271
272 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
273 aTable = myVisu.CreateTable( aSObj.GetID() )
274 print "myVisu.CreateTable(...)"
275
276 aTableView = myViewManager.CreateTableView(aTable)
277 aTableView.SetTitle('Changed Title')
278
279 aContainer = myVisu.CreateContainer()
280 print "myVisu.CreateContainer(...)"
281
282 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
283 print aCurve
284 aContainer.AddCurve(aCurve)
285
286
287 myView = myViewManager.CreateXYPlot();
288 myView.SetTitle("The viewer for Curve from CutSegment")
289 print "myViewManager.CreateXYPlot()"
290 time.sleep(aDelay)
291
292 myView.Display(aContainer)
293
294
295
296 myView = myViewManager.Create3DView();
297 myView.SetTitle("The viewer for Animation")
298 print "myViewManager.Create3DView()"
299 time.sleep(aDelay)
300
301 medFile = "TimeStamps.med"
302 myFieldName = "vitesse";
303
304 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
305 myResult = myVisu.ImportFile(medFile)
306
307 anAnim = myVisu.CreateAnimation(myView);
308 aSObj = myStudy.FindObjectIOR(myResult.GetID())
309 aSObj = aSObj.FindSubObject(1)[1]
310 aSObj = aSObj.FindSubObject(3)[1]
311 aSObj = aSObj.FindSubObject(2)[1]
312 anAnim.addField(aSObj)
313 anAnim.setPresentationType(0,VISU.TISOSURFACES)
314 print "Generate presentations"
315 anAnim.generatePresentations(0)
316 print "Generate frames"
317 anAnim.generateFrames()
318 print "Start Animation"
319 anAnim.setSpeed(99)
320 #anAnim.setCycling(1)
321 anAnim.startAnimation()
322 myView.FitAll()
323 while 1:
324     time.sleep(1+aDelay)
325     if not anAnim.isRunning():
326         anAnim.stopAnimation()
327         break
328
329 #anAnim.clearView()