9 from libvtkPVServerCommonPython import *
10 from libvtkPVServerManagerPython import *
12 from vtkPVServerCommonPython import *
13 from vtkPVServerManagerPython import *
17 if a.startswith("vtk") and (len(a) > 3):
18 classeslistsm.append(a)
20 from paraview.vtk import *
24 if (a not in l1) and a.startswith("vtk"):
25 classeslistvtk.append(a)
27 pvhome = os.environ.get('PVHOME')
28 pvversion = os.environ.get('PVVERSION')
29 wrap_dir="include/paraview-"+pvversion
32 pv_classes_new=classeslistsm
33 while len(pv_classes_new):
34 pv_classes_cur=pv_classes_new
36 for c in pv_classes_cur:
37 filename=pvhome+"/"+wrap_dir+"/"+c+".h"
38 if os.path.isfile(filename):
42 if re.match('\s*/',line) is None:
43 if re.match('\s*public\s*:',line):
46 m=re.match('\s*class\s+(vtk\w+)\s*;',line)
49 if cn not in dic.keys() and cn not in pv_classes_new and cn in classeslistvtk:
50 pv_classes_new.append(cn)
53 m=re.match('\s*struct\s+(vtk\w+)\s*;',line)
56 if cn not in dic.keys() and cn not in pv_classes_new and cn in classeslistvtk:
57 pv_classes_new.append(cn)
60 m=re.match('\s*#include\s+"(vtk\w+)\.h"',line)
63 if cn not in dic.keys() and cn not in pv_classes_new and cn in classeslistvtk:
64 pv_classes_new.append(cn)
67 cm=re.findall('public\s+(vtk\w+)',line)
71 if cn not in dic.keys() and cn not in pv_classes_new:
72 pv_classes_new.append(cn)
83 if len(dic[c][1]) and dic[c][0] == 0:
84 ret+=collect_dic(dic[c][1])
90 pv_classes_sort=collect_dic(dic.keys())
93 awsk='WRAP_SK_FILES = '
94 awhh='WRAP_IDL_I_HH = '
95 awcc='WRAP_IDL_I_CC = '
97 fprefix='PARAVIS_Gen_'
103 idl_am=open('idl/wrap.am','w')
104 idl_i_am=open('src/PVGUI/wrap.am','w')
106 wrap_h=open('idl/vtkWrapIDL.h','w')
107 wrap_h.write('const char* wrapped_classes[] = {\n')
109 wrap_cxx=open('src/PVGUI/PARAVIS_CreateClass.cxx','w')
110 wrap_cxx.write('#include <iostream>\n')
111 wrap_cxx.write('#include <QString>\n')
112 wrap_cxx.write('#include "PARAVIS_Gen_i.hh"\n')
114 for c in pv_classes_sort:
124 idl_am.write(widl+': vtkWrapIDL')
126 idl_am.write(' '+fprefix+cc+fidl)
128 idl_am.write('\t@./vtkWrapIDL '+pvhome+'/'+wrap_dir+'/'+c+'.h $(top_srcdir)/idl/hints 0 $@\n')
132 idl_i_am.write(whh+': vtkWrapIDL_HH')
134 idl_i_am.write(' '+fprefix+cc+fhh)
136 idl_i_am.write('\t@./vtkWrapIDL_HH '+pvhome+'/'+wrap_dir+'/'+c+'.h $(top_srcdir)/idl/hints 0 $@\n')
139 idl_i_am.write(wcc+': vtkWrapIDL_CC $(WRAP_IDL_I_HH)')
141 idl_i_am.write(' '+fprefix+cc+fcc)
143 idl_i_am.write('\t@./vtkWrapIDL_CC '+pvhome+'/'+wrap_dir+'/'+c+'.h $(top_srcdir)/idl/hints 0 $@\n')
146 wrap_h.write('"'+c+'",\n')
148 wrap_cxx.write('#include "'+fprefix+c+fhh+'"\n')
150 idl_am.write(awidl+'\n')
152 idl_am.write(awsk+'\n')
154 idl_i_am.write(awhh+'\n')
156 idl_i_am.write(awcc+'\n')
158 idl_i_am.write('BUILT_SOURCES = $(WRAP_IDL_I_HH) $(WRAP_IDL_I_CC)\n')
160 wrap_h.write('""\n};\n')
163 wrap_cxx.write('PARAVIS::PARAVIS_Base_i* CreateInstance(::vtkObjectBase* Inst, const QString& theClassName)\n')
164 wrap_cxx.write('{\n')
165 for i in range(len(pv_classes_sort)-1,-1,-1):
167 wrap_cxx.write(' if(theClassName == "'+c+'" || (Inst != NULL && Inst->IsA("'+c+'")))\n')
168 wrap_cxx.write(' return new PARAVIS::'+c+'_i();\n')
170 wrap_cxx.write(' cerr << "The class " << theClassName.toStdString() << " is not created!" << endl;\n')
171 wrap_cxx.write(' return new PARAVIS::PARAVIS_Base_i();\n')
172 wrap_cxx.write('}\n')