namespace hsi { /** @file README.dox @page hsihpi Hugin script interface and hugin python interface @section hsi Hugin script interface (hsi) The hugin script interface (hsi) provides a wrapper for the functions and classes in huginbase to Python. So you can use the huginbase functionality inside Python. The wrapped function and classes in Python have the same name and interface like the C++ classes and function, see \ref hugin_base for details about the functions. To use it inside Python you need to import it with @code import hsi @endcode @section hpi Hugin Python interface (hpi) The hugin python interface provides the interface to call Python function from inside Hugin GUI. The main function is hpi::callhpi, which executes a given python script with the given parameters. @section hsibackground Background The wrapper are automatically created by Swig (http://www.swig.org/). Swig works for most parts of huginbase code. But there are some points to consider. #define SWIG - this is only defined when code is processed by SWIG. It's used to hide code from SWIG which it can't (yet?) handle. #define _HSI_IGNORE_SECTION - this is only defined during the separate C- preprocessing of certain hugin header files which use a technique dubbed 'lazy metaprogramming' which SWIG can't handle. Preprocessing 'flattens' the files - it pulls in all code that is #included by them. Most of the code pulled in this way mustn't be wrapped by SWIG, so it is switched off via #ifndef _HSI_IGNORE_SECTION. #define HUGIN_HSI - this is defined globally if hsi/hpi capability has been switched on. It is used to activate the hsi/hpi related code inside the Hugin GUI. */ }