Commit c3f14a13 authored by Deepak Rangarajan's avatar Deepak Rangarajan Committed by Mark Meredith
Browse files

Switch to atan2 and add assert

parent a9aca05c
Loading
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -146,14 +146,13 @@ double signed_distance_3d(const LinearExtrude &lin_ext, double xx, double yy,

double signed_distance_3d(const RotateExtrude &rot_ext, double xx, double yy,
                          double zz) {
  double tt = atan(yy / xx) * DEGREES_PER_RADIAN;
  if ((xx < 0 && yy >= 0) || (xx < 0 && yy < 0))
    tt += 180; // Quadrants II & III
  else if (xx >= 0 && yy < 0)
    tt += 360; // Quadrant IV

  double sign_t = (tt >= 0 && tt <= rot_ext.angle) ? -1.0 : 1.0;
  double dist_t = std::min(std::fabs(rot_ext.angle - tt), std::fabs(360 - tt));
  double tt = std::atan2(yy, xx) * DEGREES_PER_RADIAN;
  tt = tt >= 0 ? tt : 360 + tt;

  assert(tt >= 0 && tt <= 360); //tt must be between 0 and 360

  double sign_t = (tt <= rot_ext.angle) ? -1.0 : 1.0;
  double dist_t = std::min(std::fabs(rot_ext.angle - tt), (360 - tt));

  auto XX = std::hypot(xx, yy);
  auto YY = zz;