Commit 77f5d4c8 authored by David Adam's avatar David Adam Committed by Alexandre Julliard

d3dx8: Implement D3DXQuaternionConjugate.

parent a394fef4
...@@ -32,12 +32,24 @@ ...@@ -32,12 +32,24 @@
static void D3X8QuaternionTest(void) static void D3X8QuaternionTest(void)
{ {
D3DXQUATERNION q, r; D3DXQUATERNION expectedquat, gotquat, q, r;
LPD3DXQUATERNION funcpointer;
FLOAT expected, got; FLOAT expected, got;
q.x = 1.0f, q.y = 2.0f; q.z = 4.0f; q.w = 10.0f; q.x = 1.0f, q.y = 2.0f; q.z = 4.0f; q.w = 10.0f;
r.x = -3.0f; r.y = 4.0f; r.z = -5.0f; r.w = 7.0; r.x = -3.0f; r.y = 4.0f; r.z = -5.0f; r.w = 7.0;
/*_______________D3DXQuaternionConjugate________________*/
expectedquat.x = -1.0f; expectedquat.y = -2.0f; expectedquat.z = -4.0f; expectedquat.w = 10.0f;
D3DXQuaternionConjugate(&gotquat,&q);
expect_vec4(expectedquat,gotquat);
/* Test the NULL case */
funcpointer = D3DXQuaternionConjugate(&gotquat,NULL);
ok(funcpointer == NULL, "Expected: %p, Got: %p\n", NULL, funcpointer);
funcpointer = D3DXQuaternionConjugate(NULL,NULL);
ok(funcpointer == NULL, "Expected: %p, Got: %p\n", NULL, funcpointer);
/*_______________D3DXQuaternionDot______________________*/ /*_______________D3DXQuaternionDot______________________*/
expected = 55.0f; expected = 55.0f;
got = D3DXQuaternionDot(&q,&r); got = D3DXQuaternionDot(&q,&r);
......
...@@ -258,6 +258,16 @@ static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 ...@@ -258,6 +258,16 @@ static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, CONST D3DXVECTOR4
/*__________________D3DXQUATERNION____________________*/ /*__________________D3DXQUATERNION____________________*/
static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq)
{
if ( !pout || !pq) return NULL;
pout->x = -pq->x;
pout->y = -pq->y;
pout->z = -pq->z;
pout->w = pq->w;
return pout;
}
static inline FLOAT D3DXQuaternionDot(CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2) static inline FLOAT D3DXQuaternionDot(CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2)
{ {
if ( !pq1 || !pq2 ) return 0.0f; if ( !pq1 || !pq2 ) return 0.0f;
......
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