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