]> Creatis software - creaMaracasVisu.git/commitdiff
#3371 creaMaracasVisu Feature New Normal - Compare Images with RGB vtk8itk4wx3-mingw64
authorEduardo DAVILA <davila@ei-ed-606.univ-lyon1.fr>
Mon, 9 Mar 2020 12:06:58 +0000 (13:06 +0100)
committerEduardo DAVILA <davila@ei-ed-606.univ-lyon1.fr>
Mon, 9 Mar 2020 12:06:58 +0000 (13:06 +0100)
bbtk/src/bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.cxx [new file with mode: 0644]
bbtk/src/bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.h [new file with mode: 0644]
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkImageViewer2_XYZ.cxx
lib/maracasVisuLib/src/interface/wxWindows/widgets/vtkImageViewer2_XYZ.h

diff --git a/bbtk/src/bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.cxx b/bbtk/src/bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.cxx
new file mode 100644 (file)
index 0000000..76a9196
--- /dev/null
@@ -0,0 +1,98 @@
+//===== 
+// 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 "bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.h"
+#include "bbcreaMaracasVisuPackage.h"
+
+#include "wxVtk2DBaseView.h"
+
+
+namespace bbcreaMaracasVisu
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaMaracasVisu,SetwxVtkBaseViewLookupTable)
+BBTK_BLACK_BOX_IMPLEMENTATION(SetwxVtkBaseViewLookupTable,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 SetwxVtkBaseViewLookupTable::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;
+
+       SetLookupTable( bbGetInputBaseView1() , bbGetInputScalarToColors(), bbGetInputOutputFormat() );
+       SetLookupTable( bbGetInputBaseView2() , bbGetInputScalarToColors(), bbGetInputOutputFormat() );
+       SetLookupTable( bbGetInputBaseView3() , bbGetInputScalarToColors(), bbGetInputOutputFormat() );
+       SetLookupTable( bbGetInputBaseView4() , bbGetInputScalarToColors(), bbGetInputOutputFormat() );
+}
+
+
+void SetwxVtkBaseViewLookupTable::SetLookupTable(wxVtkBaseView* baseview , vtkScalarsToColors* scalartocolors, int outputformat )
+{
+       if (baseview!=NULL) 
+       {
+               if ( baseview->GetDirection()>=0 && baseview->GetDirection()<=2) 
+               {
+                       wxVtk2DBaseView* baseview2D = (wxVtk2DBaseView*)baseview;
+                       baseview2D->_imageViewer2XYZ -> setScalarsToColors( scalartocolors, outputformat );
+               } // if Direction
+       } // if baseview
+}
+
+
+
+//===== 
+// 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 SetwxVtkBaseViewLookupTable::bbUserSetDefaultValues()
+{
+
+//  SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX 
+//    Here we initialize the input 'In' to 0
+   bbSetInputBaseView1( NULL );
+   bbSetInputBaseView2( NULL );
+   bbSetInputBaseView3( NULL );
+   bbSetInputBaseView4( 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 SetwxVtkBaseViewLookupTable::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 SetwxVtkBaseViewLookupTable::bbUserFinalizeProcessing()
+{
+
+//  THE FINALIZATION METHOD BODY :
+//    Here does nothing 
+//    but this is where you should desallocate the internal/output pointers 
+//    if any
+  
+}
+}
+// EO namespace bbcreaMaracasVisu
+
+
diff --git a/bbtk/src/bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.h b/bbtk/src/bbcreaMaracasVisuSetwxVtkBaseViewLookupTable.h
new file mode 100644 (file)
index 0000000..fe5f4d4
--- /dev/null
@@ -0,0 +1,64 @@
+//===== 
+// 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 __bbcreaMaracasVisuSetwxVtkBaseViewLookupTable_h_INCLUDED__
+#define __bbcreaMaracasVisuSetwxVtkBaseViewLookupTable_h_INCLUDED__
+
+#include "bbcreaMaracasVisu_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+
+#include "wxVtkBaseView.h"
+#include "vtkScalarsToColors.h"
+
+namespace bbcreaMaracasVisu
+{
+
+class bbcreaMaracasVisu_EXPORT SetwxVtkBaseViewLookupTable
+ : 
+   public bbtk::AtomicBlackBox
+{
+  BBTK_BLACK_BOX_INTERFACE(SetwxVtkBaseViewLookupTable,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(BaseView1,wxVtkBaseView*);
+  BBTK_DECLARE_INPUT(BaseView2,wxVtkBaseView*);
+  BBTK_DECLARE_INPUT(BaseView3,wxVtkBaseView*);
+  BBTK_DECLARE_INPUT(BaseView4,wxVtkBaseView*);
+  BBTK_DECLARE_INPUT(ScalarToColors,vtkScalarsToColors*);
+  BBTK_DECLARE_INPUT(OutputFormat,int);
+//  BBTK_DECLARE_OUTPUT(Out,double);
+       BBTK_PROCESS(Process);
+       void Process();
+       void SetLookupTable(wxVtkBaseView* baseview , vtkScalarsToColors* scalartocolors, int outputformat );
+
+//===== 
+// 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(SetwxVtkBaseViewLookupTable,bbtk::AtomicBlackBox);
+  BBTK_NAME("SetwxVtkBaseViewLookupTable");
+  BBTK_AUTHOR("InfoDev");
+  BBTK_DESCRIPTION("No Description.");
+  BBTK_CATEGORY("empty");
+
+  BBTK_INPUT(SetwxVtkBaseViewLookupTable,BaseView1,"wxVtkBaseView 1",wxVtkBaseView*,"");
+  BBTK_INPUT(SetwxVtkBaseViewLookupTable,BaseView2,"wxVtkBaseView 2",wxVtkBaseView*,"");
+  BBTK_INPUT(SetwxVtkBaseViewLookupTable,BaseView3,"wxVtkBaseView 3",wxVtkBaseView*,"");
+  BBTK_INPUT(SetwxVtkBaseViewLookupTable,BaseView4,"wxVtkBaseView 4",wxVtkBaseView*,"");
+  BBTK_INPUT(SetwxVtkBaseViewLookupTable,ScalarToColors,"LookUp table",vtkScalarsToColors*,"");
+  BBTK_INPUT(SetwxVtkBaseViewLookupTable,OutputFormat,"default (1) VTK_LUMINANCE=1, VTK_LUMINANCE_ALPHA=2, VTK_RGB=3, VTK_RGBA=4",int,"");
+
+//  BBTK_OUTPUT(SetwxVtkBaseViewLookupTable,Out,"First output",double,"");
+
+BBTK_END_DESCRIBE_BLACK_BOX(SetwxVtkBaseViewLookupTable);
+//===== 
+// 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 bbcreaMaracasVisu
+
+#endif // __bbcreaMaracasVisuSetwxVtkBaseViewLookupTable_h_INCLUDED__
+
index b03173ef2ffc0475ab2f30cfd0e829c90aaca6fb..3398325ba00bc385b0958886eb551361facd7c7e 100644 (file)
 
 
 
-#include "vtkLookupTable.h"
-#include "vtkObjectFactory.h"
-
-class /*VTK_COMMON_EXPORT*/ vtkLookupTableDirectionVector2 : public vtkScalarsToColors
-{
-public:
-       // Description:
-       // Construct with range=[0,1]; and hsv ranges set up for rainbow color table 
-       // (from red to blue).
-       static vtkLookupTableDirectionVector2 *New();
-       
-       vtkTypeMacro(vtkLookupTableDirectionVector2,vtkScalarsToColors);
-       void PrintSelf(ostream& os, vtkIndent indent);
-
-       double *GetRange() { return this->GetTableRange(); };
-       void SetRange(double min, double max) { this->SetTableRange(min, max); };
-       void SetRange(double rng[2]) { this->SetRange(rng[0], rng[1]); };
-       
-       void SetTableRange(double r[2]); 
-       virtual void SetTableRange(double min, double max);
-       vtkGetVectorMacro(TableRange,double,2);
-                       
-       unsigned char *MapValue(double v);
-       
-       void GetColor(double x, double rgb[3]);
-       
-
-       void MapScalarsThroughTable2(void *input, unsigned char *output,
-                                                                int inputDataType, int numberOfValues,
-                                                                int inputIncrement, int outputIncrement);
-               
-protected:
-       double TableRange[2];
-       vtkLookupTableDirectionVector2(int sze=256, int ext=256);
-       ~vtkLookupTableDirectionVector2();
-               
-private:
-       vtkLookupTableDirectionVector2(const vtkLookupTableDirectionVector2&);  // Not implemented.
-       void operator=(const vtkLookupTableDirectionVector2&);  // Not implemented.
-};
-
-
-
-
-vtkStandardNewMacro(vtkLookupTableDirectionVector2);
-
-// Construct with range=(0,1); and hsv ranges set up for rainbow color table 
-// (from red to blue).
-vtkLookupTableDirectionVector2::vtkLookupTableDirectionVector2(int sze, int ext)
-{
-       this->TableRange[0] = 0.0;
-       this->TableRange[1] = 1.0;
-}
-
-//----------------------------------------------------------------------------
-vtkLookupTableDirectionVector2::~vtkLookupTableDirectionVector2()
-{
-}
-
-unsigned char *vtkLookupTableDirectionVector2::MapValue(double v)
-{
-       
-       //int idx = this->GetIndex(v);
-       //return (this->Table->GetPointer(0) + 4*idx);  
-       return 0;
-}
-
-void vtkLookupTableDirectionVector2::GetColor(double v, double rgb[3])
-{
-//     unsigned char *rgb8 = this->MapValue(v);
-//     rgb[0] = rgb8[0]/255.0;
-//     rgb[1] = rgb8[1]/255.0;
-//     rgb[2] = rgb8[2]/255.0;
-
-       rgb[0] = 1;
-       rgb[1] = 1;
-       rgb[2] = 0;
-}
-
-
-void vtkLookupTableDirectionVector2::SetTableRange(double r[2])
-{
-       this->SetTableRange(r[0],r[1]);
-}
-
-//----------------------------------------------------------------------------
-// Set the minimum/maximum scalar values for scalar mapping. Scalar values
-// less than minimum range value are clamped to minimum range value.
-// Scalar values greater than maximum range value are clamped to maximum
-// range value.
-void vtkLookupTableDirectionVector2::SetTableRange(double rmin, double rmax)
-{
-       if (rmax < rmin)
-    {
-               vtkErrorMacro("Bad table range: ["<<rmin<<", "<<rmax<<"]");
-               return;
-    }
-       
-       if (this->TableRange[0] == rmin && this->TableRange[1] == rmax)
-    {
-               return;
-    }
-       
-       this->TableRange[0] = rmin;
-       this->TableRange[1] = rmax;
-       
-       this->Modified();
-}
-
-
-
-//----------------------------------------------------------------------------
-// Although this is a relatively expensive calculation,
-// it is only done on the first render. Colors are cached
-// for subsequent renders.
-template<class T>
-void vtkLookupTableMapDirVectorEED2(vtkLookupTableDirectionVector2 *self, T *input, 
-                          unsigned char *output, int length, 
-                          int inIncr, int outFormat)
-{
-       int i;
-       for (i = 0; i < length; ++i)
-    {
-                       *output++ = static_cast<T>(input[0]);  // red
-                       *output++ = static_cast<T>(input[1]);  // green
-                       *output++ = static_cast<T>(input[2]);  // blue
-//                     *output++ = 255;
-                       input   = input+inIncr;
-       } // for
-
-}
-
-
-//----------------------------------------------------------------------------
-void vtkLookupTableDirectionVector2::MapScalarsThroughTable2(void *input, 
-                                             unsigned char *output,
-                                             int inputDataType, 
-                                             int numberOfValues,
-                                             int inputIncrement,
-                                             int outputFormat)
-{
-// if (this->UseMagnitude && inputIncrement > 1)
-// {
-     switch (inputDataType)
-     {
-       vtkTemplateMacro( vtkLookupTableMapDirVectorEED2(this,static_cast<VTK_TT*>(input),output,
-                        numberOfValues,inputIncrement,outputFormat);
-                        return 
-                        );
-        case VTK_BIT:
-           vtkErrorMacro("Cannot comput magnitude of bit array.");
-           break;
-        default:
-           vtkErrorMacro(<< "MapImageThroughTable: Unknown input ScalarType");
-     } /// switch
-// } //if
-}  
-
-
-//----------------------------------------------------------------------------
-void vtkLookupTableDirectionVector2::PrintSelf(ostream& os, vtkIndent indent)
-{
-       this->Superclass::PrintSelf(os,indent); 
-}
-
-
 
 
 //-------------------------------------------------------------------
@@ -203,17 +37,19 @@ void vtkLookupTableDirectionVector2::PrintSelf(ostream& os, vtkIndent indent)
 //-------------------------------------------------------------------
 vtkImageViewer2_XYZ::vtkImageViewer2_XYZ()
 {
-       _vtkimageviewer2 = vtkImageViewer2::New();
+       _colortable             = NULL;
+       _vtkimageviewer2        = vtkImageViewer2::New();
        _vtkimageviewer2->GetRenderer()->GradientBackgroundOn();
        _vtkimageviewer2->GetRenderer()->SetBackground( 0.33 , 0.33 , 0.33 );
        _vtkimageviewer2->GetRenderer()->SetBackground2( 0.66 , 0.66 , 0.66 );
-       _colortable = NULL;
 }
+
 //-------------------------------------------------------------------
 vtkImageViewer2_XYZ::~vtkImageViewer2_XYZ()
 {
        //_vtkimageviewer2->Delete();
 }
+
 //-------------------------------------------------------------------
 void vtkImageViewer2_XYZ::SetExtentDimension(int x1,int x2,
                                                                                         int y1,int y2,
@@ -301,7 +137,7 @@ void vtkImageViewer2_XYZ::setScalarsToColors(vtkScalarsToColors* colortable, int
 /* outputformat      VTK-8.1.1/Common/Core/vtkSystemIncludes.h
        VTK_LUMINANCE       1
        VTK_LUMINANCE_ALPHA 2
-       VTK_RGB             3
+       VTK_RGB             3  OK
        VTK_RGBA            4
 */
        if( _colortable!=colortable)
@@ -309,7 +145,7 @@ void vtkImageViewer2_XYZ::setScalarsToColors(vtkScalarsToColors* colortable, int
                _colortable = colortable;
                _vtkimageviewer2->GetWindowLevel()->SetOutputFormat( outputformat );
                _vtkimageviewer2->GetWindowLevel()->SetLookupTable(colortable);
-//             _vtkimageviewer2->GetWindowLevel()->SetOutputFormatToRGB();
+               _vtkimageviewer2->GetWindowLevel()->SetOutputFormatToRGB();
 //     vtkLookupTableDirectionVector2 *_LutEED = vtkLookupTableDirectionVector2::New();
 //     _LutEED->SetVectorModeToRGBColors();
 //     _vtkimageviewer2->GetWindowLevel()->SetLookupTable(_LutEED);
index b20ea7826248ce234529802c943653ba9e3886f7..7bfaa8640f2a663d6ef040567bb07113df37b44e 100644 (file)
@@ -35,7 +35,8 @@
 #include "vtkImageMapToWindowLevelColors.h"
 #include "vtkColorTransferFunction.h"
 
-class  creaMaracasVisu_EXPORT vtkImageViewer2_XYZ{
+class  creaMaracasVisu_EXPORT vtkImageViewer2_XYZ
+{
 public:
        vtkImageViewer2_XYZ();
        ~vtkImageViewer2_XYZ();