1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License.
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this library; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 # VISU VISU_SWIG : binding of C++ implementation and Python
24 # File : batchmode_visu_view3d.py
32 from batchmode_visu import *
36 #mySession = batchmode_visu.mySession
38 myVisu.SetCurrentStudy(salome.myStudy)
40 myViewManager = myVisu.GetViewManager();
42 myView = myViewManager.Create3DView();
43 myView.SetTitle("The window will be soon destroyed!")
44 print "myViewManager.Create3DView()"
48 print "myView.Maximize()"
52 print "myView.Restore()"
56 print "myView.Minimize()"
59 myViewManager.Destroy(myView)
60 print "myViewManager.Destroy(myView)"
66 myFieldName = "VITESSE";
68 aMeshName ="LE VOLUME"
72 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
73 myResult = myVisu.ImportFile(medFile)
77 myView = myViewManager.Create3DView();
79 print "myView.SetBackground(...)"
80 aColor = SALOMEDS.Color(0.0,0.3,1.0)
81 myView.SetBackground(aColor);
83 myView.SetTitle("The viewer will display ScalarMap")
84 print "myViewManager.Create3DView()"
86 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
88 myView.Display(aScalarMap);
89 print "myView.Display(aScalarMap)"
90 myView.SetFocalPoint([0,0,0]);
91 print "myView.SetFocalPoint(...)"
92 myView.SetParallelScale(2);
93 print "myView.SetParallelScale(...)"
96 aMax = aScalarMap.GetMax()
97 aMin = aScalarMap.GetMin()
98 aDelta = (aMax - aMin)/2.0
99 aNbColors = aScalarMap.GetNbColors()
101 for i in range(2,aNbColors) :
102 aScalarMap.SetNbColors(i)
103 aX = aMin + aDelta*i/aNbColors
104 aY = aMax - aDelta*i/aNbColors
105 aScalarMap.SetRange(aX,aY)
109 aScalarMap.SetRange(aMin,aMax)
111 print "myView.Update()"
113 print "myView.FitAll()"
118 myView = myViewManager.Create3DView();
119 myView.SetTitle("Here we will display CutPlanes")
121 print "myView.SetBackground(...)"
122 aColor = SALOMEDS.Color(0.0,0.7,0.0)
123 myView.SetBackground(aColor);
125 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
126 print "myVisu.CutPlanesOnField(...)"
128 myView.DisplayOnly(aCutPlanes);
129 print "myView.DisplayOnly(aCutPlanes)"
131 aPoint = myView.GetPointOfView();
132 aPoint[0] = aPoint[0] + 10;
133 myView.SetPointOfView(aPoint);
134 print "myView.SetPointOfView(...)"
135 myView.ScaleView(VISU.View3D.YAxis,10.0);
136 myView.ScaleView(VISU.View3D.XAxis,3.0);
137 print "myView.ScaleView(...)"
142 aNbPlanes = aCutPlanes.GetNbPlanes()
144 aXAngle = aCutPlanes.GetRotateX()
145 aYAngle = aCutPlanes.GetRotateY()
146 anOrientation = aCutPlanes.GetOrientationType()
147 for i in range(aNbPlanes,1,-1) :
148 aCutPlanes.SetNbPlanes(i)
149 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
150 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
151 aCutPlanes.SetOrientation(anOrientation,aX,aY)
156 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
157 for i in range(1,aNbPlanes) :
158 aCutPlanes.SetNbPlanes(i)
162 myView.SaveViewParams('AAA')
163 print "myView.SaveViewParams('AAA')"
166 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
167 myView.RemoveScale();
169 print "myView.Update()"
171 print "myView.FitAll()"
176 myView = myViewManager.Create3DView();
177 print "myViewManager.Create3DView()"
179 myView.SetTitle("IsoSurface's viewer")
181 print "myView.SetBackground(...)"
182 aColor = SALOMEDS.Color(1.0,0.7,0.0)
183 myView.SetBackground(aColor);
186 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
188 myView.DisplayOnly(aIsoSurfaces);
190 print "myView.DisplayOnly(aCutPlanes)"
193 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
195 for i in range(2,aNbSurfaces) :
196 aIsoSurfaces.SetNbSurfaces(i)
200 aIsoSurfaces.SetNbSurfaces(10)
202 print "myView.Update()"
204 print "myView.FitAll()"
209 myView = myViewManager.Create3DView();
210 myView.SetTitle("The viewer for CutLines")
211 print "myViewManager.Create3DView()"
214 print "myView.SetBackground(...)"
215 aColor = SALOMEDS.Color(0.7,0.7,0.7)
216 myView.SetBackground(aColor);
219 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
220 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
221 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
223 myView.DisplayOnly(aCutLines);
225 print "myView.DisplayOnly(aCutLines)"
228 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
229 aTable = myVisu.CreateTable( aSObj.GetID() )
230 print "myVisu.CreateTable(...)"
232 aTableView = myViewManager.CreateTableView(aTable)
233 aTableView.SetTitle('Changed Title')
235 aContainer = myVisu.CreateContainer()
236 print "myVisu.CreateContainer(...)"
238 aNbCurve = aTable.GetNbRows() - 1
239 for i in range(2,aNbCurve):
240 aCurve = myVisu.CreateCurve( aTable, 1, i )
242 aContainer.AddCurve(aCurve)
245 myView = myViewManager.CreateXYPlot();
246 myView.SetTitle("The viewer for Curves from CutLines")
247 print "myViewManager.CreateXYPlot()"
250 myView.Display(aContainer)
254 myView = myViewManager.Create3DView();
255 myView.SetTitle("The viewer for CutSegment")
256 print "myViewManager.Create3DView()"
259 print "myView.SetBackground(...)"
260 aColor = SALOMEDS.Color(0.0,0.7,0.3)
261 myView.SetBackground(aColor);
264 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
265 aCutSegment.SetPoint1(0.0,0.0,0.0)
266 aCutSegment.SetPoint2(0.4,0.05,1.0)
268 myView.DisplayOnly(aCutSegment);
270 print "myView.DisplayOnly(aCutSegment)"
273 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
274 aTable = myVisu.CreateTable( aSObj.GetID() )
275 print "myVisu.CreateTable(...)"
277 aTableView = myViewManager.CreateTableView(aTable)
278 aTableView.SetTitle('Changed Title')
280 aContainer = myVisu.CreateContainer()
281 print "myVisu.CreateContainer(...)"
283 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
285 aContainer.AddCurve(aCurve)
288 myView = myViewManager.CreateXYPlot();
289 myView.SetTitle("The viewer for Curve from CutSegment")
290 print "myViewManager.CreateXYPlot()"
293 myView.Display(aContainer)
297 myView = myViewManager.Create3DView();
298 myView.SetTitle("The viewer for Animation")
299 print "myViewManager.Create3DView()"
302 medFile = "TimeStamps.med"
303 myFieldName = "vitesse";
305 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
306 myResult = myVisu.ImportFile(medFile)
308 anAnim = myVisu.CreateAnimation(myView);
309 aSObj = myStudy.FindObjectIOR(myResult.GetID())
310 aSObj = aSObj.FindSubObject(1)[1]
311 aSObj = aSObj.FindSubObject(3)[1]
312 aSObj = aSObj.FindSubObject(2)[1]
313 anAnim.addField(aSObj)
314 anAnim.setPresentationType(0,VISU.TISOSURFACES)
315 print "Generate presentations"
316 anAnim.generatePresentations(0)
317 print "Generate frames"
318 anAnim.generateFrames()
319 print "Start Animation"
321 #anAnim.setCycling(1)
322 anAnim.startAnimation()
326 if not anAnim.isRunning():
327 anAnim.stopAnimation()