]> Creatis software - gdcm.git/blobdiff - gdcmPython/gdcm.i
Typo
[gdcm.git] / gdcmPython / gdcm.i
index 4148b71780c776559625cad09051f209916b430d..e230f450fda6d2aa0d32649abf3b83b9eb968891 100644 (file)
@@ -1,4 +1,5 @@
 %module gdcm
+#pragma SWIG nowarn=504
 %{
 #include <iostream>
 
@@ -31,6 +32,9 @@
 #include "gdcmValEntry.h"
 #include "gdcmBinEntry.h"
 #include "gdcmSeqEntry.h"
+#include "gdcmVR.h"
+#include "gdcmTS.h"
+#include "gdcmDictGroupName.h"
 
 ////////////////////////////////////////////////////////////////////////////
 /// Refer (below) to the definition of multi-argument typemap
@@ -111,142 +115,6 @@ typedef unsigned long long uint64_t;
    $result = newEntry;
 }
 
-////////////////////////////////////////////////
-// Convert an STL list<> to a python native list
-//%typemap(out) std::list<std::string> * 
-//{
-//   PyObject *newItem = (PyObject *)0;
-//   PyObject *newList = PyList_New(0); // The result of this typemap
-//
-//   for (std::list<std::string>::iterator strIt = ($1)->begin();
-//        strIt != ($1)->end();
-//        ++strIt)
-//   {
-//      newItem = PyString_FromString(strIt->c_str());
-//      PyList_Append( newList, newItem);
-//   }
-//   $result = newList;
-//}
-
-//////////////////////////////////////////////////////////////////
-// Convert an STL map<> (hash table) to a python native dictionary
-//%typemap(out) std::map<std::string, std::list<std::string> > * 
-//{
-//   PyObject *newDict = PyDict_New(); // The result of this typemap
-//   PyObject *newKey = (PyObject *)0;
-//   PyObject *newVal = (PyObject *)0;
-//
-//   for (std::map<std::string,
-//        std::list<std::string> >::iterator tag = ($1)->begin();
-//        tag != ($1)->end(); ++tag)
-//   {
-//      std::string first = tag->first;
-//      // Do not publish entries whose keys is made of spaces
-//      if (first.length() == 0)
-//         continue;
-//      newKey = PyString_FromString(first.c_str());
-//
-//      PyObject *newList = PyList_New(0);
-//      for (std::list<std::string>::iterator itemIt = tag->second.begin();
-//           itemIt != tag->second.end();
-//           ++itemIt)
-//      {
-//         newVal = PyString_FromString(itemIt->c_str());
-//         PyList_Append( newList, newVal);
-//      }
-//      PyDict_SetItem( newDict, newKey, newList);
-//   }
-//   $result = newDict;
-//}
-
-/////////////////////////////////////////////////////////
-// Convert a c++ hash table in a python native dictionary
-//%typemap(out) gdcm::TagDocEntryHT & 
-//{
-//   PyObject *newDict = PyDict_New(); // The result of this typemap
-//   std::string rawName;              // Element name as gotten from gdcm
-//   PyObject *newKey = (PyObject *)0; // Associated name as python object
-//   std::string rawValue;             // Element value as gotten from gdcm
-//   PyObject *newVal = (PyObject *)0; // Associated value as python object
-//
-//   for (gdcm::TagDocEntryHT::iterator tag = $1->begin(); tag != $1->end(); ++tag)
-//   {
-//      // The element name shall be the key:
-//      rawName = tag->second->GetName();
-//      // gdcm unrecognized (including not loaded because their size exceeds
-//      // the user specified treshold) elements are exported with their
-//      // TagKey as key.
-//      if (rawName == "Unknown")
-//         rawName = tag->second->GetKey();
-//      newKey = PyString_FromString(rawName.c_str());
-//
-//      // Element values are striped from leading/trailing spaces
-//      gdcm::ValEntry *valEntryPtr = dynamic_cast< gdcm::ValEntry* >(tag->second);
-//      if ( valEntryPtr )
-//      {
-//         rawValue = valEntryPtr->GetValue();
-//      }
-//      else
-//        continue; 
-//      newVal = PyString_FromString(rawValue.c_str());
-//      PyDict_SetItem( newDict, newKey, newVal);
-//   }
-//   $result = newDict;
-//}
-
-/////////////////////////////////////
-//%typemap(out) ListDicomDirPatient & 
-//{
-//     PyObject *newItem = (PyObject *)0;
-//     $result = PyList_New(0); // The result of this typemap
-//
-//     for (std::list<gdcm::DicomDirPatient *>::iterator newIt = ($1)->begin();
-//         newIt != ($1)->end(); ++newIt)
-//   {
-//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirPatient,0);
-//             PyList_Append($result, newItem);
-//     }
-//}
-
-//%typemap(out) ListDicomDirStudy & 
-//{
-//     PyObject *newItem = (PyObject *)0;
-//     $result = PyList_New(0); // The result of this typemap
-//
-//     for (std::list<gdcm::DicomDirStudy *>::iterator newIt = ($1)->begin();
-//         newIt != ($1)->end(); ++newIt)
-//   {
-//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirStudy,0);
-//             PyList_Append($result, newItem);
-//     }
-//}
-
-//%typemap(out) ListDicomDirSerie & 
-//{
-//     PyObject* newItem = (PyObject*)0;
-//     $result = PyList_New(0); // The result of this typemap
-//
-//     for (std::list<gdcm::DicomDirSerie *>::iterator newIt = ($1)->begin();
-//         newIt != ($1)->end(); ++newIt)
-//   {
-//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirSerie,0);
-//             PyList_Append($result, newItem);
-//     }
-//}
-
-//%typemap(out) ListDicomDirImage & 
-//{
-//     PyObject* newItem = (PyObject*)0;
-//     $result = PyList_New(0); // The result of this typemap
-//
-//     for (std::list<gdcm::DicomDirImage *>::iterator newIt = ($1)->begin();
-//         newIt != ($1)->end(); ++newIt) 
-//   {
-//             newItem = SWIG_NewPointerObj(*newIt,SWIGTYPE_p_DicomDirImage,0);
-//             PyList_Append($result, newItem);
-//     }
-//}
-
 ////////////////////////////////////////////////////////////////////////////
 // Multi-argument typemap designed for wrapping the progress related methods
 // in order to control from an external application the computation of
@@ -260,9 +128,7 @@ typedef unsigned long long uint64_t;
 // Note: Uses gdcmPythonVoidFunc and gdcmPythonVoidFuncArgDelete defined
 //       in the Swig verbatim section of this gdcm.i i.e. in the above section
 //       enclosed within the %{ ... %} scope operator ).
-%typemap(python, in) ( gdcm::DicomDir::Method *, 
-                       void * = NULL, 
-                       gdcm::DicomDir::Method * = NULL )
+%typemap(python, in) (void(*method)(void *),void *arg,void(*argDelete)(void *))
 {
        if($input!=Py_None)
        {
@@ -281,11 +147,21 @@ typedef unsigned long long uint64_t;
 
 ////////////////////  STL string versus Python str  ////////////////////////
 // Convertion returning a C++ string.
-%typemap(out) string, std::string 
+%typemap(out) std::string
+{
+    $result = PyString_FromString(($1).c_str());
+}
+
+%typemap(out) string
 {
     $result = PyString_FromString(($1).c_str());
 }
 
+%typemap(out) std::string const &
+{
+    $result = PyString_FromString(($1)->c_str());
+}
+
 // Convertion of incoming Python str to STL string
 %typemap(python, in) const std::string, std::string
 {
@@ -318,7 +194,6 @@ typedef unsigned long long uint64_t;
    $1 = new std::string( PyString_AsString( $input ) );
 }
 
-
 ////////////////////////////////////////////////////////////////////////////
 // Because overloading and %rename don't work together (see below Note 1)
 // we need to ignore some methods (e.g. the overloaded default constructor).
@@ -328,8 +203,9 @@ typedef unsigned long long uint64_t;
 %ignore gdcm::binary_write(std::ostream &,uint32_t const &);
 %ignore gdcm::binary_write(std::ostream &,uint16_t const &);
 
-%ignore gdcm::File::File();
-%ignore gdcm::DicomDir::DicomDir();
+%ignore gdcm::DicomDir::SetStartMethod(DicomDir::Method *method,void *arg = NULL);
+%ignore gdcm::DicomDir::SetProgressMethod(DicomDir::Method *method,void *arg = NULL);
+%ignore gdcm::DicomDir::SetEndMethod(DicomDir::Method *method,void *arg = NULL);
 
 // Ignore all placed in gdcmCommon.h
 %ignore GDCM_UNKNOWN;
@@ -338,6 +214,19 @@ typedef unsigned long long uint64_t;
 %ignore GDCM_NOTLOADED;
 %ignore GDCM_UNREAD;
 
+%constant const char *UNKNOWN   = "gdcm::Unknown";
+%constant const char *UNFOUND   = "gdcm::Unfound";
+%constant const char *BINLOADED = "gdcm::Binary data loaded";
+%constant const char *NOTLOADED = "gdcm::NotLoaded";
+%constant const char *UNREAD    = "gdcm::UnRead";
+
+/*
+%constant unsigned int LD_ALL         = 0x00000000;
+%constant unsigned int LD_NOSEQ       = 0x00000001;
+%constant unsigned int LD_NOSHADOW    = 0x00000002;
+%constant unsigned int LD_NOSHADOWSEQ = 0x00000004;
+*/
+
 ////////////////////////////////////////////////////////////////////////////
 // Warning: Order matters !
 %include "gdcmCommon.h"
@@ -358,7 +247,7 @@ typedef unsigned long long uint64_t;
 %include "gdcmDocument.h"
 %include "gdcmFile.h"
 %include "gdcmSerieHelper.h"
-%include "gdcmFile.h"
+%include "gdcmFileHelper.h"
 %include "gdcmUtil.h"
 %include "gdcmGlobal.h"
 %include "gdcmDicomDir.h"
@@ -367,6 +256,9 @@ typedef unsigned long long uint64_t;
 %include "gdcmValEntry.h"
 %include "gdcmBinEntry.h"
 %include "gdcmSeqEntry.h"
+%include "gdcmVR.h"
+%include "gdcmTS.h"
+%include "gdcmDictGroupName.h"
 
 ////////////////////////////////////////////////////////////////////////////
 // Notes on swig and this file gdcm.i: