5#ifndef ALSON_CLASSIC_BASE_ENTITY_ALSON_MAT_H 
    6#define ALSON_CLASSIC_BASE_ENTITY_ALSON_MAT_H 
   18#define ALSON_MAT_CN_SHIFT   3 
   19#define ALSON_MAT_DEPTH_MAX  (1 << ALSON_MAT_CN_SHIFT) 
   23#define ALSON_MAT_16U  2 
   24#define ALSON_MAT_16S  3 
   25#define ALSON_MAT_32S  4 
   26#define ALSON_MAT_32F  5 
   27#define ALSON_MAT_64F  6 
   28#define ALSON_MAT_16F  7 
   30#define ALSON_MAT_MAT_DEPTH_MASK       (ALSON_MAT_DEPTH_MAX - 1) 
   31#define ALSON_MAT_MAT_DEPTH(flags)     ((flags) & ALSON_MAT_MAT_DEPTH_MASK) 
   33#define ALSON_MAT_MAKETYPE(depth, cn) (ALSON_MAT_MAT_DEPTH(depth) + (((cn)-1) << ALSON_MAT_CN_SHIFT)) 
   34#define ALSON_MAT_MAKE_TYPE ALSON_MAT_MAKETYPE 
   50#define ALSON_MAT_8UC1 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,1) 
   51#define ALSON_MAT_8UC2 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,2) 
   52#define ALSON_MAT_8UC3 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,3) 
   53#define ALSON_MAT_8UC4 ALSON_MAT_MAKETYPE(ALSON_MAT_8U,4) 
   54#define ALSON_MAT_8UC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_8U,(n)) 
   56#define ALSON_MAT_8SC1 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,1) 
   57#define ALSON_MAT_8SC2 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,2) 
   58#define ALSON_MAT_8SC3 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,3) 
   59#define ALSON_MAT_8SC4 ALSON_MAT_MAKETYPE(ALSON_MAT_8S,4) 
   60#define ALSON_MAT_8SC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_8S,(n)) 
   62#define ALSON_MAT_16UC1 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,1) 
   63#define ALSON_MAT_16UC2 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,2) 
   64#define ALSON_MAT_16UC3 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,3) 
   65#define ALSON_MAT_16UC4 ALSON_MAT_MAKETYPE(ALSON_MAT_16U,4) 
   66#define ALSON_MAT_16UC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_16U,(n)) 
   68#define ALSON_MAT_16SC1 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,1) 
   69#define ALSON_MAT_16SC2 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,2) 
   70#define ALSON_MAT_16SC3 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,3) 
   71#define ALSON_MAT_16SC4 ALSON_MAT_MAKETYPE(ALSON_MAT_16S,4) 
   72#define ALSON_MAT_16SC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_16S,(n)) 
   74#define ALSON_MAT_32SC1 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,1) 
   75#define ALSON_MAT_32SC2 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,2) 
   76#define ALSON_MAT_32SC3 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,3) 
   77#define ALSON_MAT_32SC4 ALSON_MAT_MAKETYPE(ALSON_MAT_32S,4) 
   78#define ALSON_MAT_32SC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_32S,(n)) 
   80#define ALSON_MAT_32FC1 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,1) 
   81#define ALSON_MAT_32FC2 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,2) 
   82#define ALSON_MAT_32FC3 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,3) 
   83#define ALSON_MAT_32FC4 ALSON_MAT_MAKETYPE(ALSON_MAT_32F,4) 
   84#define ALSON_MAT_32FC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_32F,(n)) 
   86#define ALSON_MAT_64FC1 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,1) 
   87#define ALSON_MAT_64FC2 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,2) 
   88#define ALSON_MAT_64FC3 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,3) 
   89#define ALSON_MAT_64FC4 ALSON_MAT_MAKETYPE(ALSON_MAT_64F,4) 
   90#define ALSON_MAT_64FC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_64F,(n)) 
   92#define ALSON_MAT_16FC1 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,1) 
   93#define ALSON_MAT_16FC2 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,2) 
   94#define ALSON_MAT_16FC3 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,3) 
   95#define ALSON_MAT_16FC4 ALSON_MAT_MAKETYPE(ALSON_MAT_16F,4) 
   96#define ALSON_MAT_16FC(n) ALSON_MAT_MAKETYPE(ALSON_MAT_16F,(n)) 
  311    static 
AlsonMat create(
int rows, 
int cols, 
int type);
 
  334    static 
AlsonMat create(
int rows, 
int cols, 
int type, uint8_t* data);
 
  412    void save(const std::
string& filename);
 
  427    uint8_t* data()
 const { 
return m_data; }
 
  445    void setData(uint8_t* data) { m_data = data; }
 
  535    std::allocator<uint8_t> m_allocator;
 
 
 
AlsonMat(AlsonMat &&) noexcept
 
AlsonMat(int r, int c, int t)
 
AlsonMat(const AlsonMat &)
 
void setData(uint8_t *data)
 
AlsonMat(int r, int c, int t, uint8_t *d)
 
AlsonMat & operator=(const AlsonMat &)