#ifndef MT_COLOREDITOR__HPP
#define MT_COLOREDITOR__HPP

#include "Colorspace.hpp"

class MT_colorEditor
{
public:
  /* This class will be used in different context for colorEditor parallelization. */
  /* Generic members. Not all of them will always be used. */
  float* data;
  unsigned int length;
  unsigned int colorspace;
  bool linear;

  float lMin, lMax;
  float cMin, cMax;
  float hMin, hMax;
  float tolerance;
  float edit_hue;
  float edit_exposure;
  float edit_contrast;
  float edit_saturation;
  bool mask;
  



  MT_colorEditor(float* d = NULL, unsigned int l = 0, unsigned int co = Colorspace::RGB, bool lin = false, float lMi = 0.0f, float lMa = 0.0f, float cMi = 0.0f, float cMa = 0.0f, float hMi = 0.0f, float hMa = 0.0f, float t = 0.0f, float eh = 0.0f, float ee = 0.0f, float ec = 0.0f, float es = 0.0f, bool m = false) :data(d), length(l), colorspace(co), linear(lin), lMin(lMi), lMax(lMa), cMin(cMi), cMax(cMa), hMin(hMi), hMax(hMa), tolerance(t), edit_hue(eh), edit_exposure(ee), edit_contrast(ec), edit_saturation(es), mask(m) {};
};

#endif