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)
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 */
......
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