Kay,
I read all your posts, but can not help you, as I am not a
programmer at all. From the outside, it looks like you are doing good
work, and creating a useful interface. I say, keep up the good work!
Thanks,
Roger Goodman
On 1/16/2011 12:32 PM, kfj wrote:
Hi all!
Continuing my work on interfacing hugin with Python, I have reached
another of my goals: I have figured out how to use plugins written in
Python from programs that use hugin's type corpus - or at least the
subset that is wrapped in the hugin scripting interface. This means
that there is now a possibility to call arbitrary Python code with
objects like HuginBase::Panorama, do some processing on them in Python
and return to the caller. Don't be fooled into thinking this is a mere
'execute a script file' approach: the interface maintains the object-
oriented interface, but the Python code actually accesses and
manipulates the binary data held in the C++ application. What I'd like
to do now is link this code into hugin and test it at it's destined
place. To do so, I need a good point to link it in, and some easy way
of triggering the call to Python with data from hugin.
The code to use Python is encapsulated in two C++ classes that could
either be put straight into a cpp file somewhere or be included as a
header.
I'd welcome some support from the hugin developers here. Also, I don't
intend to provide any GUI elements to deal with plugins (at least for
now), mainly because I don't have wxWidgets experience and don't know
the GUI code, but also because I feel that the GUI isn't really my
domain, I'm more of a backend programmer. Never mind the GUI, having a
breakout option to call Python for quick hacks or rapid prototyping
might be a welcome facility for the developers even without any formal
introduction of a plugin GUI. Since all the terminology for data types
and methods is identical in Python to that in C++, switching to using
Python on the data is easy.
I also need information on what to do if the Python code has modified
hugin's content. I am aware that there are mechanisms to notify the
application of such changes, and I also know that a certain protocol
has to be used to make sure all actions can be undone. What I don't
know is the precise nature of these mechanisms and how to serve them
with appropriate information. Again, help from the developers would be
welcome.
Once I've test-run the code from hugin I'll publish through the usual
channel. So far there has been so little echo to my work that I am
getting the feeling that hardly anyone actually reads my posts or is
at all interested. This is regrettable, since I am certain that my
path to Python integration is opening up very interesting new
possibilities. Let me name but a few:
- plugins can provide glue to closely cooperate with other
applications
- other code can be glued in without having to link it
- code contribution from users is made much easier
- optional functionality can be accessed on on demand
- Python code can be used to do advanced maths (see numpy, SciPy)
Kay
--
You received this message because you are subscribed to the Google Groups "Hugin and
other free panoramic software" group.
A list of frequently asked questions is available at:
http://wiki.panotools.org/Hugin_FAQ
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/hugin-ptx