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 : visu_view3d.py
33 from visu_gui import *
37 #mySession = batchmode_visu.mySession
39 myVisu.SetCurrentStudy(salome.myStudy)
41 myViewManager = myVisu.GetViewManager();
43 myView = myViewManager.Create3DView();
44 myView.SetTitle("The window will be soon destroyed!")
45 print "myViewManager.Create3DView()"
49 print "myView.Maximize()"
53 print "myView.Restore()"
57 print "myView.Minimize()"
60 myViewManager.Destroy(myView)
61 print "myViewManager.Destroy(myView)"
67 myFieldName = "VITESSE";
69 aMeshName ="LE VOLUME"
73 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
74 myResult = myVisu.ImportFile(medFile)
78 myView = myViewManager.Create3DView();
80 print "myView.SetBackground(...)"
81 aColor = SALOMEDS.Color(0.0,0.3,1.0)
82 myView.SetBackground(aColor);
84 myView.SetTitle("The viewer will display ScalarMap")
85 print "myViewManager.Create3DView()"
87 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
89 myView.Display(aScalarMap);
90 print "myView.Display(aScalarMap)"
91 myView.SetFocalPoint([0,0,0]);
92 print "myView.SetFocalPoint(...)"
93 myView.SetParallelScale(2);
94 print "myView.SetParallelScale(...)"
97 aMax = aScalarMap.GetMax()
98 aMin = aScalarMap.GetMin()
99 aDelta = (aMax - aMin)/2.0
100 aNbColors = aScalarMap.GetNbColors()
102 for i in range(2,aNbColors) :
103 aScalarMap.SetNbColors(i)
104 aX = aMin + aDelta*i/aNbColors
105 aY = aMax - aDelta*i/aNbColors
106 aScalarMap.SetRange(aX,aY)
110 aScalarMap.SetRange(aMin,aMax)
112 print "myView.Update()"
114 print "myView.FitAll()"
117 #aWidth = myView.GetViewWidth()
118 #print "a View Width before = ", aWidth
119 #myView.SetViewWidth(aWidth/2)
120 #aWidth = myView.GetViewWidth()
121 #print "a View Width after = ", aWidth
124 myView = myViewManager.Create3DView();
125 myView.SetTitle("Here we will display CutPlanes")
129 print "myView.SetBackground(...)"
130 aColor = SALOMEDS.Color(0.0,0.7,0.0)
131 myView.SetBackground(aColor);
133 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
134 print "myVisu.CutPlanesOnField(...)"
136 myView.DisplayOnly(aCutPlanes);
137 print "myView.DisplayOnly(aCutPlanes)"
139 aPoint = myView.GetPointOfView();
140 aPoint[0] = aPoint[0] + 10;
141 myView.SetPointOfView(aPoint);
142 print "myView.SetPointOfView(...)"
143 myView.ScaleView(VISU.View3D.YAxis,10.0);
144 myView.ScaleView(VISU.View3D.XAxis,3.0);
145 print "myView.ScaleView(...)"
150 aNbPlanes = aCutPlanes.GetNbPlanes()
152 aXAngle = aCutPlanes.GetRotateX()
153 aYAngle = aCutPlanes.GetRotateY()
154 anOrientation = aCutPlanes.GetOrientationType()
155 for i in range(aNbPlanes,1,-1) :
156 aCutPlanes.SetNbPlanes(i)
157 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
158 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
159 aCutPlanes.SetOrientation(anOrientation,aX,aY)
164 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
165 for i in range(1,aNbPlanes) :
166 aCutPlanes.SetNbPlanes(i)
170 myView.SaveViewParams('AAA')
171 print "myView.SaveViewParams('AAA')"
174 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
175 myView.RemoveScale();
177 print "myView.Update()"
179 print "myView.FitAll()"
184 myView = myViewManager.Create3DView();
185 print "myViewManager.Create3DView()"
187 myView.SetTitle("IsoSurface's viewer")
189 print "myView.SetBackground(...)"
190 aColor = SALOMEDS.Color(1.0,0.7,0.0)
191 myView.SetBackground(aColor);
194 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
196 myView.DisplayOnly(aIsoSurfaces);
198 print "myView.DisplayOnly(aCutPlanes)"
201 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
203 for i in range(2,aNbSurfaces) :
204 aIsoSurfaces.SetNbSurfaces(i)
208 aIsoSurfaces.SetNbSurfaces(10)
210 print "myView.Update()"
212 print "myView.FitAll()"
217 myView = myViewManager.Create3DView();
218 myView.SetTitle("The viewer for CutLines")
219 print "myViewManager.Create3DView()"
222 print "myView.SetBackground(...)"
223 aColor = SALOMEDS.Color(0.7,0.7,0.7)
224 myView.SetBackground(aColor);
227 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
228 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
229 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
231 myView.DisplayOnly(aCutLines);
233 print "myView.DisplayOnly(aCutLines)"
236 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
237 aTable = myVisu.CreateTable( aSObj.GetID() )
238 print "myVisu.CreateTable(...)"
240 aTableView = myViewManager.CreateTableView(aTable)
241 aTableView.SetTitle('Changed Title')
243 aContainer = myVisu.CreateContainer()
244 print "myVisu.CreateContainer(...)"
246 aNbCurve = aTable.GetNbRows() - 1
247 for i in range(2,aNbCurve):
248 aCurve = myVisu.CreateCurve( aTable, 1, i )
250 aContainer.AddCurve(aCurve)
253 myView = myViewManager.CreateXYPlot();
254 myView.SetTitle("The viewer for Curves from CutLines")
255 print "myViewManager.CreateXYPlot()"
258 myView.Display(aContainer)
262 myView = myViewManager.Create3DView();
263 myView.SetTitle("The viewer for CutSegment")
264 print "myViewManager.Create3DView()"
267 print "myView.SetBackground(...)"
268 aColor = SALOMEDS.Color(0.0,0.7,0.3)
269 myView.SetBackground(aColor);
272 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
273 aCutSegment.SetPoint1(0.0,0.0,0.0)
274 aCutSegment.SetPoint2(0.4,0.05,1.0)
276 myView.DisplayOnly(aCutSegment);
278 print "myView.DisplayOnly(aCutSegment)"
281 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
282 aTable = myVisu.CreateTable( aSObj.GetID() )
283 print "myVisu.CreateTable(...)"
285 aTableView = myViewManager.CreateTableView(aTable)
286 aTableView.SetTitle('Changed Title')
288 aContainer = myVisu.CreateContainer()
289 print "myVisu.CreateContainer(...)"
291 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
293 aContainer.AddCurve(aCurve)
296 myView = myViewManager.CreateXYPlot();
297 myView.SetTitle("The viewer for Curve from CutSegment")
298 print "myViewManager.CreateXYPlot()"
301 myView.Display(aContainer)
305 myView = myViewManager.Create3DView();
306 myView.SetTitle("The viewer for Animation")
307 print "myViewManager.Create3DView()"
310 medFile = "TimeStamps.med"
311 myFieldName = "vitesse";
313 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
314 myResult = myVisu.ImportFile(medFile)
316 anAnim = myVisu.CreateAnimation(myView);
317 aSObj = myStudy.FindObjectIOR(myResult.GetID())
318 aSObj = aSObj.FindSubObject(1)[1]
319 aSObj = aSObj.FindSubObject(3)[1]
320 aSObj = aSObj.FindSubObject(2)[1]
321 anAnim.addField(aSObj)
322 anAnim.setPresentationType(0,VISU.TISOSURFACES)
323 print "Generate presentations"
324 anAnim.generatePresentations(0)
325 print "Generate frames"
326 anAnim.generateFrames()
327 print "Start Animation"
329 #anAnim.setCycling(1)
330 anAnim.startAnimation()
334 if not anAnim.isRunning():
335 anAnim.stopAnimation()