--- /dev/null
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+#include "bbcreaVtkReadMHDPlane.h"
+#include "bbcreaVtkPackage.h"
+
+#include "stdio.h"
+
+namespace bbcreaVtk
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,ReadMHDPlane)
+BBTK_BLACK_BOX_IMPLEMENTATION(ReadMHDPlane,bbtk::AtomicBlackBox);
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void ReadMHDPlane::Process()
+{
+
+// THE MAIN PROCESSING METHOD BODY
+// Here we simply set the input 'In' value to the output 'Out'
+// And print out the output value
+// INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
+// void bbSet{Input|Output}NAME(const TYPE&)
+// const TYPE& bbGet{Input|Output}NAME() const
+// Where :
+// * NAME is the name of the input/output
+// (the one provided in the attribute 'name' of the tag 'input')
+// * TYPE is the C++ type of the input/output
+// (the one provided in the attribute 'type' of the tag 'input')
+
+// bbSetOutputOut( bbGetInputIn() );
+// std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
+
+
+
+
+ long int newHeaderSize;
+ std::string newFileName=bbGetInputFileName()+"-OneSlice";
+
+ int sx,sy,sz;
+ char mystring[250];
+ char strTmp[20];
+ FILE *ffOut = fopen(newFileName.c_str(),"w+");
+ FILE *ffIn = fopen(bbGetInputFileName().c_str(),"r+");
+
+ while(!feof(ffIn))
+ {
+ strcpy(mystring,"\n");
+ fgets(mystring,250,ffIn);
+ if (strncmp("NDims",mystring,5)==0) {strcpy(mystring,"NDims = 2\n");}
+ if (strncmp("DimSize",mystring,6)==0)
+ {
+ sscanf(mystring,"%s %s %d %d",strTmp, strTmp, &sx, &sy);
+ sprintf(mystring,"DimSize = %d %d\n",sx,sy);
+ newHeaderSize = sx*sy*bbGetInputSlice();
+ }
+ if (strncmp("ElementType = MET_USHORT",mystring,24)==0) { newHeaderSize=newHeaderSize*2; }
+ if (strncmp("ElementType = MET_SHORT",mystring,23)==0) { newHeaderSize=newHeaderSize*2; }
+ if (strncmp("ElementType = MET_FLOAT",mystring,23)==0) { newHeaderSize=newHeaderSize*2; }
+ if (strncmp("Offset",mystring,6)==0) {strcpy(mystring,"Offset = 0 0 0\n");}
+ if (strncmp("HeaderSize",mystring,10)==0) {strcpy(mystring,"");}
+ if (strncmp("ElementDataFile",mystring,15)==0)
+ {
+ fprintf(ffOut,"HeaderSize = %ld\n\n", newHeaderSize );
+ }
+ fprintf(ffOut,mystring);
+ }
+
+/*
+ fprintf(ff,"ObjectType = Image\n");
+ fprintf(ff,"NDims = 2\n");
+ fprintf(ff,"BinaryData = True\n");
+ fprintf(ff,"BinaryDataByteOrderMSB = False\n");
+ fprintf(ff,"CompressedData = False\n");
+ fprintf(ff,"TransformMatrix = 1 0 0 0 1 0 0 0 1\n");
+ fprintf(ff,"CenterOfRotation = 0 0 0\n");
+ fprintf(ff,"ElementSpacing = 0.7 0.7 0.7\n");
+ fprintf(ff,"DimSize = 512 512\n");
+ fprintf(ff,"AnatomicalOrientation = ???\n");
+ fprintf(ff,"ElementType = MET_SHORT\n");
+ fprintf(ff,"ElementNumberOfChannels = 1\n");
+ fprintf(ff,"Offset = 0 0 0\n");
+ fprintf(ff,"HeaderSize = %ld\n", newHeaderSize );
+ fprintf(ff,"ElementDataFile = inspi1_ana.raw\n");
+*/
+
+ fclose(ffIn);
+ fclose(ffOut);
+
+
+ vtkMetaImageReader * reader = vtkMetaImageReader::New();
+ reader->SetFileName( newFileName.c_str() );
+ reader->Update();
+
+ bbSetOutputOut( reader->GetOutput() );
+
+
+}
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void ReadMHDPlane::bbUserSetDefaultValues()
+{
+
+// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
+// Here we initialize the input 'In' to 0
+ bbSetInputFileName("");
+ bbSetInputSlice(0);
+
+}
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void ReadMHDPlane::bbUserInitializeProcessing()
+{
+
+// THE INITIALIZATION METHOD BODY :
+// Here does nothing
+// but this is where you should allocate the internal/output pointers
+// if any
+
+
+}
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void ReadMHDPlane::bbUserFinalizeProcessing()
+{
+
+// THE FINALIZATION METHOD BODY :
+// Here does nothing
+// but this is where you should desallocate the internal/output pointers
+// if any
+
+}
+}
+// EO namespace bbcreaVtk
+
+
--- /dev/null
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+#ifndef __bbcreaVtkReadMHDPlane_h_INCLUDED__
+#define __bbcreaVtkReadMHDPlane_h_INCLUDED__
+#include "bbcreaVtk_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+
+#include "vtkImageData.h"
+#include "vtkMetaImageReader.h"
+
+namespace bbcreaVtk
+{
+
+class bbcreaVtk_EXPORT ReadMHDPlane
+ :
+ public bbtk::AtomicBlackBox
+{
+ BBTK_BLACK_BOX_INTERFACE(ReadMHDPlane,bbtk::AtomicBlackBox);
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+ BBTK_DECLARE_INPUT(FileName,std::string);
+ BBTK_DECLARE_INPUT(Slice,int);
+ BBTK_DECLARE_OUTPUT(Out,vtkImageData*);
+ BBTK_PROCESS(Process);
+ void Process();
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+};
+
+BBTK_BEGIN_DESCRIBE_BLACK_BOX(ReadMHDPlane,bbtk::AtomicBlackBox);
+ BBTK_NAME("ReadMHDPlane");
+ BBTK_AUTHOR("InfoDev");
+ BBTK_DESCRIPTION("No Description.");
+ BBTK_CATEGORY("empty");
+ BBTK_INPUT(ReadMHDPlane,FileName,"Image file name",std::string,"");
+ BBTK_INPUT(ReadMHDPlane,Slice,"Slice number",int,"");
+ BBTK_OUTPUT(ReadMHDPlane,Out,"Image 2D",vtkImageData*,"");
+BBTK_END_DESCRIBE_BLACK_BOX(ReadMHDPlane);
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+}
+// EO namespace bbcreaVtk
+
+#endif // __bbcreaVtkReadMHDPlane_h_INCLUDED__
+