Commit 545a774f authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Alexandre Julliard

dsound: Implement AngleBetweenVectorsDeg as a call to AngleBetweenVectorsRad.

parent 8d571e28
...@@ -102,8 +102,8 @@ static inline D3DVALUE RadToDeg (D3DVALUE angle) ...@@ -102,8 +102,8 @@ static inline D3DVALUE RadToDeg (D3DVALUE angle)
return newangle; return newangle;
} }
/* angle between vectors - deg version */ /* angle between vectors - rad version */
static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECTOR *b) static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECTOR *b)
{ {
D3DVALUE la, lb, product, angle, cos; D3DVALUE la, lb, product, angle, cos;
/* definition of scalar product: a*b = |a|*|b|*cos...therefore: */ /* definition of scalar product: a*b = |a|*|b|*cos...therefore: */
...@@ -112,26 +112,14 @@ static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECT ...@@ -112,26 +112,14 @@ static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECT
lb = VectorMagnitude (b); lb = VectorMagnitude (b);
cos = product/(la*lb); cos = product/(la*lb);
angle = acos(cos); angle = acos(cos);
/* we now have angle in radians */ TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f radians (%f degrees)\n", a->x, a->y, a->z, b->x,
angle = RadToDeg(angle); b->y, b->z, 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);
return angle; return angle;
} }
/* angle between vectors - rad version */ static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECTOR *b)
static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECTOR *b)
{ {
D3DVALUE la, lb, product, angle, cos; return RadToDeg(AngleBetweenVectorsRad(a, b));
/* 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;
} }
/* calculates vector between two points */ /* calculates vector between two points */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment