]> Creatis software - bbtk.git/commitdiff
bbfy changes ...
authorguigues <guigues>
Wed, 13 Feb 2008 11:12:20 +0000 (11:12 +0000)
committerguigues <guigues>
Wed, 13 Feb 2008 11:12:20 +0000 (11:12 +0000)
kernel/appli/bbfy/bbfy.cpp
packages/std/bbs/appli/testAdd.bbs [new file with mode: 0644]
packages/std/src/bbstdAdd.xml
packages/std/src/bbstdMultipleInputs.xml
packages/vtk/src/bbvtkAppendPolyData.xml
packages/vtk/src/bbvtkConeSource.xml
packages/vtk/src/bbvtkImageAnisotropicDiffusion3D.xml
packages/vtk/src/bbvtkImageDilateErode3D.xml
packages/vtk/src/bbvtkImageGaussianSmooth.xml
packages/vtk/src/bbvtkMetaImageReader.xml
packages/vtk/src/bbvtkSphereSource.xml

index 64120471d5fa2883012204fa218108a190ee9356..8123db20035a61d81195550b62097b2039284ad6 100644 (file)
@@ -19,6 +19,10 @@ public:
 };
 //==========================================================================
 
+const std::string itkImageToImageFilterString = "ITK_ImageToImageFilter";
+const std::string vtkImageAlgorithmString = "VTK_ImageAlgorithm";
+const std::string vtkPolyDataAlgorithmString = "VTK_PolyDataAlgorithm";
+
 //==========================================================================
 class bbfy
 {
@@ -54,6 +58,7 @@ private:
       vtkPolyDataAlgorithm,
     }
     BoxType;
+
   BoxType mType;
   bool mIsWidget;
   std::string mParentBlackBox;
@@ -81,7 +86,7 @@ private:
   {
     std::string name;
     std::string type;
-    std::string help;
+    std::string descr;
     std::string special;
     std::string generic_type;
   }
@@ -109,6 +114,8 @@ bbfy::bbfy(const std::string& filename,
           const std::string& output_path,
           bool verbose)
 {
+  mIsWidget = false;
+  
   mFilename = filename;
   mPackage = package;
   mNamespace = "bb" + mPackage;
@@ -173,7 +180,7 @@ void bbfy::ParseXML()
   // Name
   if (!BB.isAttributeSet("name")) 
     {
-      throw bbfyException("Error : no 'name' attribute found (mandatory)");
+      throw bbfyException("Error : <blackbox> tag : no 'name' attribute found (mandatory)");
     }
   mName = BB.getAttribute("name");
 
@@ -192,35 +199,53 @@ void bbfy::ParseXML()
          mGeneric = false;
          mType = STD;
        }
-      else if (bbtype=="itkImageToImageFilter")
+      else if (bbtype==itkImageToImageFilterString)
        {
          mType = itkImageToImageFilter;
          // Looks for <itkparent> tag
          if (!BB.nChildNode("itkparent")) 
            {
-             throw bbfyException("Error : blackbox type 'itkImageToImageFilter' but no <itkparent> tag found (mandatory)");
+             throw bbfyException("Error : blackbox type '"+itkImageToImageFilterString+"' but no <itkparent> tag found (mandatory)");
            }
          GetTextOrClear(BB.getChildNode("itkparent"),mItkParent);
          // 
          mGeneric = false;
          if (BB.isAttributeSet("generic")) mGeneric=true;
        }
-      else if ((bbtype=="vtkImageAlgorithm") || (bbtype=="vtkPolyDataAlgorithm"))
+      else if (bbtype == vtkImageAlgorithmString)
        {
          mType = vtkImageAlgorithm;
          // Looks for <vtkparent> tag
          if (!BB.nChildNode("vtkparent")) 
            {
-             throw bbfyException("Error : blackbox type 'vtkImageAlgorithm' but no <vtkparent> tag found (mandatory)");
+             throw bbfyException("Error : blackbox type '"
+                                 +vtkImageAlgorithmString
+                                 +"' but no <vtkparent> tag found (mandatory)");
            }
          GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
          // 
        }
-      else 
+    else if (bbtype == vtkPolyDataAlgorithmString )
+       {
+         mType = vtkPolyDataAlgorithm;
+         // Looks for <vtkparent> tag
+         if (!BB.nChildNode("vtkparent")) 
+           {
+             throw bbfyException("Error : blackbox type '"
+                                 +vtkPolyDataAlgorithmString
+                                 +"' but no <vtkparent> tag found (mandatory)");
+           }
+         GetTextOrClear(BB.getChildNode("vtkparent"),mVtkParent);
+         // 
+       }
+     else 
        {
          std::string mess("Error : blackbox type '");
          mess += bbtype;
-         mess += "' unknown (types are 'standard','itkfilter')";
+         mess += "' unknown. Known types :";
+         mess += "'" + itkImageToImageFilterString + "' ";
+         mess += "'" + vtkImageAlgorithmString + "' ";
+         mess += "'" + vtkPolyDataAlgorithmString + "' ";
          throw bbfyException(mess);
        }
     }
@@ -239,22 +264,6 @@ void bbfy::ParseXML()
       mInclude.push_back("bbtkAtomicBlackBox.h");
     }
 
-  /*
-  // Parent black box
-  if (!BB.nChildNode("parentblackbox")) 
-    {
-      throw bbfyException("Error : no <parentblackbox> tag found (mandatory)");
-   }
-  GetTextOrClear(BB.getChildNode("parentblackbox"),mParentBlackBox);
-
-  // Package
-  if (!BB.nChildNode("package")) 
-    {
-      throw bbfyException("Error : no <package> tag found (mandatory)");
-   }
-  GetTextOrClear(BB.getChildNode("package"),mPackage);
-  */
-
   // Author
   int i,j;
   for (i=0,j=0; i<BB.nChildNode("author"); i++) 
@@ -281,14 +290,10 @@ void bbfy::ParseXML()
     }
 
   // Namespace
-  /*
-  mIsInNamespace = false;
   if (BB.nChildNode("namespace"))
     {
-      mIsInNamespace = true;
       GetTextOrClear(BB.getChildNode("namespace"),mNamespace);
     }
-  */
 
   // UserConstructor body
   if (BB.nChildNode("constructor"))
@@ -346,20 +351,23 @@ void bbfy::ParseXML()
   // Inputs
   for (i=0,j=0; i<BB.nChildNode("input"); i++) 
     {
+      IO io;
       XMLNode n = BB.getChildNode("input",&j); 
       if (!n.isAttributeSet("name"))
        {
          throw bbfyException("Error : <input> attribute 'name' not found (mandatory)");
        }
+      io.name = n.getAttribute("name");
       if (!n.isAttributeSet("type"))
        {
-         throw bbfyException("Error : <input> attribute 'type' not found (mandatory)");
+         throw bbfyException("Error : <input name=\""+io.name+"\"> attribute 'type' not found (mandatory)");
        }
-
-      IO io;
-      io.name = n.getAttribute("name");
       io.type = n.getAttribute("type"); 
-      GetTextOrClear(n,io.help);
+      if (!n.isAttributeSet("description"))
+       {
+         throw bbfyException("Error : <input name=\""+io.name+"\"> attribute 'description' not found (mandatory)");
+       }
+      io.descr = n.getAttribute("description"); 
 
       if (n.isAttributeSet("special")) 
        {
@@ -377,20 +385,23 @@ void bbfy::ParseXML()
   // Outputs
   for (i=0,j=0; i<BB.nChildNode("output"); i++) 
     {
+      IO io;
       XMLNode n = BB.getChildNode("output",&j); 
       if (!n.isAttributeSet("name"))
        {
          throw bbfyException("Error : <output> attribute 'name' not found (mandatory)");
        }
+      io.name = n.getAttribute("name"); 
       if (!n.isAttributeSet("type"))
        {
-         throw bbfyException("Error : <output> attribute 'type' not found (mandatory)");
+         throw bbfyException("Error : <output name=\""+io.name+"\"> attribute 'type' not found (mandatory)");
        }
-
-      IO io;
-      io.name = n.getAttribute("name"); 
       io.type = n.getAttribute("type"); 
-      GetTextOrClear(n,io.help);
+      if (!n.isAttributeSet("description"))
+       {
+         throw bbfyException("Error : <output name=\""+io.name+"\"> attribute 'description' not found (mandatory)");
+       }
+      io.descr = n.getAttribute("description"); 
 
       if (n.isAttributeSet("special")) 
        {
@@ -462,7 +473,10 @@ void bbfy::CreateHeader()
     }
   
   // If is widget 
-  mFile << "#ifdef _USE_WXWIDGETS_\n";
+  if (mIsWidget)
+    {
+      mFile << "#ifdef _USE_WXWIDGETS_\n";
+    }
 
   // Prevent multiple inclusions
   std::string included("__bb");
@@ -745,7 +759,7 @@ void bbfy::CreateHeader()
          mFile << "BBTK_INPUT(";
        } 
       mFile << mName << "," << ioi->name << ",\""
-           << ioi->help << "\"," <<  ioi->type <<");\n";
+           << ioi->descr << "\"," <<  ioi->type <<");\n";
     }
   
   // Outputs
@@ -760,7 +774,7 @@ void bbfy::CreateHeader()
          mFile << "BBTK_OUTPUT(";
        } 
       mFile << mName << "," << ioi->name << ",\""
-           << ioi->help << "\"," <<  ioi->type <<");\n";
+           << ioi->descr << "\"," <<  ioi->type <<");\n";
     }
   
   // EO black box description
@@ -795,7 +809,10 @@ void bbfy::CreateHeader()
   // Prevent multiple inclusions
   mFile << "#endif // " << included <<"\n";
   // If is widget 
-  mFile << "#endif // _USE_WXWIDGETS_\n";
+  if (mIsWidget)
+    {
+      mFile << "#endif // _USE_WXWIDGETS_\n";
+    }
 
   // EOF
   mFile << "\n";
@@ -870,7 +887,7 @@ void bbfy::WriteGenericITKFilterHeader()
     {
       mFile << "BBTK_INPUT(";
       mFile << mName << "Generic," << ioi->name << ",\""
-           << ioi->help << "\"," <<  ioi->generic_type <<");\n";
+           << ioi->descr << "\"," <<  ioi->generic_type <<");\n";
     }
   
   // Outputs
@@ -878,7 +895,7 @@ void bbfy::WriteGenericITKFilterHeader()
     {
       mFile << "BBTK_OUTPUT(";
       mFile << mName << "Generic," << ioi->name << ",\""
-           << ioi->help << "\"," <<  ioi->generic_type <<");\n";
+           << ioi->descr << "\"," <<  ioi->generic_type <<");\n";
     }
   
   // EO black box description
@@ -1067,7 +1084,8 @@ int main(int argc, char **argv)
     }
   catch (bbfyException e)
     {
-      std::cerr << e.mMessage << std::endl;
+      std::cerr << argv[0] << "  " << argv[1] << std::endl
+               << e.mMessage << std::endl;
       return 1;
     }
   return 0;
diff --git a/packages/std/bbs/appli/testAdd.bbs b/packages/std/bbs/appli/testAdd.bbs
new file mode 100644 (file)
index 0000000..4e4e7f1
--- /dev/null
@@ -0,0 +1,8 @@
+description "Tests the std::Add box"
+category "test"
+
+include std
+new Add a
+set a.In1 1
+set a.In2 2
+print $a.Out$
index 0d388701edb1418dce76ae1bf65a92cd8f874090..b6df26b4b88e23c8be3bd8e039d8fb2abfec2b55 100644 (file)
@@ -6,9 +6,9 @@
   <description>Adds its inputs</description>
   <category>math</category>
 
-  <input name="In1" type="double">First number to add</input>
-  <input name="In2" type="double">Second number to add</input>
-  <output name="Out" type="double">Result</output>
+  <input name="In1" type="double" description="First number to add"/>
+  <input name="In2" type="double" description="Second number to add"/>
+  <output name="Out" type="double" description="Result"/>
 
   <process><PRE>
     bbSetOutputOut( bbGetInputIn1() + bbGetInputIn2() );
index a02d054a7fa0bb83c984ebdcc7da6526816a0c62..fc1146016d29c75c9f2f2fcc1b10272d812037cd 100644 (file)
@@ -6,13 +6,12 @@
   <description>This box has multiple Void inputs and one Void output. Hence it relays any input modification to its output. It is usefull to plug different BoxChange outputs into the same BoxExecute input.</description>
   <category>misc</category>
 
-  <input name="In1" type="bbtk::Void">Input 1</input>
-  <input name="In2" type="bbtk::Void">Input 2</input>
-  <input name="In3" type="bbtk::Void">Input 3</input>
-  <input name="In4" type="bbtk::Void">Input 4</input>
-  <input name="In5" type="bbtk::Void">Input 5</input>
-
-  <output name="Out" type="bbtk::Void">Output</output>
+  <input name="In1" type="bbtk::Void" description="Input 1"/>
+  <input name="In2" type="bbtk::Void" description="Input 2"/>
+  <input name="In3" type="bbtk::Void" description="Input 3"/>
+  <input name="In4" type="bbtk::Void" description="Input 4"/>
+  <input name="In5" type="bbtk::Void" description="Input 5"/>
+  <output name="Out" type="bbtk::Void" description="Output"/>
 
 </blackbox>
 
index a425ca84316a0a3cc20f4e13acbb362a19702885..a422ab5579b8a26d9e8d3130c311c8098025efcd 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
 
-<blackbox name="AppendPolyData" type="vtkPolyDataAlgorithm">
+<blackbox name="AppendPolyData" type="VTK_PolyDataAlgorithm">
 
 <author>jpr at creatis.insa-lyon.fr</author>
 <description><PRE>Appends one of more polygonal datasets into a single polygonal dataset</PRE></description>
 <include>vtkAppendPolyData.h</include> 
 <vtkparent>vtkAppendPolyData</vtkparent>
 
-<output 
-  name="Out" 
-  type="vtkPolyData*" 
-  special="vtk output">
-Output Mesh
-</output>
-
-<input 
-  name="In1" 
-  type="vtkPolyData *">
-PolyData 1
-</input>
-
-<input 
-  name="In2" 
-  type="vtkPolyData *">
-PolyData 2
-</input>
-
-<input 
-  name="In3" 
-  type="vtkPolyData *">
-PolyData 3
-</input>
-
-<input 
-  name="In4" 
-  type="vtkPolyData *">
-PolyData 4
-</input>
-
-<input 
-  name="In5" 
-  type="vtkPolyData *">
-PolyData 5
-</input>
-
+<output name="Out" type="vtkPolyData*" special="vtk output" description="Output Mesh"/>
+<input name="In1" type="vtkPolyData *" description="PolyData 1"/>
+<input name="In2" type="vtkPolyData *" description="PolyData 2"/>
+<input name="In3" type="vtkPolyData *" description="PolyData 3"/>
+<input name="In4" type="vtkPolyData *" description="PolyData 4"/>
+<input name="In5" type="vtkPolyData *" description="PolyData 5"/>
 
 <process>
 <PRE>
index a544b246b1caa03e2583d8c9a7567bfc036d77cd..a0bb806fbe30b7f50b9c0120c42e5c6191f56602 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
 
-<blackbox name="ConeSource" type="vtkPolyDataAlgorithm">
+<blackbox name="ConeSource" type="VTK_PolyDataAlgorithm">
 
 <author>jpr at creatis.insa-lyon.fr</author>
 <description><PRE>Creates a Cone (bbfication of vtkConeSource)</PRE></description>
 <include>vtkConeSource.h</include> 
 <vtkparent>vtkConeSource</vtkparent>
 
-<output 
-  name="Out" 
-  type="vtkPolyData*" 
-  special="vtk output">
-Output Cone
-</output>
-
-<input 
-  name="Radius" 
-  type="double"
-special="vtk parameter">
-Cone Radius
-</input>
-
-<input 
-  name="Resolution" 
-  type="int"
-special="vtk parameter">
-Cone Resolution
-</input>
-
-<input 
-  name="CenterX" 
-  type="double">
-Center X coord
-</input>
-
-<input 
-  name="CenterY" 
-  type="double">
-Center Y coord
-</input>
-
-<input 
-  name="CenterZ" 
-  type="double">
-Center Z coord
-</input>
-
-<input 
-  name="DirectionX" 
-  type="double">
-  X Direction
-</input>
-
-<input 
-  name="DirectionY" 
-  type="double">
-  Y Direction
-</input>
-
-<input 
-  name="DirectionZ" 
-  type="double">
-  Z Direction
-</input>
-
+<output name="Out" type="vtkPolyData*" special="vtk output" description="Output Cone"/>
+<input name="Radius" type="double" special="vtk parameter" description="Cone Radius"/>
+<input name="Resolution" type="int" special="vtk parameter" description="Cone Resolution"/>
+<input name="CenterX" type="double" description="Center X coord"/>
+<input name="CenterY" type="double" description="Center Y coord"/>
+<input name="CenterZ" type="double" description="Center Z coord"/>
+<input name="DirectionX" type="double" description="X Direction"/>
+<input name="DirectionY" type="double" description="Y Direction"/>
+<input name="DirectionZ" type="double" description="Z Direction"/>
 
 <process>
 <PRE>
index bc05990dba1d637f1c282dc3b8f4a3069cd76287..4ea350a637e458e9cd77552623ab3ee626ebe934 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<blackbox name="ImageAnisotropicDiffusion3D" type="vtkImageAlgorithm">
+<blackbox name="ImageAnisotropicDiffusion3D" type="VTK_ImageAlgorithm">
 
 <author>jpr at creatis.insa-lyon.fr</author>
 <description><PRE>vtkImageAnisotropicDiffusion3D diffuses an volume iteratively. The neighborhood of the diffusion is determined by the instance flags. if 'Faces' is on, the 6 voxels adjoined by faces are included in the neighborhood. If 'Edges' is on the 12 edge connected voxels are included, and if 'Corners' is on, the 8 corner connected voxels are included. 'DiffusionFactor' determines how far a pixel value moves toward its neighbors, and is insensitive to the number of neighbors chosen. The diffusion is anisotropic because it only occurs when a gradient measure is below 'GradientThreshold'. Two gradient measures exist and are toggled by the 'GradientMagnitudeThreshold' flag. When 'GradientMagnitudeThreshold' is on, the magnitude of the gradient, computed by central differences, above 'DiffusionThreshold' a voxel is not modified. The alternative measure examines each neighbor independently. The gradient between the voxel and the neighbor must be below the 'DiffusionThreshold' for diffusion to occur with THAT neighbor.</PRE></description>
 <include>vtkImageData.h</include> 
 <vtkparent>vtkImageAnisotropicDiffusion3D</vtkparent>
 
-<input 
-  name="In" 
-  type="vtkImageData*" 
-  special="vtk input">
-Input image
-</input>  
-
-<output 
-  name="Out" 
-  type="vtkImageData*" 
-  special="vtk output">
-Output image
-</output>
-
-
-<input 
-  name="DiffusionThreshold" 
-  type="double" 
-  special="vtk parameter">
-Difference threshold that stops diffusion
-</input>
-
+<input name="In" type="vtkImageData*" special="vtk input" description="Input image"/>
+<output name="Out" type="vtkImageData*" special="vtk output" description="Output image"/>
+<input name="DiffusionThreshold" type="double" special="vtk parameter" description="Difference threshold that stops diffusion"/>
 
 </blackbox>
 
index 7bb875142093945c0e0a05839400523810c4b5d3..c4a35097f4a3e5a9d3d8a0dac34c5674348fba4f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<blackbox name="ImageDilateErode3D" type="vtkImageAlgorithm">
+<blackbox name="ImageDilateErode3D" type="VTK_ImageAlgorithm">
 
 <author>laurent.guigues at creatis.insa-lyon.fr</author>
 <description><PRE>Dilates one value and erodes another. vtkImageDilateErode3D will dilate one value and erode another. It uses an elliptical foot print, and only erodes/dilates on the boundary of the two values. The filter is restricted to the X, Y, and Z axes for now. It can degenerate to a 2 or 1 dimensional filter by setting the kernel size to 1 for a specific axis. (bbfication of vtkImageDilateErode3D)</PRE></description>
 
 <vtkparent>vtkImageDilateErode3D</vtkparent>
 
-<input 
-  name="In" 
-  type="vtkImageData*" 
-  special="vtk input">
-Input image
-</input>  
-
-<output 
-  name="Out" 
-  type="vtkImageData*" 
-  special="vtk output">
-Output image
-</output>
-
-<input 
-  name="KernelSizeX" 
-  type="int">
-Size of the kernel in direction X
-</input>
-
-<input 
-  name="KernelSizeY" 
-  type="int">
-Size of the kernel in direction Y
-</input>
-
-<input 
-  name="KernelSizeZ" 
-  type="int">
-Size of the kernel in direction Z
-</input>
-
-<input 
-  name="DilateValue" 
-  type="double" 
-  special="vtk parameter">
-The dilation value
-</input>
-
-<input 
-  name="ErodeValue" 
-  type="double" 
-  special="vtk parameter">
-The erosion value
-</input>
+<input name="In" type="vtkImageData*" special="vtk input" description="Input image"/>
+<output name="Out" type="vtkImageData*" special="vtk output" description="Output image"/>
+<input name="KernelSizeX" type="int" description="Size of the kernel in direction X"/>
+<input name="KernelSizeY" type="int" description="Size of the kernel in direction Y"/>
+<input name="KernelSizeZ" type="int" description="Size of the kernel in direction Z"/>
+<input name="DilateValue" type="double" special="vtk parameter" description="The dilation value"/>
+<input name="ErodeValue" type="double" special="vtk parameter" description="The erosion value"/>
 
 <process>
 <PRE>
index 95e73cc12a4521c26c5cfda34b0f6fdf47c22962..e74304566542a330ca056c91b7e81447540da88d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<blackbox name="ImageGaussianSmooth" type="vtkImageAlgorithm">
+<blackbox name="ImageGaussianSmooth" type="VTK_ImageAlgorithm">
 
 <author>laurent.guigues at creatis.insa-lyon.fr</author>
 <description><PRE>Performs a gaussian convolution of the input image (bbfication of vtkImageGaussianSmooth)</PRE></description>
 
 <vtkparent>vtkImageGaussianSmooth</vtkparent>
 
-<input 
-  name="In" 
-  type="vtkImageData*" 
-  special="vtk input">
-Input image
-</input>  
-
-<output 
-  name="Out" 
-  type="vtkImageData*" 
-  special="vtk output">
-Output image
-</output>
-
-<input 
-  name="StdDevX" 
-  type="double">
-Standard deviation in direction X
-</input>
-
-<input 
-  name="StdDevY" 
-  type="double">
-Standard deviation in direction Y
-</input>
-
-<input 
-  name="StdDevZ" 
-  type="double">
-Standard deviation in direction Z
-</input>
+<input name="In" type="vtkImageData*" special="vtk input" description="Input image"/>  
+<output name="Out" type="vtkImageData*" special="vtk output" description="Output image"/>
+<input name="StdDevX" type="double" description="Standard deviation in direction X"/>
+<input name="StdDevY" type="double" description="Standard deviation in direction Y"/>
+<input name="StdDevZ" type="double" description="Standard deviation in direction Z"/>
 
 <process>
 <PRE>
index 71314a16f3ad3e05b765f66fb76ca045c2a70ea6..8c50c7878375811f464878d3d65001d26a7c415d 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<blackbox name="MetaImageReader" type="vtkImageAlgorithm">
+<blackbox name="MetaImageReader" type="VTK_ImageAlgorithm">
 
 <author>laurent.guigues at creatis.insa-lyon.fr</author>
 <description><PRE>Reads .mhd / .mha image formats (bbfication of vtkMetaImageReader)</PRE></description>
 <include>vtkImageData.h</include> 
 <vtkparent>vtkMetaImageReader</vtkparent>
 
-<input 
-  name="In" 
-  type="std::string">
-Filename
-</input>  
-
-<output 
-  name="Out" 
-  type="vtkImageData*" 
-  special="vtk output">
-Output image
-</output>
+<input name="In" type="std::string" description="Filename"/>  
+<output name="Out" type="vtkImageData*" description="Output image" special="vtk output"/>
 
 </blackbox>
 
index 483897fa2cd111267393ca8842d93d4c12dbfdc6..113aa8d33a84e8cc7e1fd5bb01cf0387fff49826 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<blackbox name="SphereSource" type="vtkPolyDataAlgorithm">
+<blackbox name="SphereSource" type="VTK_PolyDataAlgorithm">
 
 <author>jpr@creatis.insa-lyon.fr</author>
 <description><PRE>Creates a Sphere (bbfication of vtkSphereSource)</PRE></description>
@@ -9,51 +9,13 @@
 <include>vtkSphereSource.h</include> 
 <vtkparent>vtkSphereSource</vtkparent>
 
-<output 
-  name="Out" 
-  type="vtkPolyData*" 
-  special="vtk output">
-Output Sphere
-</output>
-
-<input 
-  name="CenterX" 
-  type="double">
-Center X coord
-</input>
-
-<input 
-  name="CenterY" 
-  type="double">
-Center Y coord
-</input>
-
-<input 
-  name="CenterZ" 
-  type="double">
-Center Z coord
-</input>
-
-<input 
-  name="PhiResolution" 
-  type="int"
-  special="vtk parameter">
-Sphere PhiResolution
-</input>
-
-<input 
-  name="Radius" 
-  type="double"
-special="vtk parameter">
-Sphere Radius
-</input>
-
-<input 
-  name="ThetaResolution" 
-  type="int"
-special="vtk parameter">
-Sphere ThetaResolution
-</input>
+<output name="Out" type="vtkPolyData*" description="Output Sphere" special="vtk output"/>
+<input name="CenterX" type="double" description="Center X coord"/>
+<input name="CenterY" type="double" description="Center Y coord"/>
+<input name="CenterZ" type="double" description="Center Z coord"/>
+<input name="PhiResolution" type="int" description="Sphere PhiResolution" special="vtk parameter"/>
+<input name="Radius" type="double" description="Sphere Radius" special="vtk parameter"/>
+<input name="ThetaResolution" type="int" description="Sphere ThetaResolution"special="vtk parameter"/>
 
 <process>
 <PRE>