Program Listing for File Scene.h

Program Listing for File Scene.h#

Return to documentation for file (src/main/cpp/lib/Scene.h)

#ifndef SCENE_H_
#define SCENE_H_

#include <algorithm>
#include "CairoDrawer.h"
#include "DataSet.h"
#include "Configuration.h"
#include "IOVector.h"

class Scene
{
private:
  DefDataSet m_set;

  std::unique_ptr<Drawer> m_drawer;

  OutputGrid m_grid;
  std::vector<InputAxis> m_axis;
  std::vector<IOVector> m_iov;

public:
  Scene ();

  void
  update (void);

  std::vector<DefVariable>
  get_input_variables () const;

  std::vector<DefVariable>
  get_output_variables () const;

  void
  toggle_input (std::size_t index, bool mode);

  void
  toggle_output (std::size_t index, bool mode);

  void
  swap_inputs (std::size_t from_index, std::size_t to_index);

  void
  swap_outputs (std::size_t from_index, std::size_t to_index);

  void
  restrict_input (std::size_t index, double lower_restr, double upper_restr);

  void
  restrict_output (std::size_t index, double lower_restr, double upper_restr);

  void
  save_data (std::string file_path);

private:
  void
  draw_components (void);

  void
  initialize (void);
};

#endif /* SCENE_H_ */