]> Creatis software - bbtk.git/blobdiff - kernel/appli/bbfy/bbfy.cpp
*** empty log message ***
[bbtk.git] / kernel / appli / bbfy / bbfy.cpp
index 7ec9442d94765335c5097b4f2964d049d8fe2f79..a315ed9c314620297de9852a4c213b830bfc0ee7 100644 (file)
@@ -77,6 +77,7 @@ private:
   std::string mTemplateImplementation;
 
   std::vector<std::string> mInclude;
+  std::vector<std::string> 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,19 @@ void bbfy::ParseXML()
     }
 
   // UserConstructor body
-  if (BB.nChildNode("constructor"))
+  if (BB.nChildNode("userconstructor"))
     {
-      bbtk::GetTextOrClear(BB.getChildNode("constructor"),mUserConstructor);
+      bbtk::GetTextOrClear(BB.getChildNode("userconstructor"),mUserConstructor);
     }
   // UserCopyConstructor body
-  if (BB.nChildNode("copyconstructor"))
+  if (BB.nChildNode("usercopyconstructor"))
     {
-      bbtk::GetTextOrClear(BB.getChildNode("copyconstructor"),mUserCopyConstructor);
+      bbtk::GetTextOrClear(BB.getChildNode("usercopyconstructor"),mUserCopyConstructor);
     }
   // UserDestructor body
-  if (BB.nChildNode("destructor"))
+  if (BB.nChildNode("userdestructor"))
     {
-      bbtk::GetTextOrClear(BB.getChildNode("destructor"),mUserDestructor);
+      bbtk::GetTextOrClear(BB.getChildNode("userdestructor"),mUserDestructor);
     }
  
     // Template parameters
@@ -326,6 +328,13 @@ void bbfy::ParseXML()
       bbtk::GetTextOrClear(BB.getChildNode("include",&j),val);
       mInclude.push_back(val);
     }
+  // Typedef
+  for (i=0,j=0; i<BB.nChildNode("typedef"); i++) 
+    {
+      std::string val;
+      bbtk::GetTextOrClear(BB.getChildNode("typedef",&j),val);
+      mTypedef.push_back(val);
+    }
   
   // Inputs
   for (i=0,j=0; i<BB.nChildNode("input"); i++) 
@@ -353,6 +362,11 @@ void bbfy::ParseXML()
          io.special =  n.getAttribute("special");  
        }
 
+      if (n.isAttributeSet("nature")) 
+       {
+         io.nature =  n.getAttribute("nature");  
+       }
+
       if (n.isAttributeSet("generic_type")) 
        {
          io.generic_type =  n.getAttribute("generic_type");  
@@ -387,6 +401,11 @@ void bbfy::ParseXML()
          io.special =  n.getAttribute("special");  
        }
 
+      if (n.isAttributeSet("nature")) 
+       {
+         io.nature =  n.getAttribute("nature");  
+       }
+
       if (n.isAttributeSet("generic_type")) 
        {
          io.generic_type =  n.getAttribute("generic_type");  
@@ -522,7 +541,7 @@ void bbfy::CreateHeader()
   mFile << "{\n";
 
   // Interface
-  mFile << "  BBTK_USER_BLACK_BOX_INTERFACE("
+  mFile << "  BBTK_BLACK_BOX_INTERFACE("
        << mName << ","
        << mParentBlackBox << ");\n";
 
@@ -537,7 +556,11 @@ void bbfy::CreateHeader()
        (mType == vtkPolyDataAlgorithm) )
     {
       mFile << "  typedef " <<mVtkParent <<" vtkParent;"<<std::endl;
-      mFile << "  void bbDelete() { vtkParent::Delete(); }"<<std::endl;
+      mFile << "  BBTK_VTK_DELETE(vtkParent);"<<std::endl;
+    }
+  for (i=mTypedef.begin(); i!=mTypedef.end(); ++i) 
+    {
+      mFile << *i <<"\n";
     }
 
   // Declare user constructor / copy cons /destr 
@@ -666,8 +689,8 @@ 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)
     {   
@@ -683,8 +706,8 @@ void bbfy::CreateHeader()
   // CreateWidget
   if (mIsWidget) 
     {
-       mFile << "  BBTK_CREATE_WIDGET(DoCreateWidget);\n" ;
-       mFile << "  void DoCreateWidget();\n";
+       mFile << "  BBTK_CREATE_WIDGET(CreateWidget);\n" ;
+       mFile << "  void CreateWidget();\n";
     }
 
 
@@ -725,6 +748,11 @@ void bbfy::CreateHeader()
   
   // Category
   mFile << "BBTK_CATEGORY(\""<<mCategory<< "\");\n"; 
+
+  for (i=mTypedef.begin(); i!=mTypedef.end(); ++i) 
+    {
+      mFile << *i <<"\n";
+    }
   
   // Inputs
   for (ioi=mInput.begin(); ioi!=mInput.end(); ++ioi) 
@@ -738,7 +766,8 @@ void bbfy::CreateHeader()
          mFile << "BBTK_INPUT(";
        } 
       mFile << mName << "," << ioi->name << ",\""
-           << ioi->descr << "\"," <<  ioi->type <<");\n";
+           << ioi->descr << "\"," <<  ioi->type << ",\"" 
+           << ioi->nature<<"\");\n";
     }
   
   // Outputs
@@ -753,7 +782,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 +846,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 +991,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,21 +1015,21 @@ 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 "<<mName<<"::DoProcess()\n{\n";
+      mFile << "void "<<mName<<"::Process()\n{\n";
       mFile << mProcess << "\n";
       mFile << "}\n";
     }
   // CreateWidget
   if (mIsWidget)
     {
-      mFile << "void "<<mName<<"::DoCreateWidget()\n{\n";
+      mFile << "void "<<mName<<"::CreateWidget()\n{\n";
       mFile << mCreateWidget << "\n";
       mFile << "}\n";
     }