]> Creatis software - creaVtk.git/commitdiff
#3527 JavaScript IO interface
authoreduardo.davila@creatis.insa-lyon.fr <eduardo.davila@creatis.insa-lyon.fr>
Tue, 23 Jul 2024 08:29:56 +0000 (10:29 +0200)
committereduardo.davila@creatis.insa-lyon.fr <eduardo.davila@creatis.insa-lyon.fr>
Tue, 23 Jul 2024 08:29:56 +0000 (10:29 +0200)
bbtk_creaVtk_PKG/src/bbcreaVtkHttpDataSetReader.xml
bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.cxx
bbtk_creaVtk_PKG/src/bbcreaVtkJSONDataSetWriter.h
bbtk_creaVtk_PKG/src/bbcreaVtkMarchingCubes2.cxx

index e0d163874bb265e60c84b167eed5536c55abba5f..d728ac100fd8d4eb43cad64eca39ca7abfbefe2e 100644 (file)
@@ -44,6 +44,7 @@
     Here we include the standard header iostream.h -->
   <include><PRE>iostream</PRE></include>
   <include><PRE>vtkImageData.h</PRE></include>
+  <include><PRE>vtkDataSet.h</PRE></include>
   <!--=====================================================================-->
 
   <!--========================================================================
       and description 'First input' -->
 
 
-  <typedef><PRE>typedef std::vector<std::string> OutputTypeVectorString;</PRE></typedef>
-  <typedef><PRE>typedef std::vector<vtkImageData*> OutputTypeVectorVtkImageData;</PRE></typedef>
+  <typedef><PRE>typedef std::vector<std::string>    OutputTypeVectorString;</PRE></typedef>
+  <typedef><PRE>typedef std::vector<vtkImageData*>  OutputTypeVectorVtkImageData;</PRE></typedef>
+  <typedef><PRE>typedef std::vector<vtkDataSet*>    OutputTypeVectorVtkDataSet;</PRE></typedef>
 
 
   <input name="FileNames" type="OutputTypeVectorString" description="First input"/>
   
   <!-- Declares an output with name 'Out', type 'double' 
       and description 'First output' -->
-  <output name="Out" type="vtkImageData*" description="Image Output"/>
-  <output name="OutVector" type="OutputTypeVectorVtkImageData" description="lst of vtkImageData*"/>
+  <output name="Out"                type="vtkDataSet*"                  description="first element of the vector"/>
+  <output name="OutVectorDataSet"   type="OutputTypeVectorVtkDataSet"   description="lst of vtkDataSet*     example: vtkImageData* vtkPolyData*"/>
   <!--=====================================================================-->
 
   <process>
index b538dce06c48db78314dcb83893369b0b6ab57e0..258fca0b2ae139ee6a7d4fe3282ca987a054b76d 100644 (file)
@@ -34,10 +34,23 @@ void JSONDataSetWriter::Process()
   
     
     int             i;
-    int             sizeLstImages         = bbGetInputLstImages().size();
+    int             sizeLstImages       = bbGetInputLstImages().size();
+    int             sizeLstPolyData     = bbGetInputLstPolyData().size();
     int             sizeLstFileNames    = bbGetInputLstFileNames().size();
     vtkImageData    *image;
+    vtkPolyData     *polydata;
     std::string     filename;
+
+    // vtkImageData
+    if ( (sizeLstFileNames==1) && (bbGetInputImage()!=NULL) )
+    {
+        vtkJSONDataSetWriter *writer = vtkJSONDataSetWriter::New();
+        writer->GetArchiver()->SetArchiveName( bbGetInputLstFileNames()[0].c_str() );
+        writer->SetInputData( bbGetInputImage() );
+        writer->Update();
+    } // if Image
+
+    // lst vtkImageData
     if ( (sizeLstImages>0) && (sizeLstImages==sizeLstFileNames) )
     {
         for ( i=0 ; i<sizeLstImages ; i++ )
@@ -53,45 +66,69 @@ void JSONDataSetWriter::Process()
             } // if image
         }// for
     } // if size
+
+    // vtkPolyData
+    if ( (sizeLstFileNames==1) && (bbGetInputPolyData()!=NULL) )
+    {
+        vtkJSONDataSetWriter *writer = vtkJSONDataSetWriter::New();
+        writer->GetArchiver()->SetArchiveName( bbGetInputLstFileNames()[0].c_str() );
+        writer->SetInputData( bbGetInputPolyData() );
+        writer->Update();
+    } // if PolyData
+
     
+    // lst vtkPolyData
+    if ( (sizeLstPolyData>0) && (sizeLstPolyData==sizeLstFileNames) )
+    {
+        for ( i=0 ; i<sizeLstPolyData ; i++ )
+        {
+            polydata    = bbGetInputLstPolyData()[i];
+            filename    = bbGetInputLstFileNames()[i];
+            if (polydata!=NULL)
+            {
+                vtkJSONDataSetWriter *writer = vtkJSONDataSetWriter::New();
+                writer->GetArchiver()->SetArchiveName( filename.c_str() );
+                writer->SetInputData( polydata );
+                writer->Update();
+            } // if polydata
+        }// 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);
-  
+    bbSetInputImage(NULL);
+    bbSetInputPolyData(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 
-
-  
+//    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
+
+}// EO namespace bbcreaVtk
 
 
index 0a5231acccffbc25d74568829f3cdb7ec0d385a2..cd2e9eb60b1955f3e9f00522ef3e1c88d1e2de69 100644 (file)
@@ -9,6 +9,7 @@
 #include "iostream"
 
 #include <vtkImageData.h>
+#include <vtkPolyData.h>
 
 namespace bbcreaVtk
 {
@@ -22,11 +23,14 @@ class bbcreaVtk_EXPORT 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)
 //===== 
 //  BBTK_DECLARE_INPUT(In,vtkImageData*);
-  BBTK_DECLARE_INPUT(LstImages,std::vector <vtkImageData*>);
-  BBTK_DECLARE_INPUT(LstFileNames,std::vector <std::string>);
+    BBTK_DECLARE_INPUT(Image,vtkImageData*);
+    BBTK_DECLARE_INPUT(PolyData,vtkPolyData*);
+    BBTK_DECLARE_INPUT(LstImages,std::vector <vtkImageData*>);
+    BBTK_DECLARE_INPUT(LstPolyData,std::vector <vtkPolyData*>);
+    BBTK_DECLARE_INPUT(LstFileNames,std::vector <std::string>);
 //  BBTK_DECLARE_OUTPUT(Out,double);
-  BBTK_PROCESS(Process);
-  void Process();
+    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)
 //===== 
@@ -37,7 +41,10 @@ BBTK_BEGIN_DESCRIBE_BLACK_BOX(JSONDataSetWriter,bbtk::AtomicBlackBox);
   BBTK_AUTHOR("InfoDev");
   BBTK_DESCRIPTION("No Description.");
   BBTK_CATEGORY("empty");
-  BBTK_INPUT(JSONDataSetWriter,LstImages,"Input Image",std::vector <vtkImageData*>,"");
+  BBTK_INPUT(JSONDataSetWriter,Image,"Input vtkImageData ",vtkImageData*,"");
+  BBTK_INPUT(JSONDataSetWriter,PolyData,"Input vtkPolyData ",vtkPolyData*,"");
+  BBTK_INPUT(JSONDataSetWriter,LstImages,"Input vtkImageData vector",std::vector <vtkImageData*>,"");
+  BBTK_INPUT(JSONDataSetWriter,LstPolyData,"Input vtkPolydata vector",std::vector <vtkPolyData*>,"");
   BBTK_INPUT(JSONDataSetWriter,LstFileNames,"File Name",std::vector <std::string>,"");
 //  BBTK_OUTPUT(JSONDataSetWriter,Out,"First output",double,"");
 BBTK_END_DESCRIBE_BLACK_BOX(JSONDataSetWriter);
index 7ad5b0eddc171fbc74d6b6f9dd13901d6d511ed0..f89648d1adeade76940cbbe1207fac152d401fca 100644 (file)
@@ -13,7 +13,6 @@ BBTK_BLACK_BOX_IMPLEMENTATION(MarchingCubes2,bbtk::AtomicBlackBox);
 //===== 
 void MarchingCubes2::Process()
 {
-
 // THE MAIN PROCESSING METHOD BODY
 //   Here we simply set the input 'In' value to the output 'Out'
 //   And print out the output value
@@ -27,7 +26,6 @@ void MarchingCubes2::Process()
 //      (the one provided in the attribute 'type' of the tag 'input')
 //    bbSetOutputOut( bbGetInputIn() );
 //    std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
-  
     if ( (bbGetInputActive()==true) && (bbGetInputIn()!=NULL) )
     {
         if (marchingcubes!=NULL)
@@ -58,16 +56,13 @@ void MarchingCubes2::Process()
     } else {
         bbSetOutputOut(NULL);
     } // Active
-
-    
-    
 }
-//===== 
+
+//=====
 // 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 MarchingCubes2::bbUserSetDefaultValues()
 {
-
 //  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
 //    Here we initialize the input 'In' to 0
     marchingcubes=NULL;
@@ -78,32 +73,29 @@ void MarchingCubes2::bbUserSetDefaultValues()
     bbSetInputComputeScalarsOn(true);
     bbSetOutputOut(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 MarchingCubes2::bbUserInitializeProcessing()
 {
-
 //  THE INITIALIZATION METHOD BODY :
 //    Here does nothing 
 //    but this is where you should allocate the internal/output pointers 
-//    if any 
-
-  
+//    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 MarchingCubes2::bbUserFinalizeProcessing()
 {
-
 //  THE FINALIZATION METHOD BODY :
 //    Here does nothing 
 //    but this is where you should desallocate the internal/output pointers 
 //    if any
-  
-}
 }
-// EO namespace bbcreaVtk
+
+}// EO namespace bbcreaVtk