View difference between Paste ID: 8wgqAiYQ and 3EkSQU1R
SHOW: | | - or go back to the newest paste.
1
Index: OSGMath.h
2
===================================================================
3
--- OSGMath.h	(revision 91664)
4
+++ OSGMath.h	(working copy)
5-
@@ -70,6 +70,38 @@
5+
@@ -70,6 +70,22 @@
6
 	return a.x() * b.y() - b.x() * a.y();
7
 }
8
 
9
+/**
10
+ * wrapAngle - Приводит значение угла к соответствующему значению из полуинтервала [-Pi, Pi)
11
+ */
12-
+inline double wrapAngle(const double& angle)
12+
+inline double wrapAngle(double angle)
13
+{
14-
+	double wrappedAngle = angle;
14+
+	return angle - 2 * M_PI * floor((angle + M_PI) / (2 * M_PI));
15-
+	if (wrappedAngle < -M_PI)
15+
16-
+		while (wrappedAngle < -M_PI)
16+
17-
+			wrappedAngle += 2*M_PI;
17+
18-
+	else if (wrappedAngle >= M_PI)
18+
19-
+		while (wrappedAngle >= M_PI)
19+
20-
+			wrappedAngle -= 2*M_PI;
20+
+inline double wrapAngle0_2Pi(double angle)
21
+{
22-
+    return wrappedAngle;
22+
+	return angle - 2 * M_PI * floor(angle / (2 * M_PI));
23
+}
24
+
25
+}
26
+
27
 #endif
28-
+inline double wrapAngle0_2Pi(const double& angle)
28+