]> Creatis software - bbtk.git/blobdiff - packages/vtk/src/bbvtkMetaImageWriter.xml
Generate a good file name when .mhd is missing
[bbtk.git] / packages / vtk / src / bbvtkMetaImageWriter.xml
index 480bbe5bc5e5f763e9c8eea96e96339fd17e91b9..24789f33dc5aab7077885b3d0bf3f34871236516 100644 (file)
@@ -1,34 +1,46 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 
-<blackbox name="MetaImageWriter">
+<blackbox name="MetaImageWriter" type="VTK_ImageAlgorithm">
 
 <author>laurent.guigues at creatis.insa-lyon.fr</author>
 <description><PRE>Writes .mhd / .mhd image formats (bbfication of vtkMetaImageWriter)</PRE></description>
 <category>image;read/write</category>
 
 <include>vtkMetaImageWriter.h</include> 
-<include>vtkImageData.h</include> 
+<include>vtkImageData.h</include>
+<vtkobject>vtkMetaImageWriter</vtkobject> 
 
-<input  name="Filename"  type="std::string"   nature="file name"   description="Name of the file to write"/>  
+<input name="Filename"  type="std::string"   nature="file name"   description="Name of the file to write"/>  
 <input name="In" type="vtkImageData*" description="Input image" />
  
  <process><PRE>
    vtkMetaImageWriter* w = vtkMetaImageWriter::New();
-std::cout << "a"<<std::endl;
-//vtkImageData* in = vtkImageData::New();
-//  in->ShallowCopy(bbGetInputIn());
-bbGetInputIn()->Update();
-   w->SetInput(bbGetInputIn());
-   w->SetFileName(bbGetInputFilename().c_str());
+   bbGetInputIn()->Update();
+
+/*
+   if (bbGetInputIn() == 0)
+      std::cout << "======================= Katastrophe : bbGetInputIn() == 0 " << std::endl;
+   else
+      std::cout << "======================= OK : bbGetInputIn() not NULL " << std::endl;
+
+   bbGetInputIn()->PrintSelf(std::cout, vtkIndent(1));
+   bbGetInputIn()->GetSpacing(spacing);
+   std::cout << "=======" << spacing[0] << " " << spacing[1] << " " << spacing[2] << std::endl;
+*/
 
-bbGetInputIn()->Print(std::cout);
-std::cout << "a '"<< bbGetInputFilename()<<"'"<<std::endl;
-   w->Update();
-std::cout << "a"<<std::endl;
+
+   w->SetInput(bbGetInputIn());
+   w->SetCompression(false);  // JPR
+   w->SetFileDimensionality(bbGetInputIn()->GetDataDimension()); // NTU
+   std::string userGivenName = bbGetInputFilename();
+   if (userGivenName.substr(userGivenName.size()-4) != ".mhd") //JPR
+      userGivenName += ".mhd";
+    w->SetFileName(userGivenName.c_str());  
+   //w->SetFileName(bbGetInputFilename().c_str());  // JPR
+   w->Update(); // Fred  
+   w->Write();
    w->Delete();
-std::cout << "a"<<std::endl;
  </PRE></process>
-
 </blackbox>