   }
 }
 
-void drawCircle(int centerX, int centerY, int radius, int xDegreesPerCycle) {
-  drawEllipse(centerX, centerY, radius, radius, xDegreesPerCycle);
+void drawCircle(int centerX, int centerY, int radius, int xDegreesPerCycle, int direction) {
+  drawEllipse(centerX, centerY, radius, radius, xDegreesPerCycle, direction);
 }
 
-void drawEllipse(int centerX, int centerY, int radiusX, int radiusY, int xDegreesPerCycle) {
+void drawEllipse(int centerX, int centerY, int radiusX, int radiusY, int xDegreesPerCycle, int direction) {
+  const int directionSign = (direction == 0) ? 1 : -1;
   const int maxDisplacementFromCenter = USABLE_DEGREES / 2;
 
   const int startX = centerX - radiusX;

    
    panServo.write(targetPanServoDegrees);

    const int targetTiltDegrees = centerY + sqrt(pow(radiusY, 2) * (1.0 - pow(targetDegrees - centerX, 2) / pow(radiusX, 2)));
    const int targetTiltServoDegrees = convertNormalizedAngleToServoAngle(targetTiltDegrees);
    tiltServo.write(targetTiltServoDegrees);



//    performRangeTest();

//    drawCircle(0, 0, numberOfUsableDegrees / 2, 15, CLOCKWISE);

    drawEllipse(0, 0, USABLE_DEGREES / 4, USABLE_DEGREES / 4, 3, CLOCKWISE);

    disableLaser();
  }
