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