#ifndef RULER_H
#define RULER_H

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

class ruler : public gobjContainer
{
public:

  /** Let len be the rulers length. 
      Every 1.0 unit a major tick is drawn.
      Every 0.5 unit a middle tick is drawn.
      Every 0.1 unit a minor tick is drawn.
      The ruler is scaled and exists from pos0 to pos1. */
  void addStraightRuler
  (
    doublec len,
    point2<double> const & pos0,
    point2<double> const & pos1,
    doublec ticklenmajor,
    doublec ticklenmiddle,
    doublec ticklenminor
  );

  /** Draw a circular arc ruler.
      Every 10 degrees a major tick is drawn.
      Every 5 degrees a middle tick is drawn.
      Every 1 degree a minor tick is drawn. */
  void addAngleRuler
  (
    doublec radius,   // The rulers radius. Ticks point inwards.
    doublec angle0,   // Degrees start
    doublec angle1,   // Degrees finish
    doublec ticklenmajor,
    doublec ticklenmiddle,
    doublec ticklenminor
  );
    

};



#endif



