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