text: #include "macros.h"
  #include <opencv2/core.hpp>
  
  #ifndef __FF_MATTYPES_H__
  #define __FF_MATTYPES_H__
  
  #define FF_MAT_TYPE(CONST) \
    module->Set(Nan::New<v8::String>(#CONST).ToLocalChecked(), Nan::New<v8::Integer>(CONST));
  
  static void initMatTypes(v8::Local<v8::Object> module) {
  	FF_MAT_TYPE(CV_8U);
  	FF_MAT_TYPE(CV_8S);
  	FF_MAT_TYPE(CV_16U);
  	FF_MAT_TYPE(CV_16S);
  	FF_MAT_TYPE(CV_32S);
  	FF_MAT_TYPE(CV_32F);
  	FF_MAT_TYPE(CV_64F);
  
  	FF_MAT_TYPE(CV_8UC1);
  	FF_MAT_TYPE(CV_8UC2);
  	FF_MAT_TYPE(CV_8UC3);
  	FF_MAT_TYPE(CV_8UC4);
  
  	FF_MAT_TYPE(CV_8SC1);
  	FF_MAT_TYPE(CV_8SC2);
  	FF_MAT_TYPE(CV_8SC3);
  	FF_MAT_TYPE(CV_8SC4);
  
  	FF_MAT_TYPE(CV_16UC1);
  	FF_MAT_TYPE(CV_16UC2);
  	FF_MAT_TYPE(CV_16UC3);
  	FF_MAT_TYPE(CV_16UC4);
  
  	FF_MAT_TYPE(CV_16SC1);
  	FF_MAT_TYPE(CV_16SC2);
  	FF_MAT_TYPE(CV_16SC3);
  	FF_MAT_TYPE(CV_16SC4);
  
  	FF_MAT_TYPE(CV_32SC1);
  	FF_MAT_TYPE(CV_32SC2);
  	FF_MAT_TYPE(CV_32SC3);
  	FF_MAT_TYPE(CV_32SC4);
  
  	FF_MAT_TYPE(CV_32FC1);
  	FF_MAT_TYPE(CV_32FC2);
  	FF_MAT_TYPE(CV_32FC3);
  	FF_MAT_TYPE(CV_32FC4);
  
  	FF_MAT_TYPE(CV_64FC1);
  	FF_MAT_TYPE(CV_64FC2);
  	FF_MAT_TYPE(CV_64FC3);
  	FF_MAT_TYPE(CV_64FC4);
  }
  
  #endif
  