Dear Hans, your explanations are very helpful. Now it is obvious that I should not redeclare the opencv classes in boost.python after they have been wrapped with swig. But still I did not think about it in the right way.
You write: >Instead, you *may* define a manual converter to make your life easier, i.e. >let >boost::python wrap your functions and automatically call SWIGs wrap/unwrap >functions for the corresponding OpenCV classes. Do you have some example, how this can be achieved? Do I need to do some text processing or parsing of the swig output to find out which (un)wrap functions to call? I have never worked on the internals of swig, so that I wouldn't know where to find those (un)wrappers. Thanks Marco ________________________________ Von: Hans Meine <hans_me...@gmx.net> An: Development of Python/C++ integration <cplusplus-sig@python.org> Gesendet: Montag, den 19. Juli 2010, 10:55:49 Uhr Betreff: Re: [C++-sig] reuse C++ classes that have been wrapped with SWIG On Thursday 15 July 2010 13:35:55 Marco Selinger wrote: > There is a complete SWIG wrapper for the OpenCV > (http://opencv.willowgarage.com) project. > > I am developing a small image processing application that uses some of the > OpenCV classes. This application will be wrapped using Boost.Python. > How do I declare those classes in Boost.Python that have already been > wrapped with SWIG? For all these questions (involving SIP/SWIG/BPL/...), remember that they're all based on the common Python/C API. Thus, each of these wrapping libraries have means to convert from/to python, i.e. wrapping a C++ object pointer into a (PyObject *) and vice versa. One just needs to know how this is done with each of the above, and depending on the lifetime management. Additionally, you should *not* "declare those classes in Boost.Python" again, i.e. using class_<...>. (That would lead to incompatible wrappers.) Instead, you *may* define a manual converter to make your life easier, i.e. let boost::python wrap your functions and automatically call SWIGs wrap/unwrap functions for the corresponding OpenCV classes. (The alternative is to declare your functions with (PyObject *) pointers and manually call these SWIG functions, which is probably easier if you have just one or two functions to wrap.) HTH from an overview point, Hans _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig