]> SALOME platform Git repositories - modules/visu.git/blob - src/VISU_SWIG/batchmode_visu_view3d.py
Salome HOME
correct previous integration (Porting to Python 2.6)
[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 myViewManager = myVisu.GetViewManager();
39
40 myView = myViewManager.Create3DView();
41 myView.SetTitle("The window will be soon destroyed!")
42 print "myViewManager.Create3DView()"
43 time.sleep(aDelay)
44
45 myView.Maximize()
46 print "myView.Maximize()"
47 time.sleep(aDelay)
48
49 myView.Restore()
50 print "myView.Restore()"
51 time.sleep(aDelay)
52
53 myView.Minimize()
54 print "myView.Minimize()"
55 time.sleep(aDelay)
56
57 myViewManager.Destroy(myView)
58 print "myViewManager.Destroy(myView)"
59 time.sleep(aDelay)
60
61
62
63 medFile = "fra.med"
64 myFieldName = "VITESSE";
65
66 aMeshName ="LE VOLUME"
67 anEntity = VISU.NODE
68 aTimeStampId = 1
69
70 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
71 myResult = myVisu.ImportFile(medFile)
72
73
74
75 myView = myViewManager.Create3DView();
76
77 print "myView.SetBackground(...)"
78 aColor = SALOMEDS.Color(0.0,0.3,1.0)
79 myView.SetBackground(aColor);
80
81 myView.SetTitle("The viewer will display ScalarMap")
82 print "myViewManager.Create3DView()"
83
84 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
85
86 myView.Display(aScalarMap);
87 print "myView.Display(aScalarMap)"
88 myView.SetFocalPoint([0,0,0]);
89 print "myView.SetFocalPoint(...)"
90 myView.SetParallelScale(2);
91 print "myView.SetParallelScale(...)"
92 myView.FitAll();
93
94 aMax = aScalarMap.GetMax()
95 aMin = aScalarMap.GetMin()
96 aDelta = (aMax - aMin)/2.0
97 aNbColors = aScalarMap.GetNbColors()
98 aNbColors = 64
99 for i in range(2,aNbColors) :
100     aScalarMap.SetNbColors(i)
101     aX = aMin + aDelta*i/aNbColors
102     aY = aMax - aDelta*i/aNbColors
103     aScalarMap.SetRange(aX,aY)
104     myView.Update();
105     time.sleep(aDelay)
106
107 aScalarMap.SetRange(aMin,aMax)
108
109 print "myView.Update()"
110 myView.Update();
111 print "myView.FitAll()"
112 myView.FitAll();
113
114
115
116 myView = myViewManager.Create3DView();
117 myView.SetTitle("Here we will display CutPlanes")
118
119 print "myView.SetBackground(...)"
120 aColor = SALOMEDS.Color(0.0,0.7,0.0)
121 myView.SetBackground(aColor);
122
123 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
124 print "myVisu.CutPlanesOnField(...)"
125
126 myView.DisplayOnly(aCutPlanes);
127 print "myView.DisplayOnly(aCutPlanes)"
128
129 aPoint = myView.GetPointOfView();
130 aPoint[0] = aPoint[0] + 10;
131 myView.SetPointOfView(aPoint);
132 print "myView.SetPointOfView(...)"
133 myView.ScaleView(VISU.View3D.YAxis,10.0);
134 myView.ScaleView(VISU.View3D.XAxis,3.0);
135 print "myView.ScaleView(...)"
136 time.sleep(aDelay)
137
138 myView.FitAll();
139
140 aNbPlanes = aCutPlanes.GetNbPlanes()
141 aNbPlanes = 30
142 aXAngle = aCutPlanes.GetRotateX()
143 aYAngle = aCutPlanes.GetRotateY()
144 anOrientation = aCutPlanes.GetOrientationType()
145 for i in range(aNbPlanes,1,-1) :
146     aCutPlanes.SetNbPlanes(i)
147     aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
148     aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
149     aCutPlanes.SetOrientation(anOrientation,aX,aY)
150     myView.Update();
151     time.sleep(aDelay)
152
153 aNbPlanes = 10
154 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
155 for i in range(1,aNbPlanes) :
156     aCutPlanes.SetNbPlanes(i)
157     myView.Update();
158     time.sleep(aDelay)
159
160 myView.SaveViewParams('AAA')
161 print "myView.SaveViewParams('AAA')"
162 time.sleep(aDelay)
163
164 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
165 myView.RemoveScale();
166
167 print "myView.Update()"
168 myView.Update();
169 print "myView.FitAll()"
170 myView.FitAll();
171
172
173
174 myView = myViewManager.Create3DView();
175 print "myViewManager.Create3DView()"
176
177 myView.SetTitle("IsoSurface's viewer")
178
179 print "myView.SetBackground(...)"
180 aColor = SALOMEDS.Color(1.0,0.7,0.0)
181 myView.SetBackground(aColor);
182 time.sleep(aDelay)
183
184 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
185
186 myView.DisplayOnly(aIsoSurfaces);
187 myView.FitAll();
188 print "myView.DisplayOnly(aCutPlanes)"
189 time.sleep(aDelay)
190
191 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
192 aNbSurfaces = 32
193 for i in range(2,aNbSurfaces) :
194     aIsoSurfaces.SetNbSurfaces(i)
195     myView.Update();
196     time.sleep(aDelay)
197
198 aIsoSurfaces.SetNbSurfaces(10)
199
200 print "myView.Update()"
201 myView.Update();
202 print "myView.FitAll()"
203 myView.FitAll();
204
205
206
207 myView = myViewManager.Create3DView();
208 myView.SetTitle("The viewer for CutLines")
209 print "myViewManager.Create3DView()"
210 time.sleep(aDelay)
211
212 print "myView.SetBackground(...)"
213 aColor = SALOMEDS.Color(0.7,0.7,0.7)
214 myView.SetBackground(aColor);
215 time.sleep(aDelay)
216
217 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
218 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
219 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
220
221 myView.DisplayOnly(aCutLines);
222 myView.FitAll();
223 print "myView.DisplayOnly(aCutLines)"
224 time.sleep(aDelay)
225
226 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
227 aTable = myVisu.CreateTable( aSObj.GetID() )
228 print "myVisu.CreateTable(...)"
229
230 aTableView = myViewManager.CreateTableView(aTable)
231 aTableView.SetTitle('Changed Title')
232
233 aContainer = myVisu.CreateContainer()
234 print "myVisu.CreateContainer(...)"
235
236 aNbCurve = aTable.GetNbRows() - 1
237 for i in range(2,aNbCurve):
238    aCurve = myVisu.CreateCurve( aTable, 1, i )
239    print i, aCurve
240    aContainer.AddCurve(aCurve)
241
242
243 myView = myViewManager.CreateXYPlot();
244 myView.SetTitle("The viewer for Curves from CutLines")
245 print "myViewManager.CreateXYPlot()"
246 time.sleep(aDelay)
247
248 myView.Display(aContainer)
249
250
251
252 myView = myViewManager.Create3DView();
253 myView.SetTitle("The viewer for CutSegment")
254 print "myViewManager.Create3DView()"
255 time.sleep(aDelay)
256
257 print "myView.SetBackground(...)"
258 aColor = SALOMEDS.Color(0.0,0.7,0.3)
259 myView.SetBackground(aColor);
260 time.sleep(aDelay)
261
262 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
263 aCutSegment.SetPoint1(0.0,0.0,0.0)
264 aCutSegment.SetPoint2(0.4,0.05,1.0)
265
266 myView.DisplayOnly(aCutSegment);
267 myView.FitAll();
268 print "myView.DisplayOnly(aCutSegment)"
269 time.sleep(aDelay)
270
271 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
272 aTable = myVisu.CreateTable( aSObj.GetID() )
273 print "myVisu.CreateTable(...)"
274
275 aTableView = myViewManager.CreateTableView(aTable)
276 aTableView.SetTitle('Changed Title')
277
278 aContainer = myVisu.CreateContainer()
279 print "myVisu.CreateContainer(...)"
280
281 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
282 print aCurve
283 aContainer.AddCurve(aCurve)
284
285
286 myView = myViewManager.CreateXYPlot();
287 myView.SetTitle("The viewer for Curve from CutSegment")
288 print "myViewManager.CreateXYPlot()"
289 time.sleep(aDelay)
290
291 myView.Display(aContainer)
292
293
294
295 myView = myViewManager.Create3DView();
296 myView.SetTitle("The viewer for Animation")
297 print "myViewManager.Create3DView()"
298 time.sleep(aDelay)
299
300 medFile = "TimeStamps.med"
301 myFieldName = "vitesse";
302
303 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
304 myResult = myVisu.ImportFile(medFile)
305
306 anAnim = myVisu.CreateAnimation(myView);
307 aSObj = myStudy.FindObjectIOR(myResult.GetID())
308 aSObj = aSObj.FindSubObject(1)[1]
309 aSObj = aSObj.FindSubObject(3)[1]
310 aSObj = aSObj.FindSubObject(2)[1]
311 anAnim.addField(aSObj)
312 anAnim.setPresentationType(0,VISU.TISOSURFACES)
313 print "Generate presentations"
314 anAnim.generatePresentations(0)
315 print "Generate frames"
316 anAnim.generateFrames()
317 print "Start Animation"
318 anAnim.setSpeed(99)
319 #anAnim.setCycling(1)
320 anAnim.startAnimation()
321 myView.FitAll()
322 while 1:
323     time.sleep(1+aDelay)
324     if not anAnim.isRunning():
325         anAnim.stopAnimation()
326         break
327
328 #anAnim.clearView()