1 /*========================================================================= 2 3 Program: GDCM (Grassroots DICOM). A DICOM library 4 5 Copyright (c) 2006-2011 Mathieu Malaterre 6 All rights reserved. 7 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 8 9 This software is distributed WITHOUT ANY WARRANTY; without even 10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 11 PURPOSE. See the above copyright notice for more information. 12 13 =========================================================================*/ 14 // See docs: 15 // http://www.swig.org/Doc1.3/Php.html 16 // http://www.swig.org/Doc1.3/SWIGPlus.html#SWIGPlus 17 18 %module(docstring="A DICOM library",directors=1) gdcm 19 #pragma SWIG nowarn=302,303,312,362,383,389,401,503,504,509,510,514,516,842 20 21 #if defined(SWIGPHP) 22 %{ 23 #define SWIGPHP 24 %} 25 #endif 26 27 %{ 28 #include "gdcmTypes.h" 29 #include "gdcmASN1.h" 30 #include "gdcmSmartPointer.h" 31 #include "gdcmSwapCode.h" 32 #include "gdcmEvent.h" 33 #include "gdcmProgressEvent.h" 34 #include "gdcmAnonymizeEvent.h" 35 #include "gdcmDirectory.h" 36 #ifdef GDCM_BUILD_TESTING 37 #include "gdcmTesting.h" 38 #endif 39 #include "gdcmObject.h" 40 #include "gdcmPixelFormat.h" 41 #include "gdcmMediaStorage.h" 42 #include "gdcmTag.h" 43 #include "gdcmPrivateTag.h" 44 #include "gdcmVL.h" 45 #include "gdcmVR.h" 46 #include "gdcmVM.h" 47 #include "gdcmObject.h" 48 #include "gdcmValue.h" 49 #include "gdcmByteValue.h" 50 #include "gdcmDataElement.h" 51 #include "gdcmItem.h" 52 #include "gdcmSequenceOfItems.h" 53 #include "gdcmDataSet.h" 54 //#include "gdcmString.h" 55 //#include "gdcmCodeString.h" 56 #include "gdcmPreamble.h" 57 #include "gdcmFile.h" 58 #include "gdcmBitmap.h" 59 #include "gdcmIconImage.h" 60 #include "gdcmPixmap.h" 61 #include "gdcmImage.h" 62 #include "gdcmFragment.h" 63 #include "gdcmCSAHeader.h" 64 #include "gdcmPDBHeader.h" 65 #include "gdcmSequenceOfFragments.h" 66 #include "gdcmTransferSyntax.h" 67 #include "gdcmBasicOffsetTable.h" 68 //#include "gdcmLO.h" 69 #include "gdcmCSAElement.h" 70 #include "gdcmPDBElement.h" 71 #include "gdcmFileSet.h" 72 73 #include "gdcmReader.h" 74 #include "gdcmPixmapReader.h" 75 #include "gdcmImageReader.h" 76 #include "gdcmWriter.h" 77 #include "gdcmPixmapWriter.h" 78 #include "gdcmImageWriter.h" 79 #include "gdcmStringFilter.h" 80 #include "gdcmGlobal.h" 81 #include "gdcmDicts.h" 82 #include "gdcmDict.h" 83 #include "gdcmCSAHeaderDict.h" 84 #include "gdcmDictEntry.h" 85 #include "gdcmCSAHeaderDictEntry.h" 86 #include "gdcmUIDGenerator.h" 87 #include "gdcmUUIDGenerator.h" 88 //#include "gdcmConstCharWrapper.h" 89 #include "gdcmScanner.h" 90 #include "gdcmAttribute.h" 91 #include "gdcmSubject.h" 92 #include "gdcmCommand.h" 93 #include "gdcmAnonymizer.h" 94 #include "gdcmFileAnonymizer.h" 95 #include "gdcmFileStreamer.h" 96 #include "gdcmSystem.h" 97 #include "gdcmTrace.h" 98 #include "gdcmUIDs.h" 99 #include "gdcmSorter.h" 100 #include "gdcmIPPSorter.h" 101 #include "gdcmSpectroscopy.h" 102 #include "gdcmPrinter.h" 103 #include "gdcmXMLPrinter.h" 104 #include "gdcmDumper.h" 105 #include "gdcmOrientation.h" 106 #include "gdcmFiducials.h" 107 #include "gdcmWaveform.h" 108 #include "gdcmPersonName.h" 109 #include "gdcmCurve.h" 110 #include "gdcmDICOMDIR.h" 111 #include "gdcmValidate.h" 112 #include "gdcmApplicationEntity.h" 113 #include "gdcmDictPrinter.h" 114 #include "gdcmFilenameGenerator.h" 115 #include "gdcmVersion.h" 116 #include "gdcmFilename.h" 117 #include "gdcmEnumeratedValues.h" 118 #include "gdcmPatient.h" 119 #include "gdcmStudy.h" 120 #include "gdcmUsage.h" 121 #include "gdcmMacroEntry.h" 122 #include "gdcmModuleEntry.h" 123 #include "gdcmNestedModuleEntries.h" 124 #include "gdcmMacro.h" 125 #include "gdcmMacros.h" 126 #include "gdcmModule.h" 127 #include "gdcmModules.h" 128 #include "gdcmDefs.h" 129 #include "gdcmIOD.h" 130 #include "gdcmIODs.h" 131 #include "gdcmTableEntry.h" 132 #include "gdcmDefinedTerms.h" 133 #include "gdcmSeries.h" 134 #include "gdcmIODEntry.h" 135 #include "gdcmRescaler.h" 136 #include "gdcmSegmentedPaletteColorLookupTable.h" 137 #include "gdcmUnpacker12Bits.h" 138 #include "gdcmDirectionCosines.h" 139 #include "gdcmTagPath.h" 140 #include "gdcmBitmapToBitmapFilter.h" 141 #include "gdcmPixmapToPixmapFilter.h" 142 #include "gdcmImageToImageFilter.h" 143 #include "gdcmSOPClassUIDToIOD.h" 144 #include "gdcmCoder.h" 145 #include "gdcmDecoder.h" 146 #include "gdcmCodec.h" 147 #include "gdcmImageCodec.h" 148 #include "gdcmJPEGCodec.h" 149 #include "gdcmJPEGLSCodec.h" 150 #include "gdcmJPEG2000Codec.h" 151 #include "gdcmPNMCodec.h" 152 #include "gdcmImageChangeTransferSyntax.h" 153 #include "gdcmFileChangeTransferSyntax.h" 154 #include "gdcmImageApplyLookupTable.h" 155 #include "gdcmSplitMosaicFilter.h" 156 #include "gdcmImageChangePhotometricInterpretation.h" 157 #include "gdcmImageChangePlanarConfiguration.h" 158 #include "gdcmImageFragmentSplitter.h" 159 #include "gdcmDataSetHelper.h" 160 #include "gdcmFileExplicitFilter.h" 161 #include "gdcmImageHelper.h" 162 #include "gdcmMD5.h" 163 #include "gdcmDummyValueGenerator.h" 164 #include "gdcmSHA1.h" 165 #include "gdcmBase64.h" 166 #include "gdcmCryptographicMessageSyntax.h" 167 #include "gdcmCryptoFactory.h" 168 #include "gdcmSpacing.h" 169 #include "gdcmIconImageGenerator.h" 170 #include "gdcmIconImageFilter.h" 171 172 #include "gdcmSimpleSubjectWatcher.h" 173 #include "gdcmDICOMDIRGenerator.h" 174 #include "gdcmFileDerivation.h" 175 176 #include "gdcmQueryBase.h" 177 #include "gdcmQueryFactory.h" 178 #include "gdcmBaseRootQuery.h" 179 #include "gdcmPresentationContext.h" 180 #include "gdcmPresentationContextGenerator.h" 181 #include "gdcmCompositeNetworkFunctions.h" 182 #include "gdcmServiceClassUser.h" 183 184 #include "gdcmStreamImageReader.h" 185 186 #include "gdcmRegion.h" 187 #include "gdcmBoxRegion.h" 188 #include "gdcmImageRegionReader.h" 189 190 using namespace gdcm; 191 %} 192 193 //%include "docstrings.i" 194 195 // swig need to know what are uint16_t, uint8_t... 196 %include "stdint.i" 197 198 // gdcm does not use std::string in its interface, but we do need it for the 199 // %extend (see below) 200 %include "std_string.i" 201 //%include "std_set.i" 202 %include "std_vector.i" 203 %include "std_pair.i" 204 %include "std_map.i" 205 %include "exception.i" 206 207 // operator= is not needed in python AFAIK 208 %ignore operator=; // Ignore = everywhere. 209 %ignore operator++; // Ignore 210 211 %define EXTEND_CLASS_PRINT_GENERAL(classfuncname,classname) 212 %extend classname 213 { classfuncname()214 const char *classfuncname() { 215 static std::string buffer; 216 std::ostringstream os; 217 os << *self; 218 buffer = os.str(); 219 return buffer.c_str(); 220 } 221 }; 222 %enddef 223 224 #if defined(SWIGPHP) 225 %define EXTEND_CLASS_PRINT(classname) 226 EXTEND_CLASS_PRINT_GENERAL(__toString,classname) 227 %enddef 228 #endif 229 230 //%feature("autodoc", "1") 231 %include "gdcmConfigure.h" 232 //%include "gdcmTypes.h" 233 //%include "gdcmWin32.h" 234 // I cannot include gdcmWin32.h without gdcmTypes.h, first. But gdcmTypes.h needs to know _MSC_VER at swig time... 235 #define GDCM_EXPORT 236 %include "gdcmLegacyMacro.h" 237 238 // The following must be define early on as gdcmVL.h get included real early 239 %rename(GetValueLength) gdcm::VL::operator uint32_t; 240 //%csmethodmodifiers gdcm::VL::GetValueLength "private" 241 //%csmethodmodifiers GetValueLength "private" 242 //%rename(GetValue) VL::operator uint32_t (); 243 // public static implicit operator int( MyType a ) 244 // { 245 // return a.value; 246 // } 247 %include "gdcmSwapCode.h" 248 249 //%feature("director") Event; 250 //%feature("director") AnyEvent; 251 %include "gdcmEvent.h" 252 253 %include "gdcmPixelFormat.h" 254 EXTEND_CLASS_PRINT(gdcm::PixelFormat) 255 %include "gdcmMediaStorage.h" 256 EXTEND_CLASS_PRINT(gdcm::MediaStorage) 257 //%rename(__getitem__) gdcm::Tag::operator[]; 258 //%rename(this ) gdcm::Tag::operator[]; 259 %include "gdcmTag.h" 260 EXTEND_CLASS_PRINT(gdcm::Tag) 261 %include "gdcmPrivateTag.h" 262 EXTEND_CLASS_PRINT(gdcm::PrivateTag) 263 264 %include "gdcmProgressEvent.h" 265 //%feature("director") AnonymizeEvent; 266 %include "gdcmAnonymizeEvent.h" 267 268 %include "gdcmVL.h" 269 EXTEND_CLASS_PRINT(gdcm::VL) 270 %include "gdcmVR.h" 271 EXTEND_CLASS_PRINT(gdcm::VR) 272 %include "gdcmVM.h" 273 EXTEND_CLASS_PRINT(gdcm::VM) 274 //%template (FilenameType) std::string; 275 %template (FilenamesType) std::vector<std::string>; 276 %include "gdcmDirectory.h" 277 EXTEND_CLASS_PRINT(gdcm::Directory) 278 %include "gdcmObject.h" 279 %include "gdcmValue.h" 280 EXTEND_CLASS_PRINT(gdcm::Value) 281 // Array marshaling for arrays of primitives 282 283 284 285 286 %apply char[] { char* buffer } 287 %ignore gdcm::ByteValue::WriteBuffer(std::ostream &os) const; 288 //%ignore gdcm::ByteValue::GetPointer() const; 289 //%ignore gdcm::ByteValue::GetBuffer(char *buffer, unsigned long length) const; 290 %include "gdcmByteValue.h" 291 EXTEND_CLASS_PRINT(gdcm::ByteValue) 292 %clear char* buffer; 293 294 %apply char[] { const char* array } 295 296 %include "gdcmASN1.h" 297 %include "gdcmSmartPointer.h" 298 %template(SmartPtrSQ) gdcm::SmartPointer<gdcm::SequenceOfItems>; 299 %template(SmartPtrFrag) gdcm::SmartPointer<gdcm::SequenceOfFragments>; 300 %include "gdcmDataElement.h" 301 EXTEND_CLASS_PRINT(gdcm::DataElement) 302 303 %clear const char* array; 304 %extend gdcm::DataElement 305 { SetArray(unsigned char array[],unsigned int nitems)306 void SetArray(unsigned char array[], unsigned int nitems) { 307 $self->SetByteValue((char*)array, nitems * sizeof(unsigned char) ); 308 } SetArray(char array[],unsigned int nitems)309 void SetArray(char array[], unsigned int nitems) { 310 $self->SetByteValue((char*)array, nitems * sizeof(char) ); 311 } SetArray(unsigned short array[],unsigned int nitems)312 void SetArray(unsigned short array[], unsigned int nitems) { 313 $self->SetByteValue((char*)array, nitems * sizeof(unsigned short) ); 314 } SetArray(short array[],unsigned int nitems)315 void SetArray(short array[], unsigned int nitems) { 316 $self->SetByteValue((char*)array, nitems * sizeof(short) ); 317 } SetArray(float array[],unsigned int nitems)318 void SetArray(float array[], unsigned int nitems) { 319 $self->SetByteValue((char*)array, nitems * sizeof(float) ); 320 } SetArray(double array[],unsigned int nitems)321 void SetArray(double array[], unsigned int nitems) { 322 $self->SetByteValue((char*)array, nitems * sizeof(double) ); 323 } 324 }; 325 326 %include "gdcmItem.h" 327 EXTEND_CLASS_PRINT(gdcm::Item) 328 /* 329 The following line is very important it properly convert : 330 SWIGTYPE_p_std__vectorT_int_t__size_type -> uint 331 */ 332 %template() std::vector< gdcm::Item >; 333 %include "gdcmSequenceOfItems.h" 334 EXTEND_CLASS_PRINT(gdcm::SequenceOfItems) 335 %rename (PHPDataSet) SWIGDataSet; 336 %rename (PHPTagToValue) SWIGTagToValue; 337 %include "gdcmDataSet.h" 338 EXTEND_CLASS_PRINT(gdcm::DataSet) 339 //%include "gdcmString.h" 340 //%include "gdcmCodeString.h" 341 //%include "gdcmTransferSyntax.h" 342 %include "gdcmPhotometricInterpretation.h" 343 EXTEND_CLASS_PRINT(gdcm::PhotometricInterpretation) 344 %include "gdcmObject.h" 345 %include "gdcmLookupTable.h" 346 EXTEND_CLASS_PRINT(gdcm::LookupTable) 347 %include "gdcmOverlay.h" 348 EXTEND_CLASS_PRINT(gdcm::Overlay) 349 //%include "gdcmVR.h" 350 //%template (DataElementSet) std::set<gdcm::DataElement>; 351 %include "gdcmPreamble.h" 352 EXTEND_CLASS_PRINT(gdcm::Preamble) 353 %include "gdcmTransferSyntax.h" 354 EXTEND_CLASS_PRINT(gdcm::TransferSyntax) 355 %include "gdcmFileMetaInformation.h" 356 EXTEND_CLASS_PRINT(gdcm::FileMetaInformation) 357 358 //%template(File) gdcm::SmartPointer<gdcm::File>; 359 //%ignore gdcm::File; 360 361 %include "gdcmFile.h" 362 EXTEND_CLASS_PRINT(gdcm::File) 363 //%include "gdcm_arrays_csharp.i" 364 365 %apply char[] { char* buffer } 366 %apply unsigned int[] { unsigned int dims[2] } 367 %apply unsigned int[] { unsigned int dims[3] } 368 369 //%apply byte OUTPUT[] { char* buffer } ; 370 //%ignore gdcm::Pixmap::GetBuffer(char*) const; 371 //%apply byte FIXED[] { char *buffer } 372 //%csmethodmodifiers gdcm::Pixmap::GetBuffer "public unsafe"; 373 //%define %cs_marshal_array(TYPE, CSTYPE) 374 // %typemap(ctype) TYPE[] "void*" 375 // %typemap(imtype, inattributes="[MarshalAs(UnmanagedType.LPArray)]") TYPE[] "CSTYPE[]" 376 // %typemap(cstype) TYPE[] "CSTYPE[]" 377 // %typemap(in) TYPE[] %{ $1 = (TYPE*)$input; %} 378 // %typemap(csin) TYPE[] "$csinput" 379 //%enddef 380 //%cs_marshal_array(char, byte) 381 %include "gdcmBitmap.h" 382 EXTEND_CLASS_PRINT(gdcm::Bitmap) 383 384 %include "gdcmIconImage.h" 385 EXTEND_CLASS_PRINT(gdcm::IconImage) 386 %include "gdcmPixmap.h" 387 EXTEND_CLASS_PRINT(gdcm::Pixmap) 388 389 %include "gdcmImage.h" 390 EXTEND_CLASS_PRINT(gdcm::Image) 391 %include "gdcmFragment.h" 392 EXTEND_CLASS_PRINT(gdcm::Fragment) 393 %include "gdcmPDBElement.h" 394 EXTEND_CLASS_PRINT(gdcm::PDBElement) 395 %include "gdcmPDBHeader.h" 396 EXTEND_CLASS_PRINT(gdcm::PDBHeader) 397 %include "gdcmCSAElement.h" 398 EXTEND_CLASS_PRINT(gdcm::CSAElement) 399 %include "gdcmCSAHeader.h" 400 EXTEND_CLASS_PRINT(gdcm::CSAHeader) 401 %include "gdcmSequenceOfFragments.h" 402 EXTEND_CLASS_PRINT(gdcm::SequenceOfFragments) 403 %include "gdcmBasicOffsetTable.h" 404 EXTEND_CLASS_PRINT(gdcm::BasicOffsetTable) 405 //%include "gdcmLO.h" 406 %include "gdcmFileSet.h" 407 EXTEND_CLASS_PRINT(gdcm::FileSet) 408 409 %include "gdcmGlobal.h" 410 EXTEND_CLASS_PRINT(gdcm::Global) 411 412 %include "gdcmDictEntry.h" 413 EXTEND_CLASS_PRINT(gdcm::DictEntry) 414 %include "gdcmCSAHeaderDictEntry.h" 415 EXTEND_CLASS_PRINT(gdcm::CSAHeaderDictEntry) 416 417 %include "gdcmDict.h" 418 EXTEND_CLASS_PRINT(gdcm::Dict) 419 %include "gdcmCSAHeaderDict.h" 420 EXTEND_CLASS_PRINT(gdcm::CSAHeaderDictEntry) 421 %include "gdcmDicts.h" 422 EXTEND_CLASS_PRINT(gdcm::Dicts) 423 424 //%template (TagSetType) std::set<gdcm::Tag>; 425 %ignore gdcm::Reader::SetStream; 426 %include "gdcmReader.h" 427 //EXTEND_CLASS_PRINT(gdcm::Reader) 428 %include "gdcmPixmapReader.h" 429 //EXTEND_CLASS_PRINT(gdcm::PixmapReader) 430 %include "gdcmImageReader.h" 431 //EXTEND_CLASS_PRINT(gdcm::ImageReader) 432 %include "gdcmWriter.h" 433 //EXTEND_CLASS_PRINT(gdcm::Writer) 434 %include "gdcmPixmapWriter.h" 435 //EXTEND_CLASS_PRINT(gdcm::PixmapWriter) 436 %include "gdcmImageWriter.h" 437 //EXTEND_CLASS_PRINT(gdcm::ImageWriter) 438 %template (PairString) std::pair<std::string,std::string>; 439 //%template (MyM) std::map<gdcm::Tag,gdcm::ConstCharWrapper>; 440 %include "gdcmStringFilter.h" 441 //EXTEND_CLASS_PRINT(gdcm::StringFilter) 442 %include "gdcmUIDGenerator.h" 443 //EXTEND_CLASS_PRINT(gdcm::UIDGenerator) 444 %include "gdcmUUIDGenerator.h" 445 //EXTEND_CLASS_PRINT(gdcm::UUIDGenerator) 446 //%template (ValuesType) std::set<std::string>; 447 %rename (CSharpTagToValue) SWIGTagToValue; 448 #define GDCM_STATIC_ASSERT(x) 449 %include "gdcmAttribute.h" 450 %include "gdcmSubject.h" 451 %include "gdcmCommand.h" 452 453 %template(SmartPtrScan) gdcm::SmartPointer<gdcm::Scanner>; 454 %include "gdcmScanner.h" 455 EXTEND_CLASS_PRINT(gdcm::Scanner) 456 457 %template(SmartPtrAno) gdcm::SmartPointer<gdcm::Anonymizer>; 458 //%ignore gdcm::Anonymizer::Anonymizer; 459 460 461 //%template(Anonymizer) gdcm::SmartPointer<gdcm::Anonymizer>; 462 // 463 //%ignore gdcm::Anonymizer; 464 //%feature("unref") Anonymizer "coucou $this->Delete();" 465 // http://www.swig.org/Doc1.3/SWIGPlus.html#SWIGPlus%5Fnn34 466 %include "gdcmAnonymizer.h" 467 %apply char[] { char* value_data } 468 %include "gdcmFileAnonymizer.h" 469 %clear char* value_data; 470 471 %apply char[] { char* array } 472 %template(SmartPtrFStreamer) gdcm::SmartPointer<gdcm::FileStreamer>; 473 %include "gdcmFileStreamer.h" 474 %clear char* array; 475 476 //EXTEND_CLASS_PRINT(gdcm::Anonymizer) 477 //%extend gdcm::Anonymizer 478 //{ 479 //%typemap(cscode) gdcm::Anonymizer 480 //%{ 481 // public Anonymizer() : this(gdcmPINVOKE.Anonymizer_New(), false) { 482 // } 483 //%} 484 //}; 485 486 // System is a namespace in C#, need to rename to something different 487 %rename (PosixEmulation) System; 488 %include "gdcmSystem.h" 489 //EXTEND_CLASS_PRINT(gdcm::System) 490 491 %include "gdcmTrace.h" 492 //EXTEND_CLASS_PRINT(gdcm::Trace) 493 %include "gdcmUIDs.h" 494 EXTEND_CLASS_PRINT(gdcm::UIDs) 495 //%feature("director") gdcm::IPPSorter; 496 497 //////////////////////////////////////////////////////////////////////////// 498 // cs_callback is used to marshall callbacks. It allows a C# function to 499 // be passed to C++ as a function pointer through P/Invoke, which has the 500 // ability to make unmanaged-to-managed thunks. It does NOT allow you to 501 // pass C++ function pointers to C#. 502 // 503 // I would have liked to support FastDelegate<...> as the C++ argument 504 // type; this would have involved the cs_callback2 macro... but it turns 505 // out not to work under default project settings because .NET functions 506 // use the __stdcall calling convention, but FastDelegate uses the default 507 // convention which tends to be something else (__fastcall?). So nevermind. 508 // 509 // Anyway, to use this macro you need to declare the function pointer type 510 // TYPE in the appropriate header file (including the calling convention), 511 // declare a delegate named after CSTYPE in your C# project, and use this 512 // macro in your .i file. Here is an example: 513 // 514 // in C++ header file (%include this header in your .i file): 515 // typedef void (__stdcall *Callback)(PCWSTR); 516 // void Foo(Callback c); 517 // 518 // in C# code: 519 // public delegate void CppCallback([MarshalAs(UnmanagedType.LPWStr)] string message); 520 // 521 // in your .i file: 522 // %cs_callback(Callback, CppCallback) 523 // 524 // Remember to invoke %cs_callback before any code involving Callback. 525 %define %cs_callback(TYPE, CSTYPE) 526 %typemap(ctype) TYPE, TYPE& "void*" 527 %typemap(in) TYPE %{ $1 = (TYPE)$input; %} 528 %typemap(in) TYPE& %{ $1 = (TYPE*)&$input; %} 529 %typemap(imtype, out="IntPtr") TYPE, TYPE& "CSTYPE" 530 %typemap(cstype, out="IntPtr") TYPE, TYPE& "CSTYPE" 531 %typemap(csin) TYPE, TYPE& "$csinput" 532 %enddef 533 %define %cs_callback2(TYPE, CTYPE, CSTYPE) 534 %typemap(ctype) TYPE "CTYPE" 535 %typemap(in) TYPE %{ $1 = (TYPE)$input; %} 536 %typemap(imtype, out="IntPtr") TYPE "CSTYPE" 537 %typemap(cstype, out="IntPtr") TYPE "CSTYPE" 538 %typemap(csin) TYPE "$csinput" 539 %enddef 540 541 %cs_callback(Sorter::SortFunction, Sorter::CppSortFunction) 542 543 %include "gdcmSorter.h" 544 EXTEND_CLASS_PRINT(gdcm::Sorter) 545 %include "gdcmIPPSorter.h" 546 EXTEND_CLASS_PRINT(gdcm::IPPSorter) 547 %include "gdcmSpectroscopy.h" 548 //EXTEND_CLASS_PRINT(gdcm::Spectroscopy) 549 %include "gdcmPrinter.h" 550 //EXTEND_CLASS_PRINT(gdcm::Printer) 551 %include "gdcmXMLPrinter.h" 552 //EXTEND_CLASS_PRINT(gdcm::XMLPrinter) 553 %include "gdcmDumper.h" 554 //EXTEND_CLASS_PRINT(gdcm::Dumper) 555 %include "gdcmOrientation.h" 556 EXTEND_CLASS_PRINT(gdcm::Orientation) 557 %include "gdcmDirectionCosines.h" 558 EXTEND_CLASS_PRINT(gdcm::DirectionCosines) 559 560 %include "gdcmFiducials.h" 561 %include "gdcmWaveform.h" 562 %include "gdcmPersonName.h" 563 %include "gdcmCurve.h" 564 %include "gdcmDICOMDIR.h" 565 %include "gdcmValidate.h" 566 %include "gdcmApplicationEntity.h" 567 %include "gdcmDictPrinter.h" 568 %include "gdcmFilenameGenerator.h" 569 %include "gdcmVersion.h" 570 EXTEND_CLASS_PRINT(gdcm::Version) 571 %include "gdcmFilename.h" 572 %include "gdcmEnumeratedValues.h" 573 %include "gdcmPatient.h" 574 %include "gdcmStudy.h" 575 %include "gdcmUsage.h" 576 %include "gdcmMacroEntry.h" 577 %include "gdcmModuleEntry.h" 578 EXTEND_CLASS_PRINT(gdcm::ModuleEntry) 579 %include "gdcmNestedModuleEntries.h" 580 %include "gdcmMacro.h" 581 %include "gdcmMacros.h" 582 %include "gdcmModule.h" 583 %include "gdcmModules.h" 584 %include "gdcmDefs.h" 585 %include "gdcmIOD.h" 586 %include "gdcmIODs.h" 587 %include "gdcmTableEntry.h" 588 %include "gdcmDefinedTerms.h" 589 %include "gdcmSeries.h" 590 %include "gdcmIODEntry.h" 591 592 %apply char[] { char* out } 593 %apply char[] { char* in } 594 %include "gdcmRescaler.h" 595 //EXTEND_CLASS_PRINT(gdcm::Rescaler) 596 %extend gdcm::Rescaler 597 { Rescale(double out[],const short in[],size_t n)598 bool Rescale(double out[], const short in[], size_t n) { 599 return $self->Rescale((char*)out, (char*)in, n); 600 } 601 } 602 %clear char* out; 603 %clear char* in; 604 605 %include "gdcmSegmentedPaletteColorLookupTable.h" 606 %include "gdcmUnpacker12Bits.h" 607 608 %include "gdcmConfigure.h" 609 #ifdef GDCM_BUILD_TESTING 610 %include "gdcmTesting.h" 611 %ignore gdcm::Testing::ComputeMD5(const char *, const unsigned long , char []); 612 %ignore gdcm::Testing::ComputeFileMD5(const char*, char []); 613 %extend gdcm::Testing 614 { ComputeFileMD5(const char * filename)615 static const char *ComputeFileMD5(const char *filename) { 616 static char buffer[33]; 617 gdcm::Testing::ComputeFileMD5(filename, buffer); 618 return buffer; 619 } 620 }; 621 #endif 622 %include "gdcmTagPath.h" 623 %include "gdcmBitmapToBitmapFilter.h" 624 %include "gdcmPixmapToPixmapFilter.h" 625 //%ignore gdcm::ImageToImageFilter::GetOutput() const; 626 %include "gdcmImageToImageFilter.h" 627 %include "gdcmSOPClassUIDToIOD.h" 628 //%feature("director") Coder; 629 //%include "gdcmCoder.h" 630 //%feature("director") Decoder; 631 //%include "gdcmDecoder.h" 632 //%feature("director") Codec; 633 //%include "gdcmCodec.h" 634 %feature("director") ImageCodec; 635 %include "gdcmImageCodec.h" 636 %include "gdcmJPEGCodec.h" 637 %include "gdcmJPEGLSCodec.h" 638 %include "gdcmJPEG2000Codec.h" 639 %include "gdcmPNMCodec.h" 640 %include "gdcmImageChangeTransferSyntax.h" 641 %template(SmartPtrFCTS) gdcm::SmartPointer<gdcm::FileChangeTransferSyntax>; 642 %include "gdcmFileChangeTransferSyntax.h" 643 %include "gdcmImageApplyLookupTable.h" 644 %include "gdcmSplitMosaicFilter.h" 645 %include "gdcmImageChangePhotometricInterpretation.h" 646 %include "gdcmImageChangePlanarConfiguration.h" 647 %include "gdcmImageFragmentSplitter.h" 648 %include "gdcmDataSetHelper.h" 649 %include "gdcmFileExplicitFilter.h" 650 %template (DoubleArrayType) std::vector<double>; 651 %template (UShortArrayType) std::vector<unsigned short>; 652 %template (UIntArrayType) std::vector<unsigned int>; 653 %include "gdcmImageHelper.h" 654 %include "gdcmMD5.h" 655 %include "gdcmDummyValueGenerator.h" 656 %include "gdcmSHA1.h" 657 //%include "gdcmBase64.h" 658 %include "gdcmCryptographicMessageSyntax.h" 659 %include "gdcmCryptoFactory.h" 660 %include "gdcmSpacing.h" 661 %include "gdcmIconImageGenerator.h" 662 %include "gdcmIconImageFilter.h" 663 664 %feature("director") SimpleSubjectWatcher; 665 %include "gdcmSimpleSubjectWatcher.h" 666 %include "gdcmDICOMDIRGenerator.h" 667 %include "gdcmFileDerivation.h" 668 669 // MEXD: 670 %template(DataSetArrayType) std::vector< gdcm::DataSet >; 671 %template(FileArrayType) std::vector< gdcm::File >; 672 %template(PresentationContextArrayType) std::vector< gdcm::PresentationContext >; 673 %template(KeyValuePairType) std::pair< gdcm::Tag, std::string>; 674 %template(KeyValuePairArrayType) std::vector< std::pair< gdcm::Tag, std::string> >; 675 %template(TagArrayType) std::vector< gdcm::Tag >; 676 %include "gdcmQueryBase.h" 677 %include "gdcmBaseRootQuery.h" 678 %include "gdcmQueryFactory.h" 679 %template(CharSetArrayType) std::vector< gdcm::ECharSet >; 680 %include "gdcmCompositeNetworkFunctions.h" 681 %include "gdcmPresentationContext.h" 682 //EXTEND_CLASS_PRINT(gdcm::PresentationContext) 683 %include "gdcmPresentationContextGenerator.h" 684 typedef int64_t time_t; // FIXME 685 %include "gdcmServiceClassUser.h" 686 %apply char[] { char* inReadBuffer } 687 %include "gdcmStreamImageReader.h" 688 %clear char* inReadBuffer; 689 %include "gdcmRegion.h" 690 EXTEND_CLASS_PRINT(gdcm::Region) 691 %include "gdcmBoxRegion.h" 692 EXTEND_CLASS_PRINT(gdcm::BoxRegion) 693 %apply char[] { char* inreadbuffer } 694 %include "gdcmImageRegionReader.h" 695 %clear char* inreadbuffer; 696