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 myViewManager = myVisu.GetViewManager();
40 myView = myViewManager.Create3DView();
41 myView.SetTitle("The window will be soon destroyed!")
42 print "myViewManager.Create3DView()"
46 print "myView.Maximize()"
50 print "myView.Restore()"
54 print "myView.Minimize()"
57 myViewManager.Destroy(myView)
58 print "myViewManager.Destroy(myView)"
64 myFieldName = "VITESSE";
66 aMeshName ="LE VOLUME"
70 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
71 myResult = myVisu.ImportFile(medFile)
75 myView = myViewManager.Create3DView();
77 print "myView.SetBackground(...)"
78 aColor = SALOMEDS.Color(0.0,0.3,1.0)
79 myView.SetBackground(aColor);
81 myView.SetTitle("The viewer will display ScalarMap")
82 print "myViewManager.Create3DView()"
84 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
86 myView.Display(aScalarMap);
87 print "myView.Display(aScalarMap)"
88 myView.SetFocalPoint([0,0,0]);
89 print "myView.SetFocalPoint(...)"
90 myView.SetParallelScale(2);
91 print "myView.SetParallelScale(...)"
94 aMax = aScalarMap.GetMax()
95 aMin = aScalarMap.GetMin()
96 aDelta = (aMax - aMin)/2.0
97 aNbColors = aScalarMap.GetNbColors()
99 for i in range(2,aNbColors) :
100 aScalarMap.SetNbColors(i)
101 aX = aMin + aDelta*i/aNbColors
102 aY = aMax - aDelta*i/aNbColors
103 aScalarMap.SetRange(aX,aY)
107 aScalarMap.SetRange(aMin,aMax)
109 print "myView.Update()"
111 print "myView.FitAll()"
116 myView = myViewManager.Create3DView();
117 myView.SetTitle("Here we will display CutPlanes")
119 print "myView.SetBackground(...)"
120 aColor = SALOMEDS.Color(0.0,0.7,0.0)
121 myView.SetBackground(aColor);
123 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
124 print "myVisu.CutPlanesOnField(...)"
126 myView.DisplayOnly(aCutPlanes);
127 print "myView.DisplayOnly(aCutPlanes)"
129 aPoint = myView.GetPointOfView();
130 aPoint[0] = aPoint[0] + 10;
131 myView.SetPointOfView(aPoint);
132 print "myView.SetPointOfView(...)"
133 myView.ScaleView(VISU.View3D.YAxis,10.0);
134 myView.ScaleView(VISU.View3D.XAxis,3.0);
135 print "myView.ScaleView(...)"
140 aNbPlanes = aCutPlanes.GetNbPlanes()
142 aXAngle = aCutPlanes.GetRotateX()
143 aYAngle = aCutPlanes.GetRotateY()
144 anOrientation = aCutPlanes.GetOrientationType()
145 for i in range(aNbPlanes,1,-1) :
146 aCutPlanes.SetNbPlanes(i)
147 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
148 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
149 aCutPlanes.SetOrientation(anOrientation,aX,aY)
154 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
155 for i in range(1,aNbPlanes) :
156 aCutPlanes.SetNbPlanes(i)
160 myView.SaveViewParams('AAA')
161 print "myView.SaveViewParams('AAA')"
164 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
165 myView.RemoveScale();
167 print "myView.Update()"
169 print "myView.FitAll()"
174 myView = myViewManager.Create3DView();
175 print "myViewManager.Create3DView()"
177 myView.SetTitle("IsoSurface's viewer")
179 print "myView.SetBackground(...)"
180 aColor = SALOMEDS.Color(1.0,0.7,0.0)
181 myView.SetBackground(aColor);
184 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
186 myView.DisplayOnly(aIsoSurfaces);
188 print "myView.DisplayOnly(aCutPlanes)"
191 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
193 for i in range(2,aNbSurfaces) :
194 aIsoSurfaces.SetNbSurfaces(i)
198 aIsoSurfaces.SetNbSurfaces(10)
200 print "myView.Update()"
202 print "myView.FitAll()"
207 myView = myViewManager.Create3DView();
208 myView.SetTitle("The viewer for CutLines")
209 print "myViewManager.Create3DView()"
212 print "myView.SetBackground(...)"
213 aColor = SALOMEDS.Color(0.7,0.7,0.7)
214 myView.SetBackground(aColor);
217 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
218 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
219 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
221 myView.DisplayOnly(aCutLines);
223 print "myView.DisplayOnly(aCutLines)"
226 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
227 aTable = myVisu.CreateTable( aSObj.GetID() )
228 print "myVisu.CreateTable(...)"
230 aTableView = myViewManager.CreateTableView(aTable)
231 aTableView.SetTitle('Changed Title')
233 aContainer = myVisu.CreateContainer()
234 print "myVisu.CreateContainer(...)"
236 aNbCurve = aTable.GetNbRows() - 1
237 for i in range(2,aNbCurve):
238 aCurve = myVisu.CreateCurve( aTable, 1, i )
240 aContainer.AddCurve(aCurve)
243 myView = myViewManager.CreateXYPlot();
244 myView.SetTitle("The viewer for Curves from CutLines")
245 print "myViewManager.CreateXYPlot()"
248 myView.Display(aContainer)
252 myView = myViewManager.Create3DView();
253 myView.SetTitle("The viewer for CutSegment")
254 print "myViewManager.Create3DView()"
257 print "myView.SetBackground(...)"
258 aColor = SALOMEDS.Color(0.0,0.7,0.3)
259 myView.SetBackground(aColor);
262 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
263 aCutSegment.SetPoint1(0.0,0.0,0.0)
264 aCutSegment.SetPoint2(0.4,0.05,1.0)
266 myView.DisplayOnly(aCutSegment);
268 print "myView.DisplayOnly(aCutSegment)"
271 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
272 aTable = myVisu.CreateTable( aSObj.GetID() )
273 print "myVisu.CreateTable(...)"
275 aTableView = myViewManager.CreateTableView(aTable)
276 aTableView.SetTitle('Changed Title')
278 aContainer = myVisu.CreateContainer()
279 print "myVisu.CreateContainer(...)"
281 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
283 aContainer.AddCurve(aCurve)
286 myView = myViewManager.CreateXYPlot();
287 myView.SetTitle("The viewer for Curve from CutSegment")
288 print "myViewManager.CreateXYPlot()"
291 myView.Display(aContainer)
295 myView = myViewManager.Create3DView();
296 myView.SetTitle("The viewer for Animation")
297 print "myViewManager.Create3DView()"
300 medFile = "TimeStamps.med"
301 myFieldName = "vitesse";
303 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
304 myResult = myVisu.ImportFile(medFile)
306 anAnim = myVisu.CreateAnimation(myView);
307 aSObj = myStudy.FindObjectIOR(myResult.GetID())
308 aSObj = aSObj.FindSubObject(1)[1]
309 aSObj = aSObj.FindSubObject(3)[1]
310 aSObj = aSObj.FindSubObject(2)[1]
311 anAnim.addField(aSObj)
312 anAnim.setPresentationType(0,VISU.TISOSURFACES)
313 print "Generate presentations"
314 anAnim.generatePresentations(0)
315 print "Generate frames"
316 anAnim.generateFrames()
317 print "Start Animation"
319 #anAnim.setCycling(1)
320 anAnim.startAnimation()
324 if not anAnim.isRunning():
325 anAnim.stopAnimation()