]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/manualPaint/baseFilterManualPaint.h
#3474 Refresh optimization DrawAxisTree3D Box
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / manualPaint / baseFilterManualPaint.h
index 21d38c5f503bcf70d035fc7aa0e407c2052da28c..35efd9f6c39085c221bb136e58e0d6003940ec45 100644 (file)
 #include "imageModificationManager.h"
 
 
-#define GETVALUE_MANUALPAINT(VALUE,POINTER,SCALARTYPE)                                                                                 \
-       if              (SCALARTYPE==VTK_DOUBLE)                { VALUE=(double)*((double*)POINTER);            }       \
-       else if (SCALARTYPE==VTK_FLOAT)                 { VALUE=(double)*((float*)POINTER);                     }       \
-       else if (SCALARTYPE==VTK_CHAR)                  { VALUE=(double)*((char*)POINTER);                      }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_CHAR) { VALUE=(double)*((unsigned char*)POINTER);     }       \
-       else if (SCALARTYPE==VTK_INT)                   { VALUE=(double)*((int*)POINTER);                       }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_INT)  { VALUE=(double)*((unsigned int*)POINTER);      }       \
-       else if (SCALARTYPE==VTK_LONG)                  { VALUE=(double)*((long*)POINTER);                      }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_LONG) { VALUE=(double)*((unsigned long*)POINTER);     }       \
-       else if (SCALARTYPE==VTK_SHORT)                 { VALUE=(double)*((short*)POINTER);                     }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_SHORT){ VALUE=(double)*((unsigned short*)POINTER);}   \
-       else { printf("EED GETVALUE_MANUALPAINT   error\n"); }
-
-#define GETVALUE2_MANUALPAINT(VALUE,POINTER,SCALARTYPE,INDEX)                                                                          \
-       if              (SCALARTYPE==VTK_DOUBLE)                { VALUE=(double)((double*)POINTER)[INDEX];                      }       \
-       else if (SCALARTYPE==VTK_FLOAT)                 { VALUE=(double)((float*)POINTER)[INDEX];                       }       \
-       else if (SCALARTYPE==VTK_CHAR)                  { VALUE=(double)((char*)POINTER)[INDEX];                        }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_CHAR) { VALUE=(double)((unsigned char*)POINTER)[INDEX];       }       \
-       else if (SCALARTYPE==VTK_INT)                   { VALUE=(double)((int*)POINTER)[INDEX];                         }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_INT)  { VALUE=(double)((unsigned int*)POINTER)[INDEX];        }       \
-       else if (SCALARTYPE==VTK_LONG)                  { VALUE=(double)((long*)POINTER)[INDEX];                        }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_LONG) { VALUE=(double)((unsigned long*)POINTER)[INDEX];       }       \
-       else if (SCALARTYPE==VTK_SHORT)                 { VALUE=(double)((short*)POINTER)[INDEX];                       }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_SHORT){ VALUE=(double)((unsigned short*)POINTER)[INDEX];      }       \
-       else { printf("EED GETVALUE2_MANUALPAINT   error\n"); }
-
-#define SETVALUE2_MANUALPAINT(VALUE,POINTER,SCALARTYPE,INDEX)                                                                                          \
-       if              (SCALARTYPE==VTK_DOUBLE)                { ((double*)POINTER)[INDEX]                     = (double)VALUE;                }       \
-       else if (SCALARTYPE==VTK_FLOAT)                 { ((float*)POINTER)[INDEX]                      = (float)VALUE;                 }       \
-       else if (SCALARTYPE==VTK_CHAR)                  { ((char*)POINTER)[INDEX]                       = (char)VALUE;                  }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_CHAR) { ((unsigned char*)POINTER)[INDEX]      = (unsigned char)VALUE; }       \
-       else if (SCALARTYPE==VTK_INT)                   { ((int*)POINTER)[INDEX]                        = (int)VALUE;                   }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_INT)  { ((unsigned int*)POINTER)[INDEX]       = (unsigned int)VALUE;  }       \
-       else if (SCALARTYPE==VTK_LONG)                  { ((long*)POINTER)[INDEX]                       = (long)VALUE;                  }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_LONG) { ((unsigned long*)POINTER)[INDEX]      = (unsigned long)VALUE; }       \
-       else if (SCALARTYPE==VTK_SHORT)                 { ((short*)POINTER)[INDEX]                      = (short)VALUE;                 }       \
-       else if (SCALARTYPE==VTK_UNSIGNED_SHORT){ ((unsigned short*)POINTER)[INDEX] = (unsigned short)VALUE;}   \
-       else { printf("EED SETVALUE2_MANUALPAINT   error\n"); }
-
-
-#define DEFINEPOINTERIMAGE_MANUALPAINT(VALUE,SCALARSIZE,POINTERIMAGE,SCALARTYPE,IMAGE)         \
-       double  VALUE                   = 0;                                                                                                                    \
-       int     SCALARSIZE              = IMAGE->GetScalarSize();                                                                               \
-       char    *POINTERIMAGE   = (char*)(IMAGE->GetScalarPointer());                                                   \
-       int             SCALARTYPE              = IMAGE->GetScalarType();                               
-
-
-
-
 class baseFilterManualPaint {
 
 public:
        baseFilterManualPaint();
        virtual ~baseFilterManualPaint();
-
        virtual void SetImages(vtkImageData *image,vtkImageData *image2);
        void SetPoint(int px, int py, int pz);
        void Set2D3D(int dim2D3D);
        void SetGrayLevel(double graylevel);
        void SetDirection(int direction);
-       void ResetGeneralMinMax();
-       void SetGeneralMinMax(int minX, int maxX, int minY, int maxY, int minZ, int maxZ);
+//EED 2020-04-28  BORRAME Change to local variables to use with openmp
+//     void ResetGeneralMinMax();
+//     void SetGeneralMinMax(int minX, int maxX, int minY, int maxY, int minZ, int maxZ);
        void GetScalarRange(double * range);
-
     void SetRangeMin( int min );//DFCH
     void SetRangeMax( int max );//DFCH
     int GetRangeMin( ); //DFCH
     int GetRangeMax( ); //DFCH
-
        ImageMManager* GetImageMManager(); //DFCH
        void CleanImageMManager(); //DFCH
-       virtual void Run();
-
+       virtual void Run(int px, int py, int pz);
 private:
-
 protected:
        ImageMManager   *_IMManager; //Saves the last modified region (MinX, MaxX, MinY, MaxY, MinZ, MaxZ).
        vtkImageData    *_image;
        vtkImageData    *_image2;
        int                     _direction;
-       int                     _px; // start point of the brush
-       int                     _py;
-       int                     _pz;
-       int                     _pMinX; // General min max of many brush actions
-       int                     _pMinY;
-       int                     _pMinZ;
-       int                     _pMaxX;
-       int                     _pMaxY;
-       int                     _pMaxZ;
        int                     _minX; // min max of the image
-       int                     _maxX;
        int                     _minY;
-       int                     _maxY;
        int                     _minZ;
-       int                     _maxZ;
-       long int                _OneColumn;
-       long int                _OneLine;
-       long int                _OnePlane;
+
+//EED 2020-04-28  BORRAME Change to local variables to use with openmp
+//     int                     _px; // start point of the brush
+//     int                     _py;
+//     int                     _pz;
+//     int                     _maxX;
+//     int                     _maxY;
+//     int                     _maxZ;
+//     int                     _pMinX; // General min max of many brush actions
+//     int                     _pMinY;
+//     int                     _pMinZ;
+//     int                     _pMaxX;
+//     int                     _pMaxY;
+//     int                     _pMaxZ;
+
+       int                     _dimX;
+       int                     _dimY;
+       int                     _dimZ;
        bool                    _2D3D;
        double                  _graylevel;
     int                        _RangeMin;
     int                        _RangeMax;
 
+//EED 2020-04-28  BORRAME Change to local variables to use with openmp
+       long int                _OneColumn;
+       long int                _OneLine;
+       long int                _OnePlane;
+
 
 };