37 const std::string &strParam1=
"",
38 MLint intParam1=-965386,
39 const std::string &strParam2=
"",
40 MLint intParam2=-965386,
41 const std::string &strParam3=
"",
42 MLint intParam3=-965386,
43 const std::string &strParam4=
"",
44 MLint intParam4=-965386){
46 if (intParam1 != -965386){
48 snprintf(strBuf, 511,
"%lld", intParam1);
52 if (intParam2 != -965386){
54 snprintf(strBuf, 511,
"%lld", intParam2);
58 if (intParam3 != -965386){
60 snprintf(strBuf, 511,
"%lld", intParam3);
64 if (intParam4 != -965386){
66 snprintf(strBuf, 511,
"%lld", intParam4);
78#define ML_ITK_WRAPPER_0_2D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
79 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_0, \
80 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
81 ML_IMPLEMENT_ALL_ITK_2D_CASES, _ML_ITK_DETERMINE_OUT_REGION_0)
84#define ML_ITK_WRAPPER_1_2D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
85 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
86 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
87 ML_IMPLEMENT_ALL_ITK_2D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
90#define ML_ITK_WRAPPER_2_2D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
91 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
92 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
93 ML_IMPLEMENT_ALL_ITK_2D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
96#define ML_ITK_WRAPPER_3_2D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
97 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
98 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
99 ML_IMPLEMENT_ALL_ITK_2D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
107#define ML_ITK_WRAPPER_0_3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
108 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_0, \
109 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
110 ML_IMPLEMENT_ALL_ITK_3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_0)
113#define ML_ITK_WRAPPER_1_3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
114 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
115 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
116 ML_IMPLEMENT_ALL_ITK_3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
119#define ML_ITK_WRAPPER_2_3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
120 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
121 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
122 ML_IMPLEMENT_ALL_ITK_3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
125#define ML_ITK_WRAPPER_3_3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
126 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
127 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
128 ML_IMPLEMENT_ALL_ITK_3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
136#define ML_ITK_WRAPPER_0_2D3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
137 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_0, \
138 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
139 ML_IMPLEMENT_ALL_ITK_2D3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_0)
142#define ML_ITK_WRAPPER_1_2D3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
143 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
144 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
145 ML_IMPLEMENT_ALL_ITK_2D3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
148#define ML_ITK_WRAPPER_2_2D3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
149 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
150 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
151 ML_IMPLEMENT_ALL_ITK_2D3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
154#define ML_ITK_WRAPPER_3_2D3D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
155 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
156 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
157 ML_IMPLEMENT_ALL_ITK_2D3D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
164#define ML_ITK_WRAPPER_0_6D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
165 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_0, \
166 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, \
167 ML_IMPLEMENT_ALL_ITK_6D_CASES, _ML_ITK_DETERMINE_OUT_REGION_0)
170#define ML_ITK_WRAPPER_1_6D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
171 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
172 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, \
173 ML_IMPLEMENT_ALL_ITK_6D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
176#define ML_ITK_WRAPPER_2_6D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
177 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
178 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, \
179 ML_IMPLEMENT_ALL_ITK_6D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
182#define ML_ITK_WRAPPER_3_6D(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
183 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
184 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, \
185 ML_IMPLEMENT_ALL_ITK_6D_CASES, _ML_ITK_DETERMINE_OUT_REGION_N)
193#define ML_ITK_WRAPPER_0_6D_SAME_DIM(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
194 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_0, \
195 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_0, ML_IMPLEMENT_ALL_ITK_6D_SAME_DIM_CASES, \
196 _ML_ITK_DETERMINE_OUT_REGION_0)
199#define ML_ITK_WRAPPER_1_6D_SAME_DIM(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
200 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
201 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_1, ML_IMPLEMENT_ALL_ITK_6D_SAME_DIM_CASES, \
202 _ML_ITK_DETERMINE_OUT_REGION_N)
205#define ML_ITK_WRAPPER_2_6D_SAME_DIM(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
206 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
207 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_2, ML_IMPLEMENT_ALL_ITK_6D_SAME_DIM_CASES, \
208 _ML_ITK_DETERMINE_OUT_REGION_N)
211#define ML_ITK_WRAPPER_3_6D_SAME_DIM(PROJECT_PREFIX, CLASS_NAME, NAMESPACE) \
212 _ML_ITK_WRAPPER(PROJECT_PREFIX, CLASS_NAME, NAMESPACE, _ML_ITK_DETERMINE_IN_REGION_N, \
213 ML_ITK_DEFAULT_WRAPPER_TYPEDEFS_3, ML_IMPLEMENT_ALL_ITK_6D_SAME_DIM_CASES, \
214 _ML_ITK_DETERMINE_OUT_REGION_N)
245template <
typename FILTER_TYPE>
274#define IMPLEMENT_ITK_INTERFACE_H(CLASS_NAME) \
280 void calculateOutputSubImage(SubImage *outSubImg, int outIndex, SubImage *inSubImgs) override;\
284 TypedObjectHolderBase *_itkObj; \
287 MLint _m_Dimension; \
290 MLDataType _m_PixelType; \
294 ImageVector _m_Shift[5]; \
298 bool _isValidFilter(){ return _itkObj && _itkObj->voidFilterPtr(); } \
302 void _createITKFilter(MLDataType dataType, MLint dim); \
305 void _destroyITKFilter(); \
308 SubImageBox _determineInRegion(MLint inIndex, const SubImageBox &outBox, MLint outIndex, MLint numActiveInputs); \
312 SubImageBox _getOutImageRegion(int numImageInputs); \
315 MLErrorCode _setFilterParameters(); \
318 MLErrorCode _getFilterParameters(); \
void * voidFilterPtr()
Access method to access the filter as a void pointer.
virtual ~TypedObjectHolderBase()
Virtual destructor implicitly destroying the typed object in the derived class.
TypedObjectHolderBase()
Constructor for the itk object's base information.
TypedObjectHolderT()
Construction and storing of the itk object managed by the smart pointer.
ItkObjPtrType _typedFilterSmartPtr
The typed version of the itk object as smart pointer.
FILTER_TYPE::Pointer ItkObjPtrType
The type of the pointer to the itk object.
ItkObjPtrType ptr()
Returns the smart pointer to the itk object.
MLint32 MLErrorCode
Type of an ML Error code.
#define ML_PRINT_ERROR(FUNC_NAME, REASON, HANDLING)
void ML_ITK_ML_PRINT_ERROR(const std::string &className, MLErrorCode errCode, std::string reason, const std::string &strParam1="", MLint intParam1=-965386, const std::string &strParam2="", MLint intParam2=-965386, const std::string &strParam3="", MLint intParam3=-965386, const std::string &strParam4="", MLint intParam4=-965386)
Include most ml specific things.