Program Listing for File OutputGrid.h

Program Listing for File OutputGrid.h#

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

#ifndef COINPUTGRID_H_
#define COINPUTGRID_H_

#include <cstddef>
#include <vector>

#include "Scale.h"
#include "DataSet.h"
#include "Configuration.h"
#include "Coordinates.h"

enum Direction
{
  COUNTER_CLOCKWISE, CLOCKWISE
};

class OutputGrid
{
private:
  std::vector<DefVariable> output_variables;
  std::size_t m_num_outputs;

  MultiScale m_scale;

  Angle m_start, m_end;
  double m_radius;
  double m_height;
  Direction m_direction;
public:
  OutputGrid (const std::vector<DefVariable>& output_vars, const Angle & start,
          const Angle & end, double radius, double height, Direction dir);

  const DefVariable&
  get_var (std::size_t num_output) const;

  std::size_t
  get_num_outputs () const
  {
    return m_num_outputs;
  }

  const Angle&
  get_start () const
  {
    return m_start;
  }

  void
  set_start (const Angle& start)
  {
    m_start = start;
  }

  const Angle&
  get_end () const
  {
    return m_end;
  }

  void
  set_end (const Angle& end)
  {
    m_end = end;
  }

  double
  get_radius () const
  {
    return m_radius;
  }

  void
  set_radius (double radius)
  {
    m_radius = radius;
  }

  double
  get_height () const
  {
    return m_height;
  }

  void
  set_height (double height)
  {
    m_height = height;
  }

  Direction
  get_direction () const
  {
    return m_direction;
  }

  void
  set_direction (Direction direction)
  {
    m_direction = direction;
  }

  const MultiScale&
  get_scale () const
  {
    return m_scale;
  }
};

#endif /* COINPUTGRID_H_ */