]> Creatis software - creaVtk.git/commitdiff
#3506 JSON write box
authorEduardo DAVILA <davila@creatis.insa-lyon.fr>
Mon, 15 May 2023 11:44:45 +0000 (13:44 +0200)
committerEduardo DAVILA <davila@creatis.insa-lyon.fr>
Mon, 15 May 2023 11:44:45 +0000 (13:44 +0200)
bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.cxx [new file with mode: 0644]
bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.h [new file with mode: 0644]
bbtk_creaVtk_PKG/src/bbcreaVtkPolyDataToImageData.cxx

diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.cxx
new file mode 100644 (file)
index 0000000..b538dce
--- /dev/null
@@ -0,0 +1,97 @@
+//===== 
+// 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 "bbcreaVtkJSONDataSetWriter.h"
+#include "bbcreaVtkPackage.h"
+
+#include <vtkJSONDataSetWriter.h>
+#include <vtkArchiver.h>
+
+namespace bbcreaVtk
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,JSONDataSetWriter)
+BBTK_BLACK_BOX_IMPLEMENTATION(JSONDataSetWriter,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 JSONDataSetWriter::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;
+  
+    
+    int             i;
+    int             sizeLstImages         = bbGetInputLstImages().size();
+    int             sizeLstFileNames    = bbGetInputLstFileNames().size();
+    vtkImageData    *image;
+    std::string     filename;
+    if ( (sizeLstImages>0) && (sizeLstImages==sizeLstFileNames) )
+    {
+        for ( i=0 ; i<sizeLstImages ; i++ )
+        {
+            image       = bbGetInputLstImages()[i];
+            filename    = bbGetInputLstFileNames()[i];
+            if (image!=NULL)
+            {
+                vtkJSONDataSetWriter *writer = vtkJSONDataSetWriter::New();
+                writer->GetArchiver()->SetArchiveName( filename.c_str() );
+                writer->SetInputData( image );
+                writer->Update();
+            } // if image
+        }// for
+    } // if size
+    
+}
+//===== 
+// 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 JSONDataSetWriter::bbUserSetDefaultValues()
+{
+
+//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
+//    Here we initialize the input 'In' to 0
+//   bbSetInputIn(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)
+//===== 
+void JSONDataSetWriter::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 JSONDataSetWriter::bbUserFinalizeProcessing()
+{
+
+//  THE FINALIZATION METHOD BODY :
+//    Here does nothing 
+//    but this is where you should desallocate the internal/output pointers 
+//    if any
+  
+}
+}
+// EO namespace bbcreaVtk
+
+
diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.h b/bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.h
new file mode 100644 (file)
index 0000000..0a5231a
--- /dev/null
@@ -0,0 +1,51 @@
+//===== 
+// 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 __bbcreaVtkJSONDataSetWriter_h_INCLUDED__
+#define __bbcreaVtkJSONDataSetWriter_h_INCLUDED__
+
+#include "bbcreaVtk_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+
+#include <vtkImageData.h>
+
+namespace bbcreaVtk
+{
+
+class bbcreaVtk_EXPORT JSONDataSetWriter
+ : 
+   public bbtk::AtomicBlackBox
+{
+  BBTK_BLACK_BOX_INTERFACE(JSONDataSetWriter,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(In,vtkImageData*);
+  BBTK_DECLARE_INPUT(LstImages,std::vector <vtkImageData*>);
+  BBTK_DECLARE_INPUT(LstFileNames,std::vector <std::string>);
+//  BBTK_DECLARE_OUTPUT(Out,double);
+  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(JSONDataSetWriter,bbtk::AtomicBlackBox);
+  BBTK_NAME("JSONDataSetWriter");
+  BBTK_AUTHOR("InfoDev");
+  BBTK_DESCRIPTION("No Description.");
+  BBTK_CATEGORY("empty");
+  BBTK_INPUT(JSONDataSetWriter,LstImages,"Input Image",std::vector <vtkImageData*>,"");
+  BBTK_INPUT(JSONDataSetWriter,LstFileNames,"File Name",std::vector <std::string>,"");
+//  BBTK_OUTPUT(JSONDataSetWriter,Out,"First output",double,"");
+BBTK_END_DESCRIBE_BLACK_BOX(JSONDataSetWriter);
+//===== 
+// 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 // __bbcreaVtkJSONDataSetWriter_h_INCLUDED__
+
index 66543b2179dfddb744d9cf802ddca067da97b7cc..3c6de3d397fc1cb4181ea9bbb3b88a9862308dc4 100644 (file)
@@ -35,10 +35,10 @@ void PolyDataToImageData::Process()
        {
 printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .................;\n ");
                int ext[6];
-               bbGetInputInImage()->GetExtent( ext );
         double spc[3];
-        bbGetInputInImage()->GetSpacing( spc );
         double org[3];
+               bbGetInputInImage()->GetExtent( ext );
+        bbGetInputInImage()->GetSpacing( spc );
         bbGetInputInImage()->GetOrigin( org );
 
 //             vtkCleanPolyData *clean1 = vtkCleanPolyData::New();             
@@ -46,9 +46,11 @@ printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .........
                clean1 = vtkCleanPolyData::New();
                clean1->SetInputData( bbGetInputInPolyData() );
                clean1->Update();
+        printf("EED PolyDataToImageData::Process 1 \n");
                vtkTriangleFilter *triangle1 = vtkTriangleFilter::New();
                triangle1->SetInputData( clean1->GetOutput() );
                triangle1->Update();
+        printf("EED PolyDataToImageData::Process 2 \n");
 //             vtkPolyDataToImageStencil *dataToStencil = vtkPolyDataToImageStencil::New();
                if (dataToStencil!=NULL) dataToStencil->Delete();
                dataToStencil = vtkPolyDataToImageStencil::New();
@@ -57,6 +59,7 @@ printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .........
         dataToStencil->SetOutputSpacing( spc );
                dataToStencil->SetOutputWholeExtent( ext );
                dataToStencil->Update();
+        printf("EED PolyDataToImageData::Process 3 \n");
 //             vtkExtractVOI *extract = vtkExtractVOI::New();
                if (extract!=NULL) extract->Delete();
                extract = vtkExtractVOI::New();
@@ -65,15 +68,18 @@ printf("EED Warnning!! PolyDataToImageData::Process    Clean this code .........
                extract->SetInputData( bbGetInputInImage() );
                extract->ReleaseDataFlagOff();
                extract->Update();      
+        printf("EED PolyDataToImageData::Process 4 \n");
 //             vtkImageStencil *stencil = vtkImageStencil::New();
                if (stencil!=NULL) stencil->Delete();
                stencil = vtkImageStencil::New();
                stencil->SetInputData( extract->GetOutput() );
                stencil->Update();
+        printf("EED PolyDataToImageData::Process 5 \n");
                stencil->SetStencilData(  dataToStencil->GetOutput() );
                stencil->ReverseStencilOn();
                stencil->SetBackgroundValue( bbGetInputBackgroundValue() );
                stencil->Update();
+        printf("EED PolyDataToImageData::Process 6 \n");
                bbSetOutputOut( stencil->GetOutput() );
        } else {
                printf("EED Warnning!  PolyDataToImageData::Process  > Missing Image or PolyData inputs\n");