1 # Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 # Show some results presentations in different 3D and 2D viewers
21 # with different options (view parameters and display modes).
22 # Uses MED files fra.med and TimeStamps.med from ${DATA_DIR}/MedFiles directory.
24 # Pay attention to a viewer title to know its purpose.
26 # This script is equivalent to script VISU_SWIG/visu_view3d.py
33 from visu_gui import *
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)"
62 myFieldName = "VITESSE";
64 aMeshName ="LE VOLUME"
68 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
69 myResult = myVisu.ImportFile(medFile)
71 myView = myViewManager.Create3DView();
73 print "myView.SetBackground(...)"
74 aColor = SALOMEDS.Color(0.0,0.3,1.0)
75 myView.SetBackground(aColor);
77 myView.SetTitle("The viewer will display ScalarMap")
78 print "myViewManager.Create3DView()"
80 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
82 myView.Display(aScalarMap);
83 print "myView.Display(aScalarMap)"
84 myView.SetFocalPoint([0,0,0]);
85 print "myView.SetFocalPoint(...)"
86 myView.SetParallelScale(2);
87 print "myView.SetParallelScale(...)"
90 aMax = aScalarMap.GetMax()
91 aMin = aScalarMap.GetMin()
92 aDelta = (aMax - aMin)/2.0
93 aNbColors = aScalarMap.GetNbColors()
95 for i in range(2,aNbColors) :
96 aScalarMap.SetNbColors(i)
97 aX = aMin + aDelta*i/aNbColors
98 aY = aMax - aDelta*i/aNbColors
99 aScalarMap.SetRange(aX,aY)
103 aScalarMap.SetRange(aMin,aMax)
105 print "myView.Update()"
107 print "myView.FitAll()"
111 myView = myViewManager.Create3DView();
112 myView.SetTitle("Here we will display CutPlanes")
114 print "myView.SetBackground(...)"
115 aColor = SALOMEDS.Color(0.0,0.7,0.0)
116 myView.SetBackground(aColor);
118 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
119 print "myVisu.CutPlanesOnField(...)"
121 myView.DisplayOnly(aCutPlanes);
122 print "myView.DisplayOnly(aCutPlanes)"
124 aPoint = myView.GetPointOfView();
125 aPoint[0] = aPoint[0] + 10;
126 myView.SetPointOfView(aPoint);
127 print "myView.SetPointOfView(...)"
128 myView.ScaleView(VISU.View3D.YAxis,10.0);
129 myView.ScaleView(VISU.View3D.XAxis,3.0);
130 print "myView.ScaleView(...)"
135 aNbPlanes = aCutPlanes.GetNbPlanes()
137 aXAngle = aCutPlanes.GetRotateX()
138 aYAngle = aCutPlanes.GetRotateY()
139 anOrientation = aCutPlanes.GetOrientationType()
140 for i in range(aNbPlanes,1,-1) :
141 aCutPlanes.SetNbPlanes(i)
142 aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
143 aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
144 aCutPlanes.SetOrientation(anOrientation,aX,aY)
149 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
150 for i in range(1,aNbPlanes) :
151 aCutPlanes.SetNbPlanes(i)
155 myView.SaveViewParams('AAA')
156 print "myView.SaveViewParams('AAA')"
159 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
160 myView.RemoveScale();
162 print "myView.Update()"
164 print "myView.FitAll()"
168 myView = myViewManager.Create3DView();
169 print "myViewManager.Create3DView()"
171 myView.SetTitle("IsoSurface's viewer")
173 print "myView.SetBackground(...)"
174 aColor = SALOMEDS.Color(1.0,0.7,0.0)
175 myView.SetBackground(aColor);
178 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
180 myView.DisplayOnly(aIsoSurfaces);
182 print "myView.DisplayOnly(aCutPlanes)"
185 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
187 for i in range(2,aNbSurfaces) :
188 aIsoSurfaces.SetNbSurfaces(i)
192 aIsoSurfaces.SetNbSurfaces(10)
194 print "myView.Update()"
196 print "myView.FitAll()"
200 myView = myViewManager.Create3DView();
201 myView.SetTitle("The viewer for CutLines")
202 print "myViewManager.Create3DView()"
205 print "myView.SetBackground(...)"
206 aColor = SALOMEDS.Color(0.7,0.7,0.7)
207 myView.SetBackground(aColor);
210 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
211 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
212 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
214 myView.DisplayOnly(aCutLines);
216 print "myView.DisplayOnly(aCutLines)"
219 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
220 aTable = myVisu.CreateTable( aSObj.GetID() )
221 print "myVisu.CreateTable(...)"
223 aTableView = myViewManager.CreateTableView(aTable)
224 aTableView.SetTitle('Changed Title')
226 aContainer = myVisu.CreateContainer()
227 print "myVisu.CreateContainer(...)"
229 aNbCurve = aTable.GetNbRows() - 1
230 for i in range(2,aNbCurve):
231 aCurve = myVisu.CreateCurve( aTable, 1, i )
233 aContainer.AddCurve(aCurve)
236 myView = myViewManager.CreateXYPlot();
237 myView.SetTitle("The viewer for Curves from CutLines")
238 print "myViewManager.CreateXYPlot()"
241 myView.Display(aContainer)
244 myView = myViewManager.Create3DView();
245 myView.SetTitle("The viewer for Animation")
246 print "myViewManager.Create3DView()"
249 medFile = "TimeStamps.med"
250 myFieldName = "vitesse";
252 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
253 myResult = myVisu.ImportFile(medFile)
255 anAnim = myVisu.CreateAnimation(myView);
256 aSObj = myStudy.FindObjectIOR(myResult.GetID())
257 aSObj = aSObj.FindSubObject(1)[1]
258 aSObj = aSObj.FindSubObject(3)[1]
259 aSObj = aSObj.FindSubObject(2)[1]
260 anAnim.addField(aSObj)
261 anAnim.setPresentationType(0,VISU.TISOSURFACE)
262 print "Generate presentations"
263 anAnim.generatePresentations(0)
264 print "Generate frames"
265 anAnim.generateFrames()
266 print "Start Animation"
268 anAnim.startAnimation()
272 if not anAnim.isRunning():
273 anAnim.stopAnimation()