]> SALOME platform Git repositories - modules/visu.git/blob - src/VISU_SWIG/visu_view3d.py
Salome HOME
c7943d6dfc5148d3dfa5edc776abf8c067880b5a
[modules/visu.git] / src / VISU_SWIG / 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   : visu_view3d.py
25 #  Module : VISU
26 #
27 import os
28 import time
29 import math
30 import VISU
31 import salome
32 import SALOMEDS
33 from visu_gui 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 #aWidth = myView.GetViewWidth()
118 #print "a View Width before = ", aWidth
119 #myView.SetViewWidth(aWidth/2)
120 #aWidth = myView.GetViewWidth()
121 #print "a View Width after  = ", aWidth
122
123
124 myView = myViewManager.Create3DView();
125 myView.SetTitle("Here we will display CutPlanes")
126
127 myView.SplitRight()
128
129 print "myView.SetBackground(...)"
130 aColor = SALOMEDS.Color(0.0,0.7,0.0)
131 myView.SetBackground(aColor);
132
133 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
134 print "myVisu.CutPlanesOnField(...)"
135
136 myView.DisplayOnly(aCutPlanes);
137 print "myView.DisplayOnly(aCutPlanes)"
138
139 aPoint = myView.GetPointOfView();
140 aPoint[0] = aPoint[0] + 10;
141 myView.SetPointOfView(aPoint);
142 print "myView.SetPointOfView(...)"
143 myView.ScaleView(VISU.View3D.YAxis,10.0);
144 myView.ScaleView(VISU.View3D.XAxis,3.0);
145 print "myView.ScaleView(...)"
146 time.sleep(aDelay)
147
148 myView.FitAll();
149
150 aNbPlanes = aCutPlanes.GetNbPlanes()
151 aNbPlanes = 30
152 aXAngle = aCutPlanes.GetRotateX()
153 aYAngle = aCutPlanes.GetRotateY()
154 anOrientation = aCutPlanes.GetOrientationType()
155 for i in range(aNbPlanes,1,-1) :
156     aCutPlanes.SetNbPlanes(i)
157     aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
158     aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
159     aCutPlanes.SetOrientation(anOrientation,aX,aY)
160     myView.Update();
161     time.sleep(aDelay)
162
163 aNbPlanes = 10
164 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
165 for i in range(1,aNbPlanes) :
166     aCutPlanes.SetNbPlanes(i)
167     myView.Update();
168     time.sleep(aDelay)
169
170 myView.SaveViewParams('AAA')
171 print "myView.SaveViewParams('AAA')"
172 time.sleep(aDelay)
173
174 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
175 myView.RemoveScale();
176
177 print "myView.Update()"
178 myView.Update();
179 print "myView.FitAll()"
180 myView.FitAll();
181
182
183
184 myView = myViewManager.Create3DView();
185 print "myViewManager.Create3DView()"
186
187 myView.SetTitle("IsoSurface's viewer")
188
189 print "myView.SetBackground(...)"
190 aColor = SALOMEDS.Color(1.0,0.7,0.0)
191 myView.SetBackground(aColor);
192 time.sleep(aDelay)
193
194 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
195
196 myView.DisplayOnly(aIsoSurfaces);
197 myView.FitAll();
198 print "myView.DisplayOnly(aCutPlanes)"
199 time.sleep(aDelay)
200
201 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
202 aNbSurfaces = 32
203 for i in range(2,aNbSurfaces) :
204     aIsoSurfaces.SetNbSurfaces(i)
205     myView.Update();
206     time.sleep(aDelay)
207
208 aIsoSurfaces.SetNbSurfaces(10)
209
210 print "myView.Update()"
211 myView.Update();
212 print "myView.FitAll()"
213 myView.FitAll();
214
215
216
217 myView = myViewManager.Create3DView();
218 myView.SetTitle("The viewer for CutLines")
219 print "myViewManager.Create3DView()"
220 time.sleep(aDelay)
221
222 print "myView.SetBackground(...)"
223 aColor = SALOMEDS.Color(0.7,0.7,0.7)
224 myView.SetBackground(aColor);
225 time.sleep(aDelay)
226
227 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
228 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
229 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
230
231 myView.DisplayOnly(aCutLines);
232 myView.FitAll();
233 print "myView.DisplayOnly(aCutLines)"
234 time.sleep(aDelay)
235
236 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
237 aTable = myVisu.CreateTable( aSObj.GetID() )
238 print "myVisu.CreateTable(...)"
239
240 aTableView = myViewManager.CreateTableView(aTable)
241 aTableView.SetTitle('Changed Title')
242
243 aContainer = myVisu.CreateContainer()
244 print "myVisu.CreateContainer(...)"
245
246 aNbCurve = aTable.GetNbRows() - 1
247 for i in range(2,aNbCurve):
248    aCurve = myVisu.CreateCurve( aTable, 1, i )
249    print i, aCurve
250    aContainer.AddCurve(aCurve)
251
252
253 myView = myViewManager.CreateXYPlot();
254 myView.SetTitle("The viewer for Curves from CutLines")
255 print "myViewManager.CreateXYPlot()"
256 time.sleep(aDelay)
257
258 myView.Display(aContainer)
259
260
261
262 myView = myViewManager.Create3DView();
263 myView.SetTitle("The viewer for CutSegment")
264 print "myViewManager.Create3DView()"
265 time.sleep(aDelay)
266
267 print "myView.SetBackground(...)"
268 aColor = SALOMEDS.Color(0.0,0.7,0.3)
269 myView.SetBackground(aColor);
270 time.sleep(aDelay)
271
272 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
273 aCutSegment.SetPoint1(0.0,0.0,0.0)
274 aCutSegment.SetPoint2(0.4,0.05,1.0)
275
276 myView.DisplayOnly(aCutSegment);
277 myView.FitAll();
278 print "myView.DisplayOnly(aCutSegment)"
279 time.sleep(aDelay)
280
281 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
282 aTable = myVisu.CreateTable( aSObj.GetID() )
283 print "myVisu.CreateTable(...)"
284
285 aTableView = myViewManager.CreateTableView(aTable)
286 aTableView.SetTitle('Changed Title')
287
288 aContainer = myVisu.CreateContainer()
289 print "myVisu.CreateContainer(...)"
290
291 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
292 print aCurve
293 aContainer.AddCurve(aCurve)
294
295
296 myView = myViewManager.CreateXYPlot();
297 myView.SetTitle("The viewer for Curve from CutSegment")
298 print "myViewManager.CreateXYPlot()"
299 time.sleep(aDelay)
300
301 myView.Display(aContainer)
302
303
304
305 myView = myViewManager.Create3DView();
306 myView.SetTitle("The viewer for Animation")
307 print "myViewManager.Create3DView()"
308 time.sleep(aDelay)
309
310 medFile = "TimeStamps.med"
311 myFieldName = "vitesse";
312
313 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
314 myResult = myVisu.ImportFile(medFile)
315
316 anAnim = myVisu.CreateAnimation(myView);
317 aSObj = myStudy.FindObjectIOR(myResult.GetID())
318 aSObj = aSObj.FindSubObject(1)[1]
319 aSObj = aSObj.FindSubObject(3)[1]
320 aSObj = aSObj.FindSubObject(2)[1]
321 anAnim.addField(aSObj)
322 anAnim.setPresentationType(0,VISU.TISOSURFACES)
323 print "Generate presentations"
324 anAnim.generatePresentations(0)
325 print "Generate frames"
326 anAnim.generateFrames()
327 print "Start Animation"
328 anAnim.setSpeed(99)
329 #anAnim.setCycling(1)
330 anAnim.startAnimation()
331 myView.FitAll()
332 while 1:
333     time.sleep(1+aDelay)
334     if not anAnim.isRunning():
335         anAnim.stopAnimation()
336         break
337
338 #anAnim.clearView()