class IR_prediction: public bist_plugin{
public:
  IR_prediction(immagine* image, string libpath);
  virtual ~IR_prediction();
  
  virtual bool act(int e);
  
  
  virtual void register_plugin();
  virtual bool time_to_act();
  

  virtual bool need_atom();
  virtual bool need_leg();

  virtual string libpath();
  void inizialize();


  void get_paths(string start);

  gruppo get_residual(std::string file, bool& has_error);

  immagine get_residual_immagine(std::string file, bool& has_error);

  bool generate_plot(gruppo mol);

  bool add_peak(std::string file);

  bool match(gruppo mol, gruppo r);

  virtual std::string menu_path();

  const static std::string IR_dir;

  const static std::string skip_label;

protected:
  spectra_plot::plot_window _spectrum;
  bool  _has_to_act;

  std::vector<std::string> _resid_paths;

  std::vector<std::string> _resid_excluded;

  std::map<std::string,float> _peak_height;

};

extern "C" bist_plugin* create_plugin(immagine* imm, string libpath);
extern "C"  void destroy_plugin(bist_plugin* j);

