X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fappli%2Fbbfy%2Fbbfy.cpp;h=c22be3230c127a088389c5f7c3401acecee11f9d;hb=13aaa782a7f5942f5072728201750c06afbdfb2d;hp=8123db20035a61d81195550b62097b2039284ad6;hpb=32f28c419e0c356a18a288af2ea6ffdd32a259ca;p=bbtk.git diff --git a/kernel/appli/bbfy/bbfy.cpp b/kernel/appli/bbfy/bbfy.cpp index 8123db2..c22be32 100644 --- a/kernel/appli/bbfy/bbfy.cpp +++ b/kernel/appli/bbfy/bbfy.cpp @@ -3,7 +3,7 @@ #endif #include -#include "xmlParser.h" +#include "bbtkXML.h" #include #include #include @@ -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; @@ -139,27 +141,6 @@ void bbfy::CreateBlackBox() //========================================================================== -//========================================================================== -void GetTextOrClear(const XMLNode& node, std::string& var) -{ - if (node.nText()>0) - { - var = node.getText(); - } - else if (node.nClear()>0) - { - var = node.getClear().lpszValue; - } - else - { - std::string mess("Error : element <"); - mess += node.getName(); - mess += "> : no text nor
 clear tag found";
-      throw bbfyException(mess);
-    }
-}
-//==========================================================================
-
 
 //==========================================================================
 void bbfy::ParseXML()
@@ -207,7 +188,7 @@ void bbfy::ParseXML()
 	    {
 	      throw bbfyException("Error : blackbox type '"+itkImageToImageFilterString+"' but no  tag found (mandatory)");
 	    }
-	  GetTextOrClear(BB.getChildNode("itkparent"),mItkParent);
+	  bbtk::GetTextOrClear(BB.getChildNode("itkparent"),mItkParent);
 	  // 
 	  mGeneric = false;
 	  if (BB.isAttributeSet("generic")) mGeneric=true;
@@ -222,7 +203,7 @@ void bbfy::ParseXML()
 				  +vtkImageAlgorithmString
 				  +"' but no  tag found (mandatory)");
 	    }
-	  GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
+	  bbtk::GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
 	  // 
 	}
     else if (bbtype == vtkPolyDataAlgorithmString )
@@ -235,7 +216,7 @@ void bbfy::ParseXML()
 				  +vtkPolyDataAlgorithmString
 				  +"' but no  tag found (mandatory)");
 	    }
-	  GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
+	  bbtk::GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
 	  // 
 	}
      else 
@@ -269,7 +250,7 @@ void bbfy::ParseXML()
   for (i=0,j=0; ispecial=="itk input")
 	{
 	  mFile << "  BBTK_DECLARE_ITK_INPUT(" 
-		<< "itkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -599,7 +620,6 @@ void bbfy::CreateHeader()
 	{
 	  if (mType == vtkImageAlgorithm) {
 	  mFile << "  BBTK_DECLARE_VTK_IMAGE_ALGORITHM_INPUT(" 
-		<< "vtkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -607,7 +627,6 @@ void bbfy::CreateHeader()
 	  } 
 	  else if (mType == vtkPolyDataAlgorithm) {
 	  mFile << "  BBTK_DECLARE_POLY_DATA_ALGORITHM_INPUT(" 
-		<< "vtkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -617,7 +636,6 @@ void bbfy::CreateHeader()
       else if (ioi->special=="itk parameter")
 	{
 	  mFile << "  BBTK_DECLARE_ITK_PARAM(" 
-		<< "itkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -626,7 +644,6 @@ void bbfy::CreateHeader()
       else if (ioi->special=="vtk parameter")
 	{
 	  mFile << "  BBTK_DECLARE_VTK_PARAM(" 
-		<< "vtkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -657,7 +674,6 @@ void bbfy::CreateHeader()
       else if (ioi->special=="itk output")
 	{
 	  mFile << "  BBTK_DECLARE_ITK_OUTPUT(" 
-		<< "itkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -666,7 +682,6 @@ void bbfy::CreateHeader()
       else if (ioi->special=="vtk output")
 	{
 	  mFile << "  BBTK_DECLARE_VTK_OUTPUT(" 
-		<< "vtkParent,"
 		<< ioi->name
 		<< ","
 		<< ioi->type
@@ -683,37 +698,34 @@ void bbfy::CreateHeader()
 	}
     }
   
-
   // Process
   if ((mType == STD)||(mProcess.size()))
     {
-      mFile << "  BBTK_PROCESS(DoProcess);\n" ;
-      mFile << "  void DoProcess();\n";
+      mFile << "  BBTK_PROCESS(Process);\n" ;
+      mFile << "  void Process();\n";
     }
   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(DoCreateWidget);\n" ;
-       mFile << "  void DoCreateWidget();\n";
+       mFile << "  BBTK_CREATE_WIDGET(CreateWidget);\n" ;
+       mFile << "  void CreateWidget(wxWindow*);\n";
     }
 
 
   // EO black box declaration
   mFile << "};\n\n";
 
-
-
   // BO black box description
   if (mTemplateParam.size()==0)
     {
@@ -746,6 +758,11 @@ void bbfy::CreateHeader()
   
   // Category
   mFile << "BBTK_CATEGORY(\""<name << ",\""
-	    << ioi->descr << "\"," <<  ioi->type <<");\n";
+	    << ioi->descr << "\"," <<  ioi->type << ",\"" 
+	    << ioi->nature<<"\");\n";
     }
   
   // Outputs
@@ -774,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
@@ -837,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
@@ -982,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("
@@ -1006,34 +1025,35 @@ void bbfy::CreateCode()
 	    << mName << ")\n";
 
       // Implementation
-      mFile << "BBTK_USER_BLACK_BOX_IMPLEMENTATION("
+      mFile << "BBTK_BLACK_BOX_IMPLEMENTATION("
 	    << mName << ","  
 	    << mParentBlackBox << ");\n"; 
     }
   // Process
   if ((mType == STD)||(mProcess.size()))
     {
-      mFile << "void "<