1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2013 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
24 # VISU VISU_SWIG : binding of C++ implementation and Python
25 # File : visu_view3d.py
34 from visu_gui import *
38 #mySession = batchmode_visu.mySession
40 myVisu.SetCurrentStudy(salome.myStudy)
42 myViewManager = myVisu.GetViewManager();
44 myView = myViewManager.Create3DView();
45 myView.SetTitle("The window will be soon destroyed!")
46 print "myViewManager.Create3DView()"
50 print "myView.Maximize()"
54 print "myView.Restore()"
58 print "myView.Minimize()"
61 myViewManager.Destroy(myView)
62 print "myViewManager.Destroy(myView)"
68 myFieldName = "VITESSE";
70 aMeshName ="LE VOLUME"
74 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
75 myResult = myVisu.ImportFile(medFile)
79 myView = myViewManager.Create3DView();
81 print "myView.SetBackground(...)"
82 aColor = SALOMEDS.Color(0.0,0.3,1.0)
83 myView.SetBackground(aColor);
85 myView.SetTitle("The viewer will display ScalarMap")
86 print "myViewManager.Create3DView()"
88 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
90 myView.Display(aScalarMap);
91 print "myView.Display(aScalarMap)"
92 myView.SetFocalPoint([0,0,0]);
93 print "myView.SetFocalPoint(...)"
94 myView.SetParallelScale(2);
95 print "myView.SetParallelScale(...)"
98 aMax = aScalarMap.GetMax()
99 aMin = aScalarMap.GetMin()
100 aDelta = (aMax - aMin)/2.0
101 aNbColors = aScalarMap.GetNbColors()
103 for i in range(2,aNbColors) :
104 aScalarMap.SetNbColors(i)
105 aX = aMin + aDelta*i/aNbColors
106 aY = aMax - aDelta*i/aNbColors
107 aScalarMap.SetRange(aX,aY)
111 aScalarMap.SetRange(aMin,aMax)
113 print "myView.Update()"
115 print "myView.FitAll()"
118 #aWidth = myView.GetViewWidth()
119 #print "a View Width before = ", aWidth
120 #myView.SetViewWidth(aWidth/2)
121 #aWidth = myView.GetViewWidth()
122 #print "a View Width after = ", aWidth
125 myView = myViewManager.Create3DView();
126 myView.SetTitle("Here we will display CutPlanes")
130 print "myView.SetBackground(...)"
131 aColor = SALOMEDS.Color(0.0,0.7,0.0)
132 myView.SetBackground(aColor);
134 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
135 print "myVisu.CutPlanesOnField(...)"
137 myView.DisplayOnly(aCutPlanes);
138 print "myView.DisplayOnly(aCutPlanes)"
140 aPoint = myView.GetPointOfView();
141 aPoint[0] = aPoint[0] + 10;
142 myView.SetPointOfView(aPoint);
143 print "myView.SetPointOfView(...)"
144 myView.ScaleView(VISU.View3D.YAxis,10.0);
145 myView.ScaleView(VISU.View3D.XAxis,3.0);
146 print "myView.ScaleView(...)"
151 aNbPlanes = aCutPlanes.GetNbPlanes()
153 aXAngle = aCutPlanes.GetRotateX()
154 aYAngle = aCutPlanes.GetRotateY()
155 anOrientation = aCutPlanes.GetOrientationType()
156 for i in range(aNbPlanes,1,-1) :
157 aCutPlanes.SetNbPlanes(i)
158 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
159 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
160 aCutPlanes.SetOrientation(anOrientation,aX,aY)
165 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
166 for i in range(1,aNbPlanes) :
167 aCutPlanes.SetNbPlanes(i)
171 myView.SaveViewParams('AAA')
172 print "myView.SaveViewParams('AAA')"
175 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
176 myView.RemoveScale();
178 print "myView.Update()"
180 print "myView.FitAll()"
185 myView = myViewManager.Create3DView();
186 print "myViewManager.Create3DView()"
188 myView.SetTitle("IsoSurface's viewer")
190 print "myView.SetBackground(...)"
191 aColor = SALOMEDS.Color(1.0,0.7,0.0)
192 myView.SetBackground(aColor);
195 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
197 myView.DisplayOnly(aIsoSurfaces);
199 print "myView.DisplayOnly(aCutPlanes)"
202 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
204 for i in range(2,aNbSurfaces) :
205 aIsoSurfaces.SetNbSurfaces(i)
209 aIsoSurfaces.SetNbSurfaces(10)
211 print "myView.Update()"
213 print "myView.FitAll()"
218 myView = myViewManager.Create3DView();
219 myView.SetTitle("The viewer for CutLines")
220 print "myViewManager.Create3DView()"
223 print "myView.SetBackground(...)"
224 aColor = SALOMEDS.Color(0.7,0.7,0.7)
225 myView.SetBackground(aColor);
228 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
229 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
230 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
232 myView.DisplayOnly(aCutLines);
234 print "myView.DisplayOnly(aCutLines)"
237 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
238 aTable = myVisu.CreateTable( aSObj.GetID() )
239 print "myVisu.CreateTable(...)"
241 aTableView = myViewManager.CreateTableView(aTable)
242 aTableView.SetTitle('Changed Title')
244 aContainer = myVisu.CreateContainer()
245 print "myVisu.CreateContainer(...)"
247 aNbCurve = aTable.GetNbRows() - 1
248 for i in range(2,aNbCurve):
249 aCurve = myVisu.CreateCurve( aTable, 1, i )
251 aContainer.AddCurve(aCurve)
254 myView = myViewManager.CreateXYPlot();
255 myView.SetTitle("The viewer for Curves from CutLines")
256 print "myViewManager.CreateXYPlot()"
259 myView.Display(aContainer)
263 myView = myViewManager.Create3DView();
264 myView.SetTitle("The viewer for CutSegment")
265 print "myViewManager.Create3DView()"
268 print "myView.SetBackground(...)"
269 aColor = SALOMEDS.Color(0.0,0.7,0.3)
270 myView.SetBackground(aColor);
273 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
274 aCutSegment.SetPoint1(0.0,0.0,0.0)
275 aCutSegment.SetPoint2(0.4,0.05,1.0)
277 myView.DisplayOnly(aCutSegment);
279 print "myView.DisplayOnly(aCutSegment)"
282 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
283 aTable = myVisu.CreateTable( aSObj.GetID() )
284 print "myVisu.CreateTable(...)"
286 aTableView = myViewManager.CreateTableView(aTable)
287 aTableView.SetTitle('Changed Title')
289 aContainer = myVisu.CreateContainer()
290 print "myVisu.CreateContainer(...)"
292 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
294 aContainer.AddCurve(aCurve)
297 myView = myViewManager.CreateXYPlot();
298 myView.SetTitle("The viewer for Curve from CutSegment")
299 print "myViewManager.CreateXYPlot()"
302 myView.Display(aContainer)
306 myView = myViewManager.Create3DView();
307 myView.SetTitle("The viewer for Animation")
308 print "myViewManager.Create3DView()"
311 medFile = "TimeStamps.med"
312 myFieldName = "vitesse";
314 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
315 myResult = myVisu.ImportFile(medFile)
317 anAnim = myVisu.CreateAnimation(myView);
318 aSObj = myStudy.FindObjectIOR(myResult.GetID())
319 aSObj = aSObj.FindSubObject(1)[1]
320 aSObj = aSObj.FindSubObject(3)[1]
321 aSObj = aSObj.FindSubObject(2)[1]
322 anAnim.addField(aSObj)
323 anAnim.setPresentationType(0,VISU.TISOSURFACES)
324 print "Generate presentations"
325 anAnim.generatePresentations(0)
326 print "Generate frames"
327 anAnim.generateFrames()
328 print "Start Animation"
330 #anAnim.setCycling(1)
331 anAnim.startAnimation()
335 if not anAnim.isRunning():
336 anAnim.stopAnimation()