X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=DEVELOPPER;h=b0c1b158bdddf88e00128b59ce084e3b80bf2256;hb=HEAD;hp=f4fb12ff45b6886d52560fb33e77dbe0567eac3b;hpb=7a05cf86c9ad068d7d098d60d1537bf4503d0879;p=gdcm.git diff --git a/DEVELOPPER b/DEVELOPPER index f4fb12ff..b0c1b158 100644 --- a/DEVELOPPER +++ b/DEVELOPPER @@ -1,46 +1 @@ -The following comments are intended for core gdcm developpers. - - -* Python related section. - Depending on the automake/autoconf/autogen.sh flags you used gdcm could - be wrapped in two ways: - - the first python wrappers of gdcm use Swig (http://www.swig.org). They - are the ones generated when using autogen.sh --enable-python. - The entry point is here the file gdcmPython/gdcm.i which uses the - Swig synthax. As the last lines of this file (the ones starting - with the %include directive) only some classes are wrapped for python. - In theory only the library interface (basically the classes gdcmHeader - and gdcmFile) should be wrapped, but the time being some additional - classes are added (just to make sure those classes are Swig compatible: - swig is here used as some lint checker!?). - Since gdcm is written in C++, Swig will produce two different outups: - -- some C based low level wrapper (see gdcmPython/gdcm_wrap.c) - -- some Python based object oriented so called "shadow classes" (see - file gdcmPython/gdcm.py) - We also added the file gdcmPython/__init__.py which is the one that - actually gets loaded when ones uses the gdcmPython Python package. - The file __init__.py loads the swig generated shadow classes (gdcm.py) - but will only re-export the interface of gdcm which correponds to - the lines : - gdcmHeader = gdcm.gdcmHeader - gdcmDictSet = gdcm.gdcmDictSet - gdcmFile = gdcm.gdcmFile - Hence this whole Swig wrapping process is quite odd since we shall - wrap more classes (%include in swig.i) than eventually exported to - the final user by gdcmPython/__init__.py. - - the second python wrappers use the vtk (http://public.kitware.com/VTK/) - native wrappers i.e. the binary vtkWrapPython. But it should be noticed - that the purpous is here a bit different than the one of the Swig - generated Python wrappers. When using vtkWrapPython the goal is to - wrap a single vtk class namely vtkGdcmReader as defined in files - in vtk/vtkGdcmReader.h vtk/vtkGdcmReader.cxx (and of course those - files are hand made vtk oriented wrappers of gdcm). - Those wrappers are the one generated when using - autogen.sh --enable-python --enable-vtk - - In order to understand the difference between both wrappers you should - compare both demo scripts gdcmPython/demo/vtkGdcmDemo.py and - gdcmPython/demo/vtkGdcmReader.py. The first one only uses the - Swig wraped classes ("from gdcmPython import gdcmHeader') as opposed - to vtkGdcmReader.py which also uses vtkWrapPython wraped classes - ("from gdcmPython.vtkgdcmPython import *"). - +The entry point is Doc/Website/Developpers.html