View difference between Paste ID: 0zvBj6TE and 0JpjsyNf
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,20 @@
5+
@@ -70,6 +70,34 @@
6
 	return a.x() * b.y() - b.x() * a.y();
7
 }
8
 
9
+/**
10-
+ * wrapAngle - Приводит значение угла к соответствующему значению из полуинтервала [0, 2*Pi)
10+
+ * wrapAngle - Приводит значение угла к соответствующему значению из полуинтервала [-Pi, Pi)
11
+ */
12
+inline double wrapAngle(double& angle)
13
+{
14
+	if ((angle >= -M_PI) && (angle < M_PI))
15
+		return angle;
16
+
17
+	else if (angle > -M_PI)
18
+		return wrapAngle(angle -= 2*M_PI);
19
+	else 
20
+		return wrapAngle(angle += 2*M_PI);
21
 }
22
 
23
+/**
24
+ * wrapAngle0_2Pi - Приводит значение угла к соответствующему значению из полуинтервала [0, 2*Pi)
25
+ */
26
+inline double wrapAngle0_2Pi(double& angle)
27
+{
28
+	if ((angle >= 0) && (angle < 2*M_PI))
29
+		return angle;
30
+
31
+	else if (angle > 0)
32
+		return wrapAngle0_2Pi(angle -= 2*M_PI);
33
+	else 
34
+		return wrapAngle0_2Pi(angle += 2*M_PI);
35
+}
36
+
37
+}
38
+
39
 #endif
40
\ No newline at end of file