00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "freITKFilterCtrlrs.h"
00023
00024 #include "freDanielssonDistanceMapImageFilterController.h"
00025 #include "freBinaryThresholdImageFilterController.h"
00026 #include "freIsoContourDistanceImageFilterController.h"
00027 #include "freFastChamferDistanceImageFilterController.h"
00028 #include "freWarpImageFilterController.h"
00029 #include "freNormalizeImageFilterController.h"
00030 #include "freSubtractImageFilterController.h"
00031 #include "freShrinkImageFilterController.h"
00032 #include "freAbsoluteValueDifferenceImageFilterController.h"
00033 #include "freIterativeInverseDeformationFieldImageFilterController.h"
00034 #include "freOrientImageFilterController.h"
00035 #include "freMaskImageFilterController.h"
00036 #include "freResampleImageFilterController.h"
00037 #include "freWeightedAddImageFilterController.h"
00038 #include "freCheckerBoardImageFilterController.h"
00039 #include "freDiscreteGaussianImageFilterController.h"
00040
00041 namespace FREE
00042 {
00043
00044 #ifndef __FREE_DISABLE_DLL_INTERFACE
00045
00046 namespace
00047 {
00048
00049 extern "C"
00050 #ifdef _WIN32
00051 __declspec( dllexport )
00052 #endif
00053 void FREEGetControllerList(int& iControllerCount, const char**& pControllerIDs)
00054 {
00055 ::FREE::ITKFilterCtrlrs::GetControllerList(iControllerCount, pControllerIDs);
00056 };
00057
00058 extern "C"
00059 #ifdef _WIN32
00060 __declspec( dllexport )
00061 #endif
00062 GenericComponentController* FREECreateController(const char* pControllerID)
00063 {
00064 return ::FREE::ITKFilterCtrlrs::CreateController(pControllerID);
00065 };
00066
00067 extern "C"
00068 #ifdef _WIN32
00069 __declspec( dllexport )
00070 #endif
00071 bool FREEDeleteController (GenericComponentController* pController)
00072 {
00073 if (pController)
00074 {
00075 delete pController;
00076 }
00077 return true;
00078 };
00079
00080 extern "C"
00081 #ifdef _WIN32
00082 __declspec( dllexport )
00083 #endif
00084 void FREELinkCentralAsDedicated (::FREE::ControllerCentral::ControllerListType* pDedicatedControllerList,
00085 ::FREE::ControllerCentral::LibraryHandleListType* pDedicatedLibraryHandles,
00086 ::FREE::ProgressEventBase* pfnOnControl, ::FREE::ProgressEventBase* pfnOnBuild,
00087 ::FREE::ControllerCentral::CtrlCallbackListType* pCtrlCallbackList,
00088 ::FREE::ControllerCentral::CtrlProgressListType* pCtrlProgressList,
00089 ::itk::MutexLock* pGlobalCallbackMutex,
00090 ::itk::MutexLock* pGlobalProgressMutex)
00091 {
00092 ::FREE::ControllerCentral::LinkControllerCentralAsDedicated(pDedicatedControllerList,pDedicatedLibraryHandles,pfnOnControl,pfnOnBuild,pCtrlCallbackList,pCtrlProgressList,pGlobalCallbackMutex,pGlobalProgressMutex);
00093 }
00094
00095 }
00096
00097 #endif // __FREE_DISABLE_DLL_INTERFACE
00098
00099
00103
00104
00105 void ITKFilterCtrlrs::RegisterAllControllers(ControllerCentral* pCentral)
00106 {
00107 int iCount = 0;
00108 const char** pControllerIDs = 0;
00109
00110 ITKFilterCtrlrs::GetControllerList(iCount,pControllerIDs);
00111
00112 for (int iPos = 0; iPos < iCount; iPos++)
00113 {
00114 pCentral->RegisterController(ITKFilterCtrlrs::CreateController(pControllerIDs[iPos]));
00115 }
00116
00117 if (pControllerIDs) delete pControllerIDs;
00118 };
00119
00120 void ITKFilterCtrlrs::GetControllerList(int& iControllerCount, const char**& pControllerIDs)
00121 {
00122 typedef std::vector<const char*> ControllerListType;
00123 ControllerListType internalControllerList;
00124
00125 internalControllerList.push_back(ControllerID::AbsoluteValueDifference2DImageFilterController);
00126 internalControllerList.push_back(ControllerID::AbsoluteValueDifference3DImageFilterController);
00127 internalControllerList.push_back(ControllerID::BinaryThreshold2DImageFilterController);
00128 internalControllerList.push_back(ControllerID::BinaryThreshold3DImageFilterController);
00129 internalControllerList.push_back(ControllerID::CheckerBoard2DImageFilterController);
00130 internalControllerList.push_back(ControllerID::CheckerBoard3DImageFilterController);
00131 internalControllerList.push_back(ControllerID::DanielssonDistanceMap2DImageFilterController);
00132 internalControllerList.push_back(ControllerID::DanielssonDistanceMap3DImageFilterController);
00133 internalControllerList.push_back(ControllerID::DiscreteGaussian2DImageFilterController);
00134 internalControllerList.push_back(ControllerID::DiscreteGaussian3DImageFilterController);
00135 internalControllerList.push_back(ControllerID::FastChamferDistance2DImageFilterController);
00136 internalControllerList.push_back(ControllerID::FastChamferDistance3DImageFilterController);
00137 internalControllerList.push_back(ControllerID::IsoContourDistanceImage2DFilterController);
00138 internalControllerList.push_back(ControllerID::IsoContourDistanceImage3DFilterController);
00139 internalControllerList.push_back(ControllerID::IterativeInverseDeformationField2DImageFilterController);
00140 internalControllerList.push_back(ControllerID::IterativeInverseDeformationField3DImageFilterController);
00141 internalControllerList.push_back(ControllerID::Mask2DImageFilterController);
00142 internalControllerList.push_back(ControllerID::Mask3DImageFilterController);
00143 internalControllerList.push_back(ControllerID::Mask2DTransformFieldFilterController);
00144 internalControllerList.push_back(ControllerID::Mask3DTransformFieldFilterController);
00145 internalControllerList.push_back(ControllerID::Normalize2DImageFilterController);
00146 internalControllerList.push_back(ControllerID::Normalize3DImageFilterController);
00147 internalControllerList.push_back(ControllerID::Orient3DImageFilterController);
00148 internalControllerList.push_back(ControllerID::Resample2DImageFilterController);
00149 internalControllerList.push_back(ControllerID::Resample3DImageFilterController);
00150 internalControllerList.push_back(ControllerID::Shrink2DImageFilterController);
00151 internalControllerList.push_back(ControllerID::Shrink3DImageFilterController);
00152 internalControllerList.push_back(ControllerID::Subtract2DImageFilterController);
00153 internalControllerList.push_back(ControllerID::Subtract3DImageFilterController);
00154 internalControllerList.push_back(ControllerID::Warp2DImageFilterController);
00155 internalControllerList.push_back(ControllerID::Warp3DImageFilterController);
00156 internalControllerList.push_back(ControllerID::WeightedAdd2DImageFilterController);
00157 internalControllerList.push_back(ControllerID::WeightedAdd3DImageFilterController);
00158
00159
00160 iControllerCount = internalControllerList.size();
00161 pControllerIDs = new const char*[iControllerCount];
00162 for (unsigned int iPos = 0; iPos<iControllerCount; iPos++)
00163 {
00164 pControllerIDs[iPos] = internalControllerList.at(iPos);
00165 }
00166 };
00167
00168 GenericComponentController* ITKFilterCtrlrs::CreateController(const char* pControllerID)
00169 {
00170 std::string sControllerID(pControllerID);
00171
00172 if (sControllerID == ControllerID::BinaryThreshold2DImageFilterController) return (GenericComponentController*) new BinaryThreshold2DImageFilterController;
00173 if (sControllerID == ControllerID::BinaryThreshold3DImageFilterController) return (GenericComponentController*) new BinaryThreshold3DImageFilterController;
00174 if (sControllerID == ControllerID::DanielssonDistanceMap2DImageFilterController) return (GenericComponentController*) new DanielssonDistanceMap2DImageFilterController;
00175 if (sControllerID == ControllerID::DanielssonDistanceMap3DImageFilterController) return (GenericComponentController*) new DanielssonDistanceMap3DImageFilterController;
00176 if (sControllerID == ControllerID::IsoContourDistanceImage2DFilterController) return (GenericComponentController*) new IsoContourDistanceImage2DFilterController;
00177 if (sControllerID == ControllerID::IsoContourDistanceImage3DFilterController) return (GenericComponentController*) new IsoContourDistanceImage3DFilterController;
00178 if (sControllerID == ControllerID::FastChamferDistance2DImageFilterController) return (GenericComponentController*) new FastChamferDistance2DImageFilterController;
00179 if (sControllerID == ControllerID::FastChamferDistance3DImageFilterController) return (GenericComponentController*) new FastChamferDistance3DImageFilterController;
00180 if (sControllerID == ControllerID::Warp2DImageFilterController) return (GenericComponentController*) new Warp2DImageFilterController;
00181 if (sControllerID == ControllerID::Warp3DImageFilterController) return (GenericComponentController*) new Warp3DImageFilterController;
00182 if (sControllerID == ControllerID::Normalize2DImageFilterController) return (GenericComponentController*) new Normalize2DImageFilterController;
00183 if (sControllerID == ControllerID::Normalize3DImageFilterController) return (GenericComponentController*) new Normalize3DImageFilterController;
00184 if (sControllerID == ControllerID::AbsoluteValueDifference2DImageFilterController) return (GenericComponentController*) new AbsoluteValueDifference2DImageFilterController;
00185 if (sControllerID == ControllerID::AbsoluteValueDifference3DImageFilterController) return (GenericComponentController*) new AbsoluteValueDifference3DImageFilterController;
00186 if (sControllerID == ControllerID::Subtract2DImageFilterController) return (GenericComponentController*) new Subtract2DImageFilterController;
00187 if (sControllerID == ControllerID::Subtract3DImageFilterController) return (GenericComponentController*) new Subtract3DImageFilterController;
00188 if (sControllerID == ControllerID::Shrink2DImageFilterController) return (GenericComponentController*) new Shrink2DImageFilterController;
00189 if (sControllerID == ControllerID::Shrink3DImageFilterController) return (GenericComponentController*) new Shrink3DImageFilterController;
00190 if (sControllerID == ControllerID::IterativeInverseDeformationField2DImageFilterController) return (GenericComponentController*) new IterativeInverseDeformationField2DImageFilterController;
00191 if (sControllerID == ControllerID::IterativeInverseDeformationField3DImageFilterController) return (GenericComponentController*) new IterativeInverseDeformationField3DImageFilterController;
00192 if (sControllerID == ControllerID::Orient3DImageFilterController) return (GenericComponentController*) new Orient3DImageFilterController;
00193 if (sControllerID == ControllerID::Mask2DImageFilterController) return (GenericComponentController*) new Mask2DImageFilterController;
00194 if (sControllerID == ControllerID::Mask3DImageFilterController) return (GenericComponentController*) new Mask3DImageFilterController;
00195 if (sControllerID == ControllerID::Mask2DTransformFieldFilterController) return (GenericComponentController*) new Mask2DTransformFieldFilterController;
00196 if (sControllerID == ControllerID::Mask3DTransformFieldFilterController) return (GenericComponentController*) new Mask3DTransformFieldFilterController;
00197 if (sControllerID == ControllerID::Resample2DImageFilterController) return (GenericComponentController*) new Resample2DImageFilterController;
00198 if (sControllerID == ControllerID::Resample3DImageFilterController) return (GenericComponentController*) new Resample3DImageFilterController;
00199 if (sControllerID == ControllerID::WeightedAdd2DImageFilterController) return (GenericComponentController*) new WeightedAdd2DImageFilterController;
00200 if (sControllerID == ControllerID::WeightedAdd3DImageFilterController) return (GenericComponentController*) new WeightedAdd3DImageFilterController;
00201 if (sControllerID == ControllerID::CheckerBoard2DImageFilterController) return (GenericComponentController*) new CheckerBoard2DImageFilterController;
00202 if (sControllerID == ControllerID::CheckerBoard3DImageFilterController) return (GenericComponentController*) new CheckerBoard3DImageFilterController;
00203 if (sControllerID == ControllerID::DiscreteGaussian2DImageFilterController) return (GenericComponentController*) new DiscreteGaussian2DImageFilterController;
00204 if (sControllerID == ControllerID::DiscreteGaussian3DImageFilterController) return (GenericComponentController*) new DiscreteGaussian3DImageFilterController;
00205
00206 return NULL;
00207 };
00208
00209
00210 }