1 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 # This library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License.
11 # This library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Lesser General Public License for more details.
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this library; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 # VISU VISU_SWIG : binding of C++ implementation and Python
23 # File : visu_view3d.py
31 from visu_gui import *
35 #mySession = batchmode_visu.mySession
37 myViewManager = myVisu.GetViewManager();
39 myView = myViewManager.Create3DView();
40 myView.SetTitle("The window will be soon destroyed!")
41 print "myViewManager.Create3DView()"
45 print "myView.Maximize()"
49 print "myView.Restore()"
53 print "myView.Minimize()"
56 myViewManager.Destroy(myView)
57 print "myViewManager.Destroy(myView)"
63 myFieldName = "VITESSE";
65 aMeshName ="LE VOLUME"
69 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
70 myResult = myVisu.ImportFile(medFile)
74 myView = myViewManager.Create3DView();
76 print "myView.SetBackground(...)"
77 aColor = SALOMEDS.Color(0.0,0.3,1.0)
78 myView.SetBackground(aColor);
80 myView.SetTitle("The viewer will display ScalarMap")
81 print "myViewManager.Create3DView()"
83 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
85 myView.Display(aScalarMap);
86 print "myView.Display(aScalarMap)"
87 myView.SetFocalPoint([0,0,0]);
88 print "myView.SetFocalPoint(...)"
89 myView.SetParallelScale(2);
90 print "myView.SetParallelScale(...)"
93 aMax = aScalarMap.GetMax()
94 aMin = aScalarMap.GetMin()
95 aDelta = (aMax - aMin)/2.0
96 aNbColors = aScalarMap.GetNbColors()
98 for i in range(2,aNbColors) :
99 aScalarMap.SetNbColors(i)
100 aX = aMin + aDelta*i/aNbColors
101 aY = aMax - aDelta*i/aNbColors
102 aScalarMap.SetRange(aX,aY)
106 aScalarMap.SetRange(aMin,aMax)
108 print "myView.Update()"
110 print "myView.FitAll()"
113 #aWidth = myView.GetViewWidth()
114 #print "a View Width before = ", aWidth
115 #myView.SetViewWidth(aWidth/2)
116 #aWidth = myView.GetViewWidth()
117 #print "a View Width after = ", aWidth
120 myView = myViewManager.Create3DView();
121 myView.SetTitle("Here we will display CutPlanes")
125 print "myView.SetBackground(...)"
126 aColor = SALOMEDS.Color(0.0,0.7,0.0)
127 myView.SetBackground(aColor);
129 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
130 print "myVisu.CutPlanesOnField(...)"
132 myView.DisplayOnly(aCutPlanes);
133 print "myView.DisplayOnly(aCutPlanes)"
135 aPoint = myView.GetPointOfView();
136 aPoint[0] = aPoint[0] + 10;
137 myView.SetPointOfView(aPoint);
138 print "myView.SetPointOfView(...)"
139 myView.ScaleView(VISU.View3D.YAxis,10.0);
140 myView.ScaleView(VISU.View3D.XAxis,3.0);
141 print "myView.ScaleView(...)"
146 aNbPlanes = aCutPlanes.GetNbPlanes()
148 aXAngle = aCutPlanes.GetRotateX()
149 aYAngle = aCutPlanes.GetRotateY()
150 anOrientation = aCutPlanes.GetOrientationType()
151 for i in range(aNbPlanes,1,-1) :
152 aCutPlanes.SetNbPlanes(i)
153 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
154 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
155 aCutPlanes.SetOrientation(anOrientation,aX,aY)
160 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
161 for i in range(1,aNbPlanes) :
162 aCutPlanes.SetNbPlanes(i)
166 myView.SaveViewParams('AAA')
167 print "myView.SaveViewParams('AAA')"
170 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
171 myView.RemoveScale();
173 print "myView.Update()"
175 print "myView.FitAll()"
180 myView = myViewManager.Create3DView();
181 print "myViewManager.Create3DView()"
183 myView.SetTitle("IsoSurface's viewer")
185 print "myView.SetBackground(...)"
186 aColor = SALOMEDS.Color(1.0,0.7,0.0)
187 myView.SetBackground(aColor);
190 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
192 myView.DisplayOnly(aIsoSurfaces);
194 print "myView.DisplayOnly(aCutPlanes)"
197 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
199 for i in range(2,aNbSurfaces) :
200 aIsoSurfaces.SetNbSurfaces(i)
204 aIsoSurfaces.SetNbSurfaces(10)
206 print "myView.Update()"
208 print "myView.FitAll()"
213 myView = myViewManager.Create3DView();
214 myView.SetTitle("The viewer for CutLines")
215 print "myViewManager.Create3DView()"
218 print "myView.SetBackground(...)"
219 aColor = SALOMEDS.Color(0.7,0.7,0.7)
220 myView.SetBackground(aColor);
223 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
224 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
225 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
227 myView.DisplayOnly(aCutLines);
229 print "myView.DisplayOnly(aCutLines)"
232 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
233 aTable = myVisu.CreateTable( aSObj.GetID() )
234 print "myVisu.CreateTable(...)"
236 aTableView = myViewManager.CreateTableView(aTable)
237 aTableView.SetTitle('Changed Title')
239 aContainer = myVisu.CreateContainer()
240 print "myVisu.CreateContainer(...)"
242 aNbCurve = aTable.GetNbRows() - 1
243 for i in range(2,aNbCurve):
244 aCurve = myVisu.CreateCurve( aTable, 1, i )
246 aContainer.AddCurve(aCurve)
249 myView = myViewManager.CreateXYPlot();
250 myView.SetTitle("The viewer for Curves from CutLines")
251 print "myViewManager.CreateXYPlot()"
254 myView.Display(aContainer)
258 myView = myViewManager.Create3DView();
259 myView.SetTitle("The viewer for CutSegment")
260 print "myViewManager.Create3DView()"
263 print "myView.SetBackground(...)"
264 aColor = SALOMEDS.Color(0.0,0.7,0.3)
265 myView.SetBackground(aColor);
268 aCutSegment = myVisu.CutSegmentOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
269 aCutSegment.SetPoint1(0.0,0.0,0.0)
270 aCutSegment.SetPoint2(0.4,0.05,1.0)
272 myView.DisplayOnly(aCutSegment);
274 print "myView.DisplayOnly(aCutSegment)"
277 aSObj = myStudy.FindObjectIOR(aCutSegment.GetID())
278 aTable = myVisu.CreateTable( aSObj.GetID() )
279 print "myVisu.CreateTable(...)"
281 aTableView = myViewManager.CreateTableView(aTable)
282 aTableView.SetTitle('Changed Title')
284 aContainer = myVisu.CreateContainer()
285 print "myVisu.CreateContainer(...)"
287 aCurve = myVisu.CreateCurve( aTable, 1, 2 )
289 aContainer.AddCurve(aCurve)
292 myView = myViewManager.CreateXYPlot();
293 myView.SetTitle("The viewer for Curve from CutSegment")
294 print "myViewManager.CreateXYPlot()"
297 myView.Display(aContainer)
301 myView = myViewManager.Create3DView();
302 myView.SetTitle("The viewer for Animation")
303 print "myViewManager.Create3DView()"
306 medFile = "TimeStamps.med"
307 myFieldName = "vitesse";
309 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
310 myResult = myVisu.ImportFile(medFile)
312 anAnim = myVisu.CreateAnimation(myView);
313 aSObj = myStudy.FindObjectIOR(myResult.GetID())
314 aSObj = aSObj.FindSubObject(1)[1]
315 aSObj = aSObj.FindSubObject(3)[1]
316 aSObj = aSObj.FindSubObject(2)[1]
317 anAnim.addField(aSObj)
318 anAnim.setPresentationType(0,VISU.TISOSURFACES)
319 print "Generate presentations"
320 anAnim.generatePresentations(0)
321 print "Generate frames"
322 anAnim.generateFrames()
323 print "Start Animation"
325 #anAnim.setCycling(1)
326 anAnim.startAnimation()
330 if not anAnim.isRunning():
331 anAnim.stopAnimation()