#ifndef PROTRACTOR_H
#define PROTRACTOR_H

#include <string>
#include <vector>
using namespace std;

#include <gobj.h>
#include <typedefs.h>


/*!
\brief A protractor is a measuring tool.

This draws the protractor allowing the client
 to configure the size, rulers and labels.
*/
class protractor : public gobjContainer
{
public:

  /** The radius controls the protractors size. */
  double radius;

  /** Convert a vector of 2D points from polar to cartesian. */
  static void converttocartesian
  (
    point2<double> &  p,
    point2<double> const & p2
  );

  /** The protractors great circle is defined by the radius. */
  protractor(doublec _radius);

  void addCircles(uintc n);
  void addAxes(uintc n);

  void addCirclesText(vector<string> const & v);

  void addRadiusRuler
  (
    doublec ticklenmajor,
    doublec ticklenmiddle,
    doublec ticklenminor
  );

  void addAngleRuler
  (
    doublec ticklenmajor,
    doublec ticklenmiddle,
    doublec ticklenminor
  );

};



#endif



