]> Creatis software - bbtk.git/blobdiff - kernel/appli/bbfy/bbfy.cpp
*** empty log message ***
[bbtk.git] / kernel / appli / bbfy / bbfy.cpp
index 347babc2b89afcf162727fc8b7eeff4cd77c41a5..390e5b0ddb8e4e24ebc29469b13a91180da05646 100644 (file)
@@ -63,7 +63,7 @@ private:
   bool mIsWidget;
   std::string mParentBlackBox;
   std::string mItkParent;
-  std::string mVtkParent;
+  std::string mVtkObject;
   bool mGeneric;
   std::string mAuthor;
   std::string mDescription;
@@ -79,9 +79,9 @@ private:
   std::vector<std::string> mInclude;
   std::vector<std::string> mTypedef;
 
-  std::string mUserConstructor;
-  std::string mUserCopyConstructor;
-  std::string mUserDestructor;
+  std::string mUserSetDefaultValues;
+  std::string mUserInitializeProcessing;
+  std::string mUserFinalizeProcessing;
 
   typedef struct
   {
@@ -196,27 +196,27 @@ void bbfy::ParseXML()
       else if (bbtype == vtkImageAlgorithmString)
        {
          mType = vtkImageAlgorithm;
-         // Looks for <vtkparent> tag
-         if (!BB.nChildNode("vtkparent")) 
+         // Looks for <vtkobject> tag
+         if (!BB.nChildNode("vtkobject")) 
            {
              throw bbfyException("Error : blackbox type '"
                                  +vtkImageAlgorithmString
-                                 +"' but no <vtkparent> tag found (mandatory)");
+                                 +"' but no <vtkobject> tag found (mandatory)");
            }
-         bbtk::GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
+         bbtk::GetTextOrClear(BB.getChildNode("vtkobject"),mVtkObject);
          // 
        }
     else if (bbtype == vtkPolyDataAlgorithmString )
        {
          mType = vtkPolyDataAlgorithm;
-         // Looks for <vtkparent> tag
-         if (!BB.nChildNode("vtkparent")) 
+         // Looks for <vtkobject> tag
+         if (!BB.nChildNode("vtkobject")) 
            {
              throw bbfyException("Error : blackbox type '"
                                  +vtkPolyDataAlgorithmString
-                                 +"' but no <vtkparent> tag found (mandatory)");
+                                 +"' but no <vtkobject> tag found (mandatory)");
            }
-         bbtk::GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
+         bbtk::GetTextOrClear(BB.getChildNode("vtkobject"),mVtkObject);
          // 
        }
      else 
@@ -276,25 +276,30 @@ void bbfy::ParseXML()
       bbtk::GetTextOrClear(BB.getChildNode("namespace"),mNamespace);
     }
 
-  // UserConstructor body
-  if (BB.nChildNode("constructor"))
+  // UserSetDefaultValues body
+  if (BB.nChildNode("defaultValues"))
     {
-      bbtk::GetTextOrClear(BB.getChildNode("constructor"),mUserConstructor);
+      bbtk::GetTextOrClear(BB.getChildNode("defaultValues"),
+                          mUserSetDefaultValues);
     }
     
-  // UserCopyConstructor body
-  if (BB.nChildNode("copyconstructor"))
+  // UserInitializeProcessing body
+  if (BB.nChildNode("initializeProcessing"))
     {
-      bbtk::GetTextOrClear(BB.getChildNode("copyconstructor"),mUserCopyConstructor);
+      bbtk::GetTextOrClear(BB.getChildNode("initializeProcessing"),
+                          mUserInitializeProcessing);
     }
     
 // UserDestructor body
-  if (BB.nChildNode("destructor"))
// UserFinalizeProcessing body
+  if (BB.nChildNode("finalizeProcessing"))
     {
-      bbtk::GetTextOrClear(BB.getChildNode("destructor"),mUserDestructor);
+      bbtk::GetTextOrClear(BB.getChildNode("finalizeProcessing"),
+                          mUserFinalizeProcessing);
     }
-    // Template parameters
+
+
+
+     // Template parameters
   //  mNbTemplateParam = BB.nChildNode("template");
 
   if ( BB.nChildNode("template") > 0)
@@ -430,6 +435,30 @@ void bbfy::ParseXML()
      {
        bbtk::GetTextOrClear(BB.getChildNode("createwidget"),mCreateWidget);
      }
+
+
+
+
+
+
+
+   // OBSOLETE/UNSUPPORTED TAGS
+  // WARN IF OBSOLETE TAGS PROVIDED
+  if (BB.nChildNode("constructor"))
+    {
+      std::cout << "WARNING !!! The tag <constructor> is obsolete !!"<<std::endl;
+    }
+  if (BB.nChildNode("destructor"))
+    {
+      std::cout << "WARNING !!! The tag <destructor> is obsolete !!"<<std::endl;
+    }
+  if (BB.nChildNode("copy_constructor"))
+    {
+      std::cout << "WARNING !!! The tag <copy_constructor> is obsolete !!"<<std::endl;
+    }
+
+
+
 }
 //==========================================================================
 
@@ -539,11 +568,6 @@ void bbfy::CreateHeader()
     {
       mFile << "   public " << mItkParent <<",\n";
     }
-  else if ( (mType == vtkImageAlgorithm) ||
-           (mType == vtkPolyDataAlgorithm) )
-    {
-      mFile << "   public " << mVtkParent <<",\n";
-    }
 
   mFile << "   public "<<mParentBlackBox << "\n";
 
@@ -567,9 +591,10 @@ void bbfy::CreateHeader()
       mFile << "  BBTK_VTK_BLACK_BOX_INTERFACE("
            << mName << ","
            << mParentBlackBox << ","
-           << mVtkParent 
+           << mVtkObject
            << ");\n";
     }
+       
   // Default
   else 
     {
@@ -583,17 +608,6 @@ void bbfy::CreateHeader()
       mFile << *i <<"\n";
     }
 
-  // Declare user constructor / copy cons /destr 
-  mFile << "//=================================================================="<<std::endl;
-  mFile << "/// User callback called in the box contructor"<<std::endl;
-
-  mFile << "virtual void bbUserConstructor();"<<std::endl;
-  mFile << "/// User callback called in the box copy constructor"<<std::endl;
-  mFile << "virtual void bbUserCopyConstructor(bbtk::BlackBox::Pointer);"<<std::endl;
-  mFile << "/// User callback called in the box destructor"<<std::endl;
-  mFile << "virtual void bbUserDestructor();"<<std::endl;
-  mFile << "//=================================================================="<<std::endl; 
-
 
 
   // Inputs
@@ -1044,25 +1058,36 @@ void bbfy::CreateCode()
       mFile << "}\n";
     }
 
-  // User constr / copy constr / destr implementation
-  mFile <<"void "<<mName<<"::bbUserConstructor()"<<std::endl;
-  mFile << "{"<<std::endl;
-  //mFile<<"bbtkDebugMessage(\"Kernel\",9,\""<<mName<<::bbUserConstructor()"<<std::endl);"<<std::endl;
-  
-  mFile << mUserConstructor << std::endl;
+               
+  // User Set Default Values  
+  mFile <<"void "<<mName<<"::bbUserSetDefaultValues()"<<std::endl;
+  mFile << "{"<<std::endl;  
+       if ( (mType == vtkImageAlgorithm) || (mType == vtkPolyDataAlgorithm) )
+       {
+               mFile << "   BBTK_VTK_SET_DEFAULT_VALUES();\n";
+       }
+       mFile << mUserSetDefaultValues << std::endl;
   mFile << "}" << std::endl;
 
-  mFile <<"void "<<mName<<"::bbUserCopyConstructor(bbtk::BlackBox::Pointer)"
+  // User Initialize Processing
+  mFile <<"void "<<mName<<"::bbUserInitializeProcessing()"
        <<std::endl;
   mFile << "{"<<std::endl;
-  //mFile<<"bbtkDebugMessage(\"Kernel\",9,\""<<mName<<::bbUserCopyConstructor()"<<std::endl);"<<std::endl;
-  mFile << mUserCopyConstructor << std::endl;
+       if ( (mType == vtkImageAlgorithm) || (mType == vtkPolyDataAlgorithm) )
+       {
+               mFile <<  "  BBTK_VTK_INITIALIZE_PROCESSING();\n";
+       }
+       mFile << mUserInitializeProcessing << std::endl;
   mFile << "}" << std::endl;
 
-  mFile <<"void "<<mName<<"::bbUserDestructor()"<<std::endl;
+       // User Finalize Processing
+  mFile <<"void "<<mName<<"::bbUserFinalizeProcessing()"<<std::endl;
   mFile << "{"<<std::endl;
-  //mFile<<"bbtkDebugMessage(\"Kernel\",9,\""<<mName<<::bbUserDestructor()"<<std::endl);"<<std::endl;
-  mFile << mUserDestructor << std::endl;
+       if ( (mType == vtkImageAlgorithm) || (mType == vtkPolyDataAlgorithm) )
+       {
+               mFile << "   BBTK_VTK_FINALIZE_PROCESSING();\n";
+       }
+       mFile << mUserFinalizeProcessing << std::endl;
   mFile << "}" << std::endl;