Maarten Lankhorst : dsound: Implement AngleBetweenVectorsDeg as a call to AngleBetweenVectorsRad.

Alexandre Julliard julliard at winehq.org
Mon Nov 12 06:25:22 CST 2007


Module: wine
Branch: master
Commit: 545a774fccd2d66dba79a6319ebe4d207fef1c88
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=545a774fccd2d66dba79a6319ebe4d207fef1c88

Author: Maarten Lankhorst <maarten at codeweavers.com>
Date:   Fri Nov  9 20:12:09 2007 +0100

dsound: Implement AngleBetweenVectorsDeg as a call to AngleBetweenVectorsRad.

---

 dlls/dsound/sound3d.c |   24 ++++++------------------
 1 files changed, 6 insertions(+), 18 deletions(-)

diff --git a/dlls/dsound/sound3d.c b/dlls/dsound/sound3d.c
index cd64cc2..db4390f 100644
--- a/dlls/dsound/sound3d.c
+++ b/dlls/dsound/sound3d.c
@@ -102,8 +102,8 @@ static inline D3DVALUE RadToDeg (D3DVALUE angle)
 	return newangle;
 }
 
-/* angle between vectors - deg version */
-static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECTOR *b)
+/* angle between vectors - rad version */
+static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECTOR *b)
 {
 	D3DVALUE la, lb, product, angle, cos;
 	/* definition of scalar product: a*b = |a|*|b|*cos...therefore: */
@@ -112,26 +112,14 @@ static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECT
 	lb = VectorMagnitude (b);
 	cos = product/(la*lb);
 	angle = acos(cos);
-	/* we now have angle in radians */
-	angle = RadToDeg(angle);
-	TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f degrees\n",  a->x, a->y, a->z, b->x,
-	      b->y, b->z, angle);
+	TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f radians (%f degrees)\n",  a->x, a->y, a->z, b->x,
+	      b->y, b->z, angle, RadToDeg(angle));
 	return angle;	
 }
 
-/* angle between vectors - rad version */
-static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECTOR *b)
+static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECTOR *b)
 {
-	D3DVALUE la, lb, product, angle, cos;
-	/* definition of scalar product: a*b = |a|*|b|*cos...therefore: */
-	product = ScalarProduct (a,b);
-	la = VectorMagnitude (a);
-	lb = VectorMagnitude (b);
-	cos = product/(la*lb);
-	angle = acos(cos);
-	TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f radians\n",  a->x, a->y, a->z, b->x,
-	      b->y, b->z, angle);
-	return angle;	
+	return RadToDeg(AngleBetweenVectorsRad(a, b));
 }
 
 /* calculates vector between two points */




More information about the wine-cvs mailing list