1 # VISU VISU_SWIG : binding of C++ implementation and Python
3 # Copyright (C) 2003 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 # File : visu_view3d.py
30 from visu_gui import *
34 #mySession = batchmode_visu.mySession
36 myViewManager = myVisu.GetViewManager();
38 myView = myViewManager.Create3DView();
39 myView.SetTitle("The window will be soon destroyed!")
40 print "myViewManager.Create3DView()"
44 print "myView.Maximize()"
48 print "myView.Restore()"
52 print "myView.Minimize()"
55 myViewManager.Destroy(myView)
56 print "myViewManager.Destroy(myView)"
62 myFieldName = "VITESSE";
64 aMeshName ="LE VOLUME"
68 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
69 myResult = myVisu.ImportFile(medFile)
73 myView = myViewManager.Create3DView();
75 print "myView.SetBackground(...)"
76 aColor = SALOMEDS.Color(0.0,0.3,1.0)
77 myView.SetBackground(aColor);
79 myView.SetTitle("The viewer will display ScalarMap")
80 print "myViewManager.Create3DView()"
82 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
84 myView.Display(aScalarMap);
85 print "myView.Display(aScalarMap)"
86 myView.SetFocalPoint([0,0,0]);
87 print "myView.SetFocalPoint(...)"
88 myView.SetParallelScale(2);
89 print "myView.SetParallelScale(...)"
92 aMax = aScalarMap.GetMax()
93 aMin = aScalarMap.GetMin()
94 aDelta = (aMax - aMin)/2.0
95 aNbColors = aScalarMap.GetNbColors()
97 for i in range(2,aNbColors) :
98 aScalarMap.SetNbColors(i)
99 aX = aMin + aDelta*i/aNbColors
100 aY = aMax - aDelta*i/aNbColors
101 aScalarMap.SetRange(aX,aY)
105 aScalarMap.SetRange(aMin,aMax)
107 print "myView.Update()"
109 print "myView.FitAll()"
112 #aWidth = myView.GetViewWidth()
113 #print "a View Width before = ", aWidth
114 #myView.SetViewWidth(aWidth/2)
115 #aWidth = myView.GetViewWidth()
116 #print "a View Width after = ", aWidth
119 myView = myViewManager.Create3DView();
120 myView.SetTitle("Here we will display CutPlanes")
124 print "myView.SetBackground(...)"
125 aColor = SALOMEDS.Color(0.0,0.7,0.0)
126 myView.SetBackground(aColor);
128 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
129 print "myVisu.CutPlanesOnField(...)"
131 myView.DisplayOnly(aCutPlanes);
132 print "myView.DisplayOnly(aCutPlanes)"
134 aPoint = myView.GetPointOfView();
135 aPoint[0] = aPoint[0] + 10;
136 myView.SetPointOfView(aPoint);
137 print "myView.SetPointOfView(...)"
138 myView.ScaleView(VISU.View3D.YAxis,10.0);
139 myView.ScaleView(VISU.View3D.XAxis,3.0);
140 print "myView.ScaleView(...)"
145 aNbPlanes = aCutPlanes.GetNbPlanes()
147 aXAngle = aCutPlanes.GetRotateX()
148 aYAngle = aCutPlanes.GetRotateY()
149 anOrientation = aCutPlanes.GetOrientationType()
150 for i in range(aNbPlanes,1,-1) :
151 aCutPlanes.SetNbPlanes(i)
152 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
153 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
154 aCutPlanes.SetOrientation(anOrientation,aX,aY)
159 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
160 for i in range(1,aNbPlanes) :
161 aCutPlanes.SetNbPlanes(i)
165 myView.SaveViewParams('AAA')
166 print "myView.SaveViewParams('AAA')"
169 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
170 myView.RemoveScale();
172 print "myView.Update()"
174 print "myView.FitAll()"
179 myView = myViewManager.Create3DView();
180 print "myViewManager.Create3DView()"
182 myView.SetTitle("IsoSurface's viewer")
184 print "myView.SetBackground(...)"
185 aColor = SALOMEDS.Color(1.0,0.7,0.0)
186 myView.SetBackground(aColor);
189 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
191 myView.DisplayOnly(aIsoSurfaces);
193 print "myView.DisplayOnly(aCutPlanes)"
196 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
198 for i in range(2,aNbSurfaces) :
199 aIsoSurfaces.SetNbSurfaces(i)
203 aIsoSurfaces.SetNbSurfaces(10)
205 print "myView.Update()"
207 print "myView.FitAll()"
212 myView = myViewManager.Create3DView();
213 myView.SetTitle("The viewer for CutLines")
214 print "myViewManager.Create3DView()"
217 print "myView.SetBackground(...)"
218 aColor = SALOMEDS.Color(0.7,0.7,0.7)
219 myView.SetBackground(aColor);
222 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
223 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
224 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
226 myView.DisplayOnly(aCutLines);
228 print "myView.DisplayOnly(aCutLines)"
231 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
232 aTable = myVisu.CreateTable( aSObj.GetID() )
233 print "myVisu.CreateTable(...)"
235 aTableView = myViewManager.CreateTableView(aTable)
236 aTableView.SetTitle('Changed Title')
238 aContainer = myVisu.CreateContainer()
239 print "myVisu.CreateContainer(...)"
241 aNbCurve = aTable.GetNbRows() - 1
242 for i in range(2,aNbCurve):
243 aCurve = myVisu.CreateCurve( aTable, 1, i )
245 aContainer.AddCurve(aCurve)
248 myView = myViewManager.CreateXYPlot();
249 myView.SetTitle("The viewer for Curves from CutLines")
250 print "myViewManager.CreateXYPlot()"
253 myView.Display(aContainer)
257 myView = myViewManager.Create3DView();
258 myView.SetTitle("The viewer for Animation")
259 print "myViewManager.Create3DView()"
262 medFile = "TimeStamps.med"
263 myFieldName = "vitesse";
265 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
266 myResult = myVisu.ImportFile(medFile)
268 anAnim = myVisu.CreateAnimation(myView);
269 aSObj = myStudy.FindObjectIOR(myResult.GetID())
270 aSObj = aSObj.FindSubObject(1)[1]
271 aSObj = aSObj.FindSubObject(3)[1]
272 aSObj = aSObj.FindSubObject(2)[1]
273 anAnim.addField(aSObj)
274 anAnim.setPresentationType(0,VISU.TISOSURFACES)
275 print "Generate presentations"
276 anAnim.generatePresentations(0)
277 print "Generate frames"
278 anAnim.generateFrames()
279 print "Start Animation"
281 #anAnim.setCycling(1)
282 anAnim.startAnimation()
286 if not anAnim.isRunning():
287 anAnim.stopAnimation()