Module: wine Branch: master Commit: 545a774fccd2d66dba79a6319ebe4d207fef1c88 URL: http://source.winehq.org/git/wine.git/?a=commit;h=545a774fccd2d66dba79a6319e...
Author: Maarten Lankhorst maarten@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 */