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