X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fappli%2Fbbfy%2Fbbfy.cpp;h=347babc2b89afcf162727fc8b7eeff4cd77c41a5;hb=c7a94dfa5f48e30bb931b45bd6d7c42954ad9ed5;hp=dce426a908dcd6538865332f9e9f692a85630a94;hpb=1549130608fe5eaec31c965f16babae0795a4afd;p=bbtk.git diff --git a/kernel/appli/bbfy/bbfy.cpp b/kernel/appli/bbfy/bbfy.cpp index dce426a..347babc 100644 --- a/kernel/appli/bbfy/bbfy.cpp +++ b/kernel/appli/bbfy/bbfy.cpp @@ -20,8 +20,8 @@ public: //========================================================================== const std::string itkImageToImageFilterString = "ITK_ImageToImageFilter"; -const std::string vtkImageAlgorithmString = "VTK_ImageAlgorithm"; -const std::string vtkPolyDataAlgorithmString = "VTK_PolyDataAlgorithm"; +const std::string vtkImageAlgorithmString = "VTK_ImageAlgorithm"; +const std::string vtkPolyDataAlgorithmString = "VTK_PolyDataAlgorithm"; //========================================================================== class bbfy @@ -77,6 +77,7 @@ private: std::string mTemplateImplementation; std::vector mInclude; + std::vector mTypedef; std::string mUserConstructor; std::string mUserCopyConstructor; @@ -86,6 +87,7 @@ private: { std::string name; std::string type; + std::string nature; std::string descr; std::string special; std::string generic_type; @@ -275,19 +277,21 @@ void bbfy::ParseXML() } // UserConstructor body - if (BB.nChildNode("userconstructor")) + if (BB.nChildNode("constructor")) { - bbtk::GetTextOrClear(BB.getChildNode("userconstructor"),mUserConstructor); + bbtk::GetTextOrClear(BB.getChildNode("constructor"),mUserConstructor); } + // UserCopyConstructor body - if (BB.nChildNode("usercopyconstructor")) + if (BB.nChildNode("copyconstructor")) { - bbtk::GetTextOrClear(BB.getChildNode("usercopyconstructor"),mUserCopyConstructor); + bbtk::GetTextOrClear(BB.getChildNode("copyconstructor"),mUserCopyConstructor); } + // UserDestructor body - if (BB.nChildNode("userdestructor")) + if (BB.nChildNode("destructor")) { - bbtk::GetTextOrClear(BB.getChildNode("userdestructor"),mUserDestructor); + bbtk::GetTextOrClear(BB.getChildNode("destructor"),mUserDestructor); } // Template parameters @@ -326,6 +330,13 @@ void bbfy::ParseXML() bbtk::GetTextOrClear(BB.getChildNode("include",&j),val); mInclude.push_back(val); } + // Typedef + for (i=0,j=0; i::iterator i; for (i=mInclude.begin(); i!=mInclude.end(); ++i) { @@ -473,6 +495,15 @@ void bbfy::CreateHeader() if (mGeneric) mFile << "#include \"bbitkImage.h\"\n"; mFile << "\n"; + if (mType == itkImageToImageFilter ) + { + mFile << "#include \"bbtkItkBlackBoxMacros.h\"\n"; + } + else if ( (mType == vtkImageAlgorithm) || + (mType == vtkPolyDataAlgorithm) ) + { + mFile << "#include \"bbtkVtkBlackBoxMacros.h\"\n"; + } // Namespace BeginNamespace(); @@ -485,9 +516,8 @@ void bbfy::CreateHeader() } // Class declaration and parents - mFile << "class /*BBTK_EXPORT*/ "<special=="itk input") { mFile << " BBTK_DECLARE_ITK_INPUT(" - << "itkParent," << ioi->name << "," << ioi->type @@ -578,7 +620,6 @@ void bbfy::CreateHeader() { if (mType == vtkImageAlgorithm) { mFile << " BBTK_DECLARE_VTK_IMAGE_ALGORITHM_INPUT(" - << "vtkParent," << ioi->name << "," << ioi->type @@ -586,7 +627,6 @@ void bbfy::CreateHeader() } else if (mType == vtkPolyDataAlgorithm) { mFile << " BBTK_DECLARE_POLY_DATA_ALGORITHM_INPUT(" - << "vtkParent," << ioi->name << "," << ioi->type @@ -596,7 +636,6 @@ void bbfy::CreateHeader() else if (ioi->special=="itk parameter") { mFile << " BBTK_DECLARE_ITK_PARAM(" - << "itkParent," << ioi->name << "," << ioi->type @@ -605,7 +644,6 @@ void bbfy::CreateHeader() else if (ioi->special=="vtk parameter") { mFile << " BBTK_DECLARE_VTK_PARAM(" - << "vtkParent," << ioi->name << "," << ioi->type @@ -636,7 +674,6 @@ void bbfy::CreateHeader() else if (ioi->special=="itk output") { mFile << " BBTK_DECLARE_ITK_OUTPUT(" - << "itkParent," << ioi->name << "," << ioi->type @@ -645,7 +682,6 @@ void bbfy::CreateHeader() else if (ioi->special=="vtk output") { mFile << " BBTK_DECLARE_VTK_OUTPUT(" - << "vtkParent," << ioi->name << "," << ioi->type @@ -662,7 +698,6 @@ void bbfy::CreateHeader() } } - // Process if ((mType == STD)||(mProcess.size())) { @@ -671,28 +706,26 @@ void bbfy::CreateHeader() } else if (mType == itkImageToImageFilter) { - mFile << " BBTK_PROCESS(itkParent::Update);\n" ; + mFile << " BBTK_ITK_PROCESS();\n" ; } else if ((mType == vtkImageAlgorithm) || (mType == vtkPolyDataAlgorithm) ) { - mFile << " BBTK_PROCESS(vtkParent::Update);\n" ; + mFile << " BBTK_VTK_PROCESS();\n" ; } // CreateWidget if (mIsWidget) { mFile << " BBTK_CREATE_WIDGET(CreateWidget);\n" ; - mFile << " void CreateWidget();\n"; + mFile << " void CreateWidget(wxWindow*);\n"; } // EO black box declaration mFile << "};\n\n"; - - // BO black box description if (mTemplateParam.size()==0) { @@ -725,6 +758,11 @@ void bbfy::CreateHeader() // Category mFile << "BBTK_CATEGORY(\""<name << ",\"" - << ioi->descr << "\"," << ioi->type <<");\n"; + << ioi->descr << "\"," << ioi->type << ",\"" + << ioi->nature<<"\");\n"; } // Outputs @@ -753,7 +792,8 @@ void bbfy::CreateHeader() mFile << "BBTK_OUTPUT("; } mFile << mName << "," << ioi->name << ",\"" - << ioi->descr << "\"," << ioi->type <<");\n"; + << ioi->descr << "\"," << ioi->type << ",\"" + << ioi->nature<<"\");\n"; } // EO black box description @@ -816,7 +856,7 @@ void bbfy::WriteGenericITKFilterHeader() mFile << "{\n"; // Interface - mFile << " BBTK_USER_BLACK_BOX_INTERFACE(" + mFile << " BBTK_BLACK_BOX_INTERFACE(" << mName << "Generic,bbtk::AtomicBlackBox);\n"; // Inputs @@ -961,14 +1001,14 @@ void bbfy::CreateCode() if (mTemplateParam.size()>0) { // Implementation - mFile << "BBTK_USER_BLACK_BOX_TEMPLATE_IMPLEMENTATION(" + mFile << "BBTK_BLACK_BOX_TEMPLATE_IMPLEMENTATION(" << mName << "," << mParentBlackBox << ");\n"; if (mGeneric) { // Implementation - mFile << "BBTK_USER_BLACK_BOX_IMPLEMENTATION(" + mFile << "BBTK_BLACK_BOX_IMPLEMENTATION(" << mName << "Generic,bbtk::AtomicBlackBox);\n"; // Package mFile << "BBTK_ADD_BLACK_BOX_TO_PACKAGE(" @@ -985,7 +1025,7 @@ void bbfy::CreateCode() << mName << ")\n"; // Implementation - mFile << "BBTK_USER_BLACK_BOX_IMPLEMENTATION(" + mFile << "BBTK_BLACK_BOX_IMPLEMENTATION(" << mName << "," << mParentBlackBox << ");\n"; } @@ -999,20 +1039,21 @@ void bbfy::CreateCode() // CreateWidget if (mIsWidget) { - mFile << "void "<