Salome HOME
5d34cab18519637310f8ccdf67f626c7a0c7f68a
[tools/medcoupling.git] / doc / user / images / extractSlice3D.py
1 # -*- coding: utf-8 -*-
2
3 ###
4 ### This script is intended to be launched in a new SALOME study
5 ###
6
7 import os
8 import salome
9
10 salome.salome_init()
11
12 import iparameters
13 ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1), True)
14
15 #Set up visual properties:
16 ipar.setProperty("AP_ACTIVE_VIEW", "ParaView_0_0")
17 ipar.setProperty("AP_WORKSTACK_INFO", "0000000100000000000000020100000001000003b5000000040000000100000001000000080000001800500061007200610056006900650077005f0030005f00300000000102")
18 ipar.setProperty("AP_ACTIVE_MODULE", "ParaViS")
19 ipar.setProperty("AP_SAVEPOINT_NAME", "GUI state: 1")
20 #Set up lists:
21 # fill list AP_VIEWERS_LIST
22 ipar.append("AP_VIEWERS_LIST", "ParaView_1")
23 # fill list ParaView_1
24 ipar.append("ParaView_1", "ParaView scene:2 - viewer:1")
25 ipar.append("ParaView_1", "empty")
26 # fill list AP_MODULES_LIST
27 ipar.append("AP_MODULES_LIST", "ParaViS")
28
29 from MEDCoupling import *
30 from MEDLoader import WriteMesh, WriteFieldUsingAlreadyWrittenMesh
31
32 medfile1="mesh1.med"
33 medfile2="mesh2.med"
34
35 m4=MEDCouplingCMesh("box")
36 coo=DataArrayDouble(range(7))
37 m4.setCoords(coo[:5],coo[:5],coo)
38 m4=m4.buildUnstructured()
39 valsArr1=m4.computeCellCenterOfMass()
40 valsArr1.applyFunc(1,"sqrt(X*X+Y*Y+Z*Z)")
41 field4 = MEDCouplingFieldDouble(ON_CELLS)
42 field4.setArray(valsArr1)
43 field4.setMesh(m4)
44 field4.setName("field4")
45
46 WriteMesh(medfile1,m4,True)
47 WriteFieldUsingAlreadyWrittenMesh(medfile1,field4)
48
49 origin=[0,0,2]
50 normvec=[-4,-4,6]
51 slice4=field4.extractSlice3D(origin,normvec,1e-10)
52 slice4.getMesh().translate([6,0,0])
53
54 WriteMesh(medfile2,slice4.getMesh(),True)
55 WriteFieldUsingAlreadyWrittenMesh(medfile2,slice4)
56
57
58
59 ###
60 ### PARAVIS component
61 ###
62
63 import pvsimple
64 pvsimple.ShowParaviewView()
65 #### import the simple module from the paraview
66 from pvsimple import *
67 #### disable automatic camera reset on 'Show'
68 pvsimple._DisableFirstRenderCameraReset()
69
70 # create a new 'MED Reader'
71 mesh1med = MEDReader(FileName=medfile1)
72
73 # Properties modified on mesh1med
74 mesh1med.AllArrays = ['TS0/box/ComSup0/box@@][@@P0', 'TS0/box/ComSup0/field4@@][@@P0']
75
76 # get active view
77 renderView1 = GetActiveViewOrCreate('RenderView')
78 # uncomment following to set a specific view size
79 # renderView1.ViewSize = [935, 531]
80
81 # show data in view
82 mesh1medDisplay = Show(mesh1med, renderView1)
83
84 # trace defaults for the display properties.
85 mesh1medDisplay.Representation = 'Surface'
86
87 # reset view to fit data
88 renderView1.ResetCamera()
89
90 # update the view to ensure updated data information
91 renderView1.Update()
92
93 # set scalar coloring
94 ColorBy(mesh1medDisplay, ('CELLS', 'field4', 'Magnitude'))
95
96 # rescale color and/or opacity maps used to include current data range
97 mesh1medDisplay.RescaleTransferFunctionToDataRange(True, False)
98
99 # show color bar/color legend
100 mesh1medDisplay.SetScalarBarVisibility(renderView1, True)
101
102 # get color transfer function/color map for 'field4'
103 field4LUT = GetColorTransferFunction('field4')
104
105 # create a new 'MED Reader'
106 mesh2med = MEDReader(FileName=medfile2)
107
108 # Properties modified on mesh2med
109 mesh2med.AllArrays = ['TS0/Slice3D/ComSup0/Slice3D@@][@@P0', 'TS0/Slice3D/ComSup0/field4@@][@@P0']
110
111 # show data in view
112 mesh2medDisplay = Show(mesh2med, renderView1)
113
114 # trace defaults for the display properties.
115 mesh2medDisplay.Representation = 'Surface'
116
117 # update the view to ensure updated data information
118 renderView1.Update()
119
120 # set scalar coloring
121 ColorBy(mesh2medDisplay, ('CELLS', 'field4', 'Magnitude'))
122
123 # rescale color and/or opacity maps used to include current data range
124 mesh2medDisplay.RescaleTransferFunctionToDataRange(True, False)
125
126 # show color bar/color legend
127 mesh2medDisplay.SetScalarBarVisibility(renderView1, True)
128
129 #### saving camera placements for all active views
130
131 # current camera placement for renderView1
132 renderView1.CameraPosition = [13.435468781360525, -42.4334252478128, 12.397177265244004]
133 renderView1.CameraFocalPoint = [11.468912675367923, -26.954985015354552, 9.183145534397903]
134 renderView1.CameraViewUp = [-0.0347897943004739, 0.19894659037092524, 0.9793926303542998]
135 renderView1.CameraParallelScale = 4.123105625617661
136
137
138 if salome.sg.hasDesktop():
139   salome.sg.updateObjBrowser(True)
140   iparameters.getSession().restoreVisualState(1)