File: itkCSwigMacros.h

package info (click to toggle)
insighttoolkit 3.20.1%2Bgit20120521-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 80,652 kB
  • sloc: cpp: 458,133; ansic: 196,223; fortran: 28,000; python: 3,839; tcl: 1,811; sh: 1,184; java: 583; makefile: 430; csh: 220; perl: 193; xml: 20
file content (60 lines) | stat: -rw-r--r-- 2,831 bytes parent folder | download | duplicates (4)
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
#include "itkConfigure.h"

#define ITK_WRAP_GROUP(x) #x

#define ITK_WRAP_PACKAGE_NAME(p) p

// Wrap an itk object, the wrap name is itkname, 
// this is for non-templated itk objects, so
// ITK_WRAP_OBJECT(Object) would wrap itk::Object to the wrapped name itkObject
#define ITK_WRAP_OBJECT(name) \
typedef itk::name::name itk##name; \
typedef itk::name::Pointer::SmartPointer itk##name##_Pointer

// define the template class wrapper macros

// Wrap an itk object with one template parameter 
// The wrapname is the name that will be used and usually
// encodes the template parameters, i.e. itk::Image<float, 2> would
// itkImageF2

#define ITK_WRAP_OBJECT1(name, arg1, wrapname) \
typedef itk::name<arg1 >::name wrapname; \
typedef itk::name<arg1 >::Pointer::SmartPointer wrapname##_Pointer 

// same as ITK_WRAP_OBJECT1 but also wraps the super class 
#define ITK_WRAP_OBJECT1_WITH_SUPERCLASS(name, arg1, wrapname) \
ITK_WRAP_OBJECT1(name, arg1, wrapname); \
typedef itk::name<arg1 >::Superclass::Self wrapname##_Superclass; \
typedef itk::name<arg1 >::Superclass::Pointer::SmartPointer wrapname##_Superclass_Pointer

// same as ITK_WRAP_OBJECT1 but for two template parameters
#define ITK_WRAP_OBJECT2(name, arg1, arg2, wrapname) \
typedef itk::name<arg1, arg2 >::name wrapname; \
typedef itk::name<arg1, arg2 >::Pointer::SmartPointer wrapname##_Pointer

#define ITK_WRAP_OBJECT2_WITH_SUPERCLASS(name, arg1, arg2, wrapname) \
ITK_WRAP_OBJECT2(name, arg1, arg2, wrapname); \
typedef itk::name<arg1,arg2 >::Superclass::Self wrapname##_Superclass; \
typedef itk::name<arg1,arg2 >::Superclass::Pointer::SmartPointer wrapname##_Superclass_Pointer

// same as ITK_WRAP_OBJECT2 but for three template parameters
#define ITK_WRAP_OBJECT3(name, arg1, arg2, arg3, wrapname) \
typedef itk::name<arg1, arg2, arg3 >::name wrapname; \
typedef itk::name<arg1, arg2, arg3 >::Pointer::SmartPointer wrapname##_Pointer

#define ITK_WRAP_OBJECT3_WITH_SUPERCLASS(name, arg1, arg2, arg3, wrapname) \
ITK_WRAP_OBJECT3(name, arg1, arg2, arg3, wrapname); \
typedef itk::name<arg1,arg2, arg3 >::Superclass::Self wrapname##_Superclass; \
typedef itk::name<arg1,arg2, arg3 >::Superclass::Pointer::SmartPointer wrapname##_Superclass_Pointer

// same as ITK_WRAP_OBJECT4 but for three template parameters
#define ITK_WRAP_OBJECT4(name, arg1, arg2, arg3, arg4, wrapname) \
typedef itk::name<arg1, arg2, arg3, arg4 >::name wrapname; \
typedef itk::name<arg1, arg2, arg3, arg4 >::Pointer::SmartPointer wrapname##_Pointer

#define ITK_WRAP_OBJECT4_WITH_SUPERCLASS(name, arg1, arg2, arg3, arg4, wrapname) \
ITK_WRAP_OBJECT4(name, arg1, arg2, arg3, arg4, wrapname); \
typedef itk::name<arg1,arg2, arg3, arg4 >::Superclass::Self wrapname##_Superclass; \
typedef itk::name<arg1,arg2, arg3, arg4 >::Superclass::Pointer::SmartPointer wrapname##_Superclass_Pointer