Salome HOME
initial project version
[tools/solverlab.git] / CDMATH / tests / swig / BoySurface / BoysSurfaceVTK.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3    
4 import vtk
5 import VTKnewReader#To generate med file
6 #import paraview.simple as pvs#to obtain a binary vtu file in append mode
7
8 # ------------------------------------------------------------
9 # Create Boy's surface
10 # ------------------------------------------------------------
11 boy = vtk.vtkParametricBoy()
12 boySource = vtk.vtkParametricFunctionSource()
13 boySource.SetParametricFunction(boy)
14 boySource.SetScalarModeToModulus()
15
16 boyMapper = vtk.vtkPolyDataMapper()
17 boyMapper.SetInputConnection(boySource.GetOutputPort())
18 boyMapper.SetScalarRange(0, 2)
19 boyActor = vtk.vtkActor()
20 boyActor.SetMapper(boyMapper)
21 boyActor.SetPosition(8, -4, 0)
22 boyActor.SetScale(1.5, 1.5, 1.5)
23
24 boyTextMapper = vtk.vtkTextMapper()
25 boyTextMapper.SetInput("Boy")
26 boyTextMapper.GetTextProperty().SetJustificationToCentered()
27 boyTextMapper.GetTextProperty().SetVerticalJustificationToCentered()
28 boyTextMapper.GetTextProperty().SetColor(1, 0, 0)
29 boyTextMapper.GetTextProperty().SetFontSize(14)
30 boyTextActor = vtk.vtkActor2D()
31 boyTextActor.SetMapper(boyTextMapper)
32 boyTextActor.GetPositionCoordinate().SetCoordinateSystemToWorld()
33 boyTextActor.GetPositionCoordinate().SetValue(8, -6.5, 0)
34
35 # ------------------------------------------------------------
36 # Create the RenderWindow, Renderer and both Actors
37 # ------------------------------------------------------------
38 ren = vtk.vtkRenderer()
39 ren.AddViewProp(boyActor)
40 ren.AddViewProp(boyTextActor)
41
42 ren.SetBackground(0.7, 0.8, 1)
43 ren.ResetCamera()
44 ren.GetActiveCamera().Zoom(1.3)
45
46 renWin = vtk.vtkRenderWindow()
47 renWin.AddRenderer(ren)
48 renWin.SetSize(500, 500)
49
50 iren = vtk.vtkRenderWindowInteractor()
51 iren.SetRenderWindow(renWin) 
52
53 iren.Initialize()
54 renWin.Render()
55
56 image = vtk.vtkWindowToImageFilter()
57 image.ReadFrontBufferOff()
58 image.SetInput(renWin)
59 image.Update()
60
61 # ------------------------------------------------------------
62 # Save picture
63 # ------------------------------------------------------------
64
65 writer = vtk.vtkPNGWriter()
66 writer.SetFileName("BoySurface"+".png")
67 writer.SetInputConnection(image.GetOutputPort())
68 writer.Write()
69
70 # ------------------------------------------------------------
71 # Save polydata shape
72 # ------------------------------------------------------------
73
74 writer = vtk.vtkXMLPolyDataWriter()
75 writer.SetInputData(boySource.GetOutput())
76 writer.SetFileName("BoySurface"+".vtp")
77 writer.Write()
78
79 # ------------------------------------------------------------
80 # Save unstructured grid
81 # ------------------------------------------------------------
82
83 appendFilter=vtk.vtkAppendFilter()
84 appendFilter.AddInputData(boySource.GetOutput())
85 appendFilter.Update()
86
87 unstructuredGrid=vtk.vtkUnstructuredGrid()#appendFilter.GetOutput()#
88 unstructuredGrid.DeepCopy(appendFilter.GetOutput())
89
90 writer=vtk.vtkXMLUnstructuredGridWriter()
91 writer.SetFileName("BoySurface"+".vtu")
92 writer.SetInputData(unstructuredGrid)
93 #writer.SetDataModeToBinary()
94 #writer.SetDataModeToAppended()
95 writer.EncodeAppendedDataOn()
96 writer.Write()
97
98 #Generate binary vtu file in append mode
99 #boySurfaceBisvtu = pvs.XMLUnstructuredGridReader(FileName=['./BoySurface.vtu'])
100 #pvs.SaveData('./BoySurface2.vtu', proxy=boySurfaceBisvtu, DataMode='Binary',EncodeAppendedData=1)
101
102 #Generate med file
103 vtu = VTKnewReader.VTURawReader('./BoySurface.vtu')
104 med = vtu.loadInMEDFileDS()
105 med.write("./BoySurface.med", 2)