2 # -*- coding: iso-8859-1 -*-
3 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
5 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
8 # This library is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU Lesser General Public
10 # License as published by the Free Software Foundation; either
11 # version 2.1 of the License.
13 # This library is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # Lesser General Public License for more details.
18 # You should have received a copy of the GNU Lesser General Public
19 # License along with this library; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 # VISU VISU_SWIG : binding of C++ implementation and Python
25 # File : batchmode_visu_view3d.py
33 from batchmode_visu import *
37 #mySession = batchmode_visu.mySession
39 myViewManager = myVisu.GetViewManager();
41 myView = myViewManager.Create3DView();
42 myView.SetTitle("The window will be soon destroyed!")
43 print "myViewManager.Create3DView()"
47 print "myView.Maximize()"
51 print "myView.Restore()"
55 print "myView.Minimize()"
58 myViewManager.Destroy(myView)
59 print "myViewManager.Destroy(myView)"
65 myFieldName = "VITESSE";
67 aMeshName ="LE VOLUME"
71 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
72 myResult = myVisu.ImportFile(medFile)
76 myView = myViewManager.Create3DView();
78 print "myView.SetBackground(...)"
79 aColor = SALOMEDS.Color(0.0,0.3,1.0)
80 myView.SetBackground(aColor);
82 myView.SetTitle("The viewer will display ScalarMap")
83 print "myViewManager.Create3DView()"
85 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
87 myView.Display(aScalarMap);
88 print "myView.Display(aScalarMap)"
89 myView.SetFocalPoint([0,0,0]);
90 print "myView.SetFocalPoint(...)"
91 myView.SetParallelScale(2);
92 print "myView.SetParallelScale(...)"
95 aMax = aScalarMap.GetMax()
96 aMin = aScalarMap.GetMin()
97 aDelta = (aMax - aMin)/2.0
98 aNbColors = aScalarMap.GetNbColors()
100 for i in range(2,aNbColors) :
101 aScalarMap.SetNbColors(i)
102 aX = aMin + aDelta*i/aNbColors
103 aY = aMax - aDelta*i/aNbColors
104 aScalarMap.SetRange(aX,aY)
108 aScalarMap.SetRange(aMin,aMax)
110 print "myView.Update()"
112 print "myView.FitAll()"
117 myView = myViewManager.Create3DView();
118 myView.SetTitle("Here we will display CutPlanes")
120 print "myView.SetBackground(...)"
121 aColor = SALOMEDS.Color(0.0,0.7,0.0)
122 myView.SetBackground(aColor);
124 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
125 print "myVisu.CutPlanesOnField(...)"
127 myView.DisplayOnly(aCutPlanes);
128 print "myView.DisplayOnly(aCutPlanes)"
130 aPoint = myView.GetPointOfView();
131 aPoint[0] = aPoint[0] + 10;
132 myView.SetPointOfView(aPoint);
133 print "myView.SetPointOfView(...)"
134 myView.ScaleView(VISU.View3D.YAxis,10.0);
135 myView.ScaleView(VISU.View3D.XAxis,3.0);
136 print "myView.ScaleView(...)"
141 aNbPlanes = aCutPlanes.GetNbPlanes()
143 aXAngle = aCutPlanes.GetRotateX()
144 aYAngle = aCutPlanes.GetRotateY()
145 anOrientation = aCutPlanes.GetOrientationType()
146 for i in range(aNbPlanes,1,-1) :
147 aCutPlanes.SetNbPlanes(i)
148 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
149 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
150 aCutPlanes.SetOrientation(anOrientation,aX,aY)
155 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
156 for i in range(1,aNbPlanes) :
157 aCutPlanes.SetNbPlanes(i)
161 myView.SaveViewParams('AAA')
162 print "myView.SaveViewParams('AAA')"
165 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
166 myView.RemoveScale();
168 print "myView.Update()"
170 print "myView.FitAll()"
175 myView = myViewManager.Create3DView();
176 print "myViewManager.Create3DView()"
178 myView.SetTitle("IsoSurface's viewer")
180 print "myView.SetBackground(...)"
181 aColor = SALOMEDS.Color(1.0,0.7,0.0)
182 myView.SetBackground(aColor);
185 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
187 myView.DisplayOnly(aIsoSurfaces);
189 print "myView.DisplayOnly(aCutPlanes)"
192 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
194 for i in range(2,aNbSurfaces) :
195 aIsoSurfaces.SetNbSurfaces(i)
199 aIsoSurfaces.SetNbSurfaces(10)
201 print "myView.Update()"
203 print "myView.FitAll()"
208 myView = myViewManager.Create3DView();
209 myView.SetTitle("The viewer for CutLines")
210 print "myViewManager.Create3DView()"
213 print "myView.SetBackground(...)"
214 aColor = SALOMEDS.Color(0.7,0.7,0.7)
215 myView.SetBackground(aColor);
218 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
219 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
220 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
222 myView.DisplayOnly(aCutLines);
224 print "myView.DisplayOnly(aCutLines)"
227 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
228 aTable = myVisu.CreateTable( aSObj.GetID() )
229 print "myVisu.CreateTable(...)"
231 aTableView = myViewManager.CreateTableView(aTable)
232 aTableView.SetTitle('Changed Title')
234 aContainer = myVisu.CreateContainer()
235 print "myVisu.CreateContainer(...)"
237 aNbCurve = aTable.GetNbRows() - 1
238 for i in range(2,aNbCurve):
239 aCurve = myVisu.CreateCurve( aTable, 1, i )
241 aContainer.AddCurve(aCurve)
244 myView = myViewManager.CreateXYPlot();
245 myView.SetTitle("The viewer for Curves from CutLines")
246 print "myViewManager.CreateXYPlot()"
249 myView.Display(aContainer)
253 myView = myViewManager.Create3DView();
254 myView.SetTitle("The viewer for CutSegment")
255 print "myViewManager.Create3DView()"
258 print "myView.SetBackground(...)"
259 aColor = SALOMEDS.Color(0.0,0.7,0.3)
260 myView.SetBackground(aColor);
263 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
264 aCutSegment.SetPoint1(0.0,0.0,0.0)
265 aCutSegment.SetPoint2(0.4,0.05,1.0)
267 myView.DisplayOnly(aCutSegment);
269 print "myView.DisplayOnly(aCutSegment)"
272 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
273 aTable = myVisu.CreateTable( aSObj.GetID() )
274 print "myVisu.CreateTable(...)"
276 aTableView = myViewManager.CreateTableView(aTable)
277 aTableView.SetTitle('Changed Title')
279 aContainer = myVisu.CreateContainer()
280 print "myVisu.CreateContainer(...)"
282 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
284 aContainer.AddCurve(aCurve)
287 myView = myViewManager.CreateXYPlot();
288 myView.SetTitle("The viewer for Curve from CutSegment")
289 print "myViewManager.CreateXYPlot()"
292 myView.Display(aContainer)
296 myView = myViewManager.Create3DView();
297 myView.SetTitle("The viewer for Animation")
298 print "myViewManager.Create3DView()"
301 medFile = "TimeStamps.med"
302 myFieldName = "vitesse";
304 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
305 myResult = myVisu.ImportFile(medFile)
307 anAnim = myVisu.CreateAnimation(myView);
308 aSObj = myStudy.FindObjectIOR(myResult.GetID())
309 aSObj = aSObj.FindSubObject(1)[1]
310 aSObj = aSObj.FindSubObject(3)[1]
311 aSObj = aSObj.FindSubObject(2)[1]
312 anAnim.addField(aSObj)
313 anAnim.setPresentationType(0,VISU.TISOSURFACES)
314 print "Generate presentations"
315 anAnim.generatePresentations(0)
316 print "Generate frames"
317 anAnim.generateFrames()
318 print "Start Animation"
320 #anAnim.setCycling(1)
321 anAnim.startAnimation()
325 if not anAnim.isRunning():
326 anAnim.stopAnimation()