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