summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/angle.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/angle.h')
-rw-r--r--Build/source/utils/asymptote/angle.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/angle.h b/Build/source/utils/asymptote/angle.h
new file mode 100644
index 00000000000..0adaa4a3d31
--- /dev/null
+++ b/Build/source/utils/asymptote/angle.h
@@ -0,0 +1,41 @@
+/*****
+ * angle.h
+ * Andy Hammerlindl 2004/04/29
+ *
+ * For degree to radian conversion and visa versa.
+ *****/
+
+#ifndef ANGLE_H
+#define ANGLE_H
+
+#include <cmath>
+#include "camperror.h"
+
+namespace camp {
+
+const double PI=acos(-1.0);
+
+const double Cpiby180=PI/180.0;
+const double C180bypi=180.0/PI;
+
+inline double radians(double theta)
+{
+ return theta*Cpiby180;
+}
+
+inline double degrees(double theta)
+{
+ return theta*C180bypi;
+}
+
+// Wrapper for atan2 with sensible (lexical) argument order and (0,0) check
+inline double angle(double x, double y)
+{
+ if(x == 0.0 && y == 0.0)
+ reportError("taking angle of (0,0)");
+ return atan2(y,x);
+}
+
+} //namespace camp
+
+#endif