/usr/src/WrapITK/Modules/Base/SwigExtras.i is in libinsighttoolkit3-dev 3.20.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | // TODO: How much of this is useful anyway?
%module SwigExtras
%include "typemaps.i"
%include "carrays.i"
%array_functions(unsigned long, ULArray);
%array_functions(long, LArray);
%array_functions(int, IArray);
%array_functions(float, FArray);
%array_functions(double, DArray);
%array_class(unsigned long, ULArrayClass);
%array_class(long, LArrayClass);
%array_class(int, IArrayClass);
%array_class(float, FArrayClass);
%array_class(double, DArrayClass);
// Create swig version of std::list with
// a specialization for std::string.
// This is because list<std::string> is used
// in the wrapper interface of ITK and for java
// this creates SWIGTYPE_p_*.java files that are
// too big for windows file systems. But if the
// class is wrapped, the shorter name StringList is used.
%{
#include <list>
%}
namespace std {
template<class T> class list {
public:
list();
unsigned int size() const;
bool empty() const;
void clear();
void push_back(std::string x);
};
template<> class list<std::string> {
// add specialized typemaps here
public:
list();
unsigned int size() const;
bool empty() const;
void clear();
void push_back(std::string x);
%extend {
std::string get(int i)
{
std::list<std::string>::iterator j = self->begin();
while(i)
{
j++;
i--;
}
return *j;
}
}
};
}
/* See wrap_SwigExtras.cxx. */
%include stl.i
%template(StringVector) std::vector<std::string>;
%template(StringList) std::list<std::string>;
|