X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=gdcmPython%2Fgdcm.i;h=22baf42cbad3d52647c4af34ae4efa76984dd79f;hb=8845fe9fca6c1ed22eaaae4dd4561c0ba2f31a6b;hp=6e00374c4cafc193e4fe34627b0b2a220c706c00;hpb=29f93a14132dd0c6d9d9480ea038a2a4e8ed7e93;p=gdcm.git diff --git a/gdcmPython/gdcm.i b/gdcmPython/gdcm.i index 6e00374c..22baf42c 100644 --- a/gdcmPython/gdcm.i +++ b/gdcmPython/gdcm.i @@ -1,6 +1,24 @@ %module gdcm %{ -#include "gdcm.h" +#include "gdcmCommon.h" +#include "gdcmDictEntry.h" +#include "gdcmDict.h" +#include "gdcmDictSet.h" +#include "gdcmParser.h" +#include "gdcmHeaderEntry.h" +#include "gdcmHeader.h" +#include "gdcmHeaderHelper.h" +#include "gdcmFile.h" +#include "gdcmUtil.h" +#include "gdcmObject.h" +#include "gdcmDICOMDIR.h" +#include "gdcmPatient.h" +#include "gdcmStudy.h" +#include "gdcmSerie.h" +#include "gdcmImage.h" + + +using namespace std; // Utility functions on strings for removing leading and trailing spaces void EatLeadingAndTrailingSpaces(string & s) { @@ -13,7 +31,14 @@ void EatLeadingAndTrailingSpaces(string & s) { typedef unsigned short guint16; typedef unsigned int guint32; -%typemap(out) list * { +//////////////////////////////////////////////////////////////////////////// +// Global variables get exported to cvar in Python +%immutable; +extern gdcmGlobal gdcmGlob; +%mutable; + +//////////////////////////////////////////////////////////////////////////// +%typemap(out) std::list * { PyObject* NewItem = (PyObject*)0; PyObject* NewList = PyList_New(0); // The result of this typemap for (list::iterator NewString = ($1)->begin(); @@ -24,8 +49,9 @@ typedef unsigned int guint32; $result = NewList; } +//////////////////////////////////////////////////////////////////////////// // Convert a c++ hash table in a python native dictionary -%typemap(out) map > * { +%typemap(out) std::map > * { PyObject* NewDict = PyDict_New(); // The result of this typemap PyObject* NewKey = (PyObject*)0; PyObject* NewVal = (PyObject*)0; @@ -48,15 +74,16 @@ typedef unsigned int guint32; $result = NewDict; } +//////////////////////////////////////////////////////////////////////////// // Convert a c++ hash table in a python native dictionary -%typemap(out) TagElValueHT & { +%typemap(out) TagHeaderEntryHT & { PyObject* NewDict = PyDict_New(); // The result of this typemap string RawName; // Element name as gotten from gdcm PyObject* NewKey = (PyObject*)0; // Associated name as python object string RawValue; // Element value as gotten from gdcm PyObject* NewVal = (PyObject*)0; // Associated value as python object - for (TagElValueHT::iterator tag = $1->begin(); tag != $1->end(); ++tag) { + for (TagHeaderEntryHT::iterator tag = $1->begin(); tag != $1->end(); ++tag) { // The element name shall be the key: RawName = tag->second->GetName(); @@ -77,4 +104,30 @@ typedef unsigned int guint32; $result = NewDict; } -%include gdcm.h +//////////////////////////////////////////////////////////////////////////// +// Deals with function returning a C++ string. +%typemap(out) string, std::string { + $result = PyString_FromString(($1).c_str()); +} + +%typemap(python, in) const std::string, std::string +{ + $1 = PyString_AsString($input); +} +//////////////////////////////////////////////////////////////////////////// +%include "gdcmCommon.h" +%include "gdcmDictEntry.h" +%include "gdcmDict.h" +%include "gdcmDictSet.h" +%include "gdcmParser.h" +%include "gdcmHeaderEntry.h" +%include "gdcmHeader.h" +%include "gdcmHeaderHelper.h" +%include "gdcmFile.h" +%include "gdcmUtil.h" +%include "gdcmObject.h" +%include "gdcmDICOMDIR.h" +%#include "gdcmPatient.h" +%include "gdcmStudy.h" +%include "gdcmSerie.h" +%include "gdcmImage.h"