1
2 """ Paraview interaction
3
4 Classes that help to interact with a Python-enabled paraFoam/paraview
5 """
6
7 hasSimpleModule=True
8 try:
9 from paraview import simple
10 except ImportError:
11 hasSimpleModule=False
12
13
14
15 from paraview import servermanager
16
17 from PyFoam.Error import warning
18 from PyFoam.RunDictionary.SolutionDirectory import SolutionDirectory
19
20 from math import sqrt
21 from os import path
22
23 from SourceBase import SourceBase
24
25 proxyManager=servermanager.ProxyManager()
26
32
34 """ Get the paraFoam reader.
35 Currently only works if there is only one reader"""
36
37 result=None
38
39 src=proxyManager.GetProxiesInGroup("sources")
40
41 try:
42
43 for s in src:
44 if type(src[s])==servermanager.sources.PV3FoamReader:
45 if result==None:
46 result=src[s]
47 else:
48 warning("Found a second paraFoam-reader:",s)
49 except AttributeError:
50
51 for s in src:
52 if type(src[s])==servermanager.sources.OpenFOAMReader:
53 if result==None:
54 result=src[s]
55 else:
56 warning("Found a second paraFoam-reader:",s)
57
58 if result==None:
59 warning("No paraFoam-reader found")
60
61 return result
62
66
68 """ Get the render view.
69 Currently just takes the first view"""
70
71 result=None
72
73 src=proxyManager.GetProxiesInGroup("views")
74
75 for s in src:
76 if result==None:
77 result=src[s]
78 else:
79 warning("Found a second render view:",s)
80
81 if result==None:
82 warning("No render view found")
83
84 return result
85
87 """Return the size of the object covered by the paraFoam-Reader"""
88 return readerObject().getBounds()
89
91 """Return the center of the object covered by the paraFoam-Reader"""
92 return readerObject().getCenter()
93
97
99 """Time that is currently displayed"""
100 try:
101
102 return renderView().ViewTime.GetData()
103 except AttributeError:
104 return renderView().ViewTime
105
107 """The directory in which the case is stored"""
108 try:
109
110 fName=path.dirname(paraFoamReader().FileName.GetData())
111 except AttributeError:
112 fName=path.dirname(paraFoamReader().FileName)
113
114 return SolutionDirectory(
115 fName,
116 archive=None,
117 paraviewLink=False)
118
121
125