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