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