//作った人:ニコニコ技術部　akira_you
//ライセンス:勝手にコピペして使ってＯＫ　
//ソース弄ったら弄ったよ！ってこのファイルの先頭に書いてね

#ifndef __MARKER_H
#define __MARKER_H
#include<opencv2/opencv.hpp>
#include<vector>
typedef std::vector<cv::Point2f> Pts;
class OppaiMarker{
 private:
  cv::Mat mini,mix;//画像処理ばっふぁ
  Pts now_pts,ave_pts,base_pts; //生データ
  Pts now_cpts,ave_cpts,base_cpts;//無駄なモノを消したデータ
  std::vector<int> tarid;//nowとbase,aveのindex変換
 public:
  OppaiMarker();

  //マーカー位置取得
  //now:現在位置
  //ave:最近の平均位置
  //base:初期位置（偶に修正される)
  const Pts &now() const{return now_cpts;}
  const Pts &ave() const{return ave_cpts;}
  const Pts &base() const{return base_cpts;}
  //撮影画像を入れる
  void kick(cv::Mat &tmp);

  //デバグ用:rawはnowとave,baseの間で引数が対応付いてない
  const Pts &nowRaw() const{return now_pts;}
  const Pts &aveRaw() const{return ave_pts;}
  const Pts &baseRaw() const{return base_pts;}
};
#endif
