class CircleAnimatoOld extends Animator{
  int repeatCount;
  int count;

  LinearInterpolation funcr;

  Point origin;
  int radius;

  public CircleAnimatoOld(Visual comp, int radius){
    super(comp);

    repeatCount = duration / cycle;
    count = 0;

    funcr = new LinearInterpolation(0,(float) (2*Math.PI),repeatCount);

    origin = comp.getLocation();
    this.radius = radius;
  }

  @Override
  public void actionPerformed(ActionEvent e) {<FILL_FUNCTION_BODY>}
}


    float r = funcr.getValue(count);

    int x = (int) (origin.x + (int) radius * Math.sin(r));
    int y=  (int) (origin.y + (int) radius * Math.cos(r));

    Point p = new Point(x,y);

    Rectangle r1 = comp.getBounds();

    comp.setLocation(p);

    // r1 stores the union of the bounds before/after the animated step
    Rectangle r2 = comp.getBounds();
    r1.add(r2);

    comp.getParent().getParent().repaint(r1.x,r1.y,r1.width,r1.height);
    //repaint(r1);
    //      comp.getParent().invalidate();
    //      comp.repaint();

    if (count == repeatCount)
      count = 0;
    else
      count++;

  
<methods>public void <init>(org.sikuli.guide.Visual) ,public boolean isPlayed() ,public boolean isRunning() ,public void start() ,public void stop() <variables>org.sikuli.guide.Visual comp,int cycle,int duration,boolean played,javax.swing.Timer timer