New wrappers merged into VTK

My enhanced Python wrappers have finally been merged into VTK! A few warnings and a compilation issue on AIX had to be fixed, but the merge was very smooth. The merge provides the following new features to VTK/Python:

  • Automatic conversion between python unicode and vtkUnicodeString.
  • Support for vtkVariant, vtkTimeStamp, and vtkArray.
  • Overloaded method resolution for based on C++ semantics.
  • Automated arg conversion via constructors based on C++ semantics.
  • Formatting of in-line documentation for python, including some doxygen tags.
  • Clean-up of the code, removal of all global variables from the code.

In addition, the following improvements have been added for all wrappers, including Java, Tcl, and the ParaView ClientServer:

  • A cleaned-up parser front end that understands much more C++ syntax.
  • Proper string support in all wrappers via vtkStdString.
  • Significant code clean-up (but not as much as for Python).

All of this is on top my earlier change to vtkParse that replaced all the hard-coded hexidecimal constants from the code and replaced them with clearly-named constants.

More information on the changes can be found on the VTK wiki. There are more wrapper improvements that I will be merging in the future. I have already written a vtkWrapHierarchy tool to improve type checking in the wrappers, which will finally eliminate the need for BTX/ETX markers in the header files. I've also added a page to the VTK wiki for all the enhancements that I have planned for VTK/Python, but I'm not sure how many enhancements I will have time to complete.