af062818b47340eef15700d2f0211576ba3506eevboxsync/*
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2007 David Adam
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright (C) 2007 Tony Wasserka
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync *
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
af062818b47340eef15700d2f0211576ba3506eevboxsync */
af062818b47340eef15700d2f0211576ba3506eevboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync/*
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * other than GPL or LGPL is available it will apply instead, Sun elects to use only
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * a choice of LGPL license versions is made available with the language indicating
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * of the LGPL is applied is otherwise unspecified.
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifndef __D3DX8MATH_INL__
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __D3DX8MATH_INL__
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/* constructors & operators */
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef __cplusplus
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2::D3DXVECTOR2()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2::D3DXVECTOR2(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync x = pf[0];
af062818b47340eef15700d2f0211576ba3506eevboxsync y = pf[1];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2::D3DXVECTOR2(FLOAT fx, FLOAT fy)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x = fx;
af062818b47340eef15700d2f0211576ba3506eevboxsync y = fy;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2::operator FLOAT* ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2::operator CONST FLOAT* () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2& D3DXVECTOR2::operator += (CONST D3DXVECTOR2& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x += v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y += v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2& D3DXVECTOR2::operator -= (CONST D3DXVECTOR2& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x -= v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y -= v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2& D3DXVECTOR2::operator *= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2& D3DXVECTOR2::operator /= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 D3DXVECTOR2::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 D3DXVECTOR2::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR2(-x, -y);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 D3DXVECTOR2::operator + (CONST D3DXVECTOR2& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR2(x + v.x, y + v.y);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 D3DXVECTOR2::operator - (CONST D3DXVECTOR2& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR2(x - v.x, y - v.y);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 D3DXVECTOR2::operator * (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR2(x * f, y * f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 D3DXVECTOR2::operator / (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR2(x / f, y / f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR2 operator * (FLOAT f, CONST D3DXVECTOR2& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR2(f * v.x, f * v.y);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXVECTOR2::operator == (CONST D3DXVECTOR2& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x == v.x && y == v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXVECTOR2::operator != (CONST D3DXVECTOR2& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x != v.x || y != v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3::D3DXVECTOR3()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3::D3DXVECTOR3(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync x = pf[0];
af062818b47340eef15700d2f0211576ba3506eevboxsync y = pf[1];
af062818b47340eef15700d2f0211576ba3506eevboxsync z = pf[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3::D3DXVECTOR3(CONST D3DVECTOR& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x = v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y = v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z = v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3::D3DXVECTOR3(FLOAT fx, FLOAT fy, FLOAT fz)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x = fx;
af062818b47340eef15700d2f0211576ba3506eevboxsync y = fy;
af062818b47340eef15700d2f0211576ba3506eevboxsync z = fz;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3::operator FLOAT* ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3::operator CONST FLOAT* () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3& D3DXVECTOR3::operator += (CONST D3DXVECTOR3& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x += v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y += v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z += v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3& D3DXVECTOR3::operator -= (CONST D3DXVECTOR3& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x -= v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y -= v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z -= v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3& D3DXVECTOR3::operator *= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync z *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3& D3DXVECTOR3::operator /= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync z /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 D3DXVECTOR3::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 D3DXVECTOR3::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR3(-x, -y, -z);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 D3DXVECTOR3::operator + (CONST D3DXVECTOR3& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR3(x + v.x, y + v.y, z + v.z);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 D3DXVECTOR3::operator - (CONST D3DXVECTOR3& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 D3DXVECTOR3::operator * (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR3(x * f, y * f, z * f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 D3DXVECTOR3::operator / (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR3(x / f, y / f, z / f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR3 operator * (FLOAT f, CONST D3DXVECTOR3& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR3(f * v.x, f * v.y, f * v.z);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXVECTOR3::operator == (CONST D3DXVECTOR3& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x == v.x && y == v.y && z == v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXVECTOR3::operator != (CONST D3DXVECTOR3& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x != v.x || y != v.y || z != v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4::D3DXVECTOR4()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4::D3DXVECTOR4(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync x = pf[0];
af062818b47340eef15700d2f0211576ba3506eevboxsync y = pf[1];
af062818b47340eef15700d2f0211576ba3506eevboxsync z = pf[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync w = pf[3];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4::D3DXVECTOR4(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x = fx;
af062818b47340eef15700d2f0211576ba3506eevboxsync y = fy;
af062818b47340eef15700d2f0211576ba3506eevboxsync z = fz;
af062818b47340eef15700d2f0211576ba3506eevboxsync w = fw;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4::operator FLOAT* ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4::operator CONST FLOAT* () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4& D3DXVECTOR4::operator += (CONST D3DXVECTOR4& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x += v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y += v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z += v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync w += v.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4& D3DXVECTOR4::operator -= (CONST D3DXVECTOR4& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x -= v.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y -= v.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z -= v.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync w -= v.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4& D3DXVECTOR4::operator *= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync z *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync w *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4& D3DXVECTOR4::operator /= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync z /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync w /= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 D3DXVECTOR4::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 D3DXVECTOR4::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR4(-x, -y, -z, -w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 D3DXVECTOR4::operator + (CONST D3DXVECTOR4& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR4(x + v.x, y + v.y, z + v.z, w + v.w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 D3DXVECTOR4::operator - (CONST D3DXVECTOR4& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR4(x - v.x, y - v.y, z - v.z, w - v.w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 D3DXVECTOR4::operator * (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR4(x * f, y * f, z * f, w * f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 D3DXVECTOR4::operator / (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR4(x / f, y / f, z / f, w / f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXVECTOR4 operator * (FLOAT f, CONST D3DXVECTOR4& v)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXVECTOR4(f * v.x, f * v.y, f * v.z, f * v.w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXVECTOR4::operator == (CONST D3DXVECTOR4& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x == v.x && y == v.y && z == v.z && w == v.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXVECTOR4::operator != (CONST D3DXVECTOR4& v) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x != v.x || y != v.y || z != v.z || w != v.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX::D3DXMATRIX()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX::D3DXMATRIX(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync memcpy(&_11, pf, sizeof(D3DXMATRIX));
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX::D3DXMATRIX(CONST D3DMATRIX& mat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync memcpy(&_11, &mat, sizeof(D3DXMATRIX));
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX::D3DXMATRIX(FLOAT f11, FLOAT f12, FLOAT f13, FLOAT f14,
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT f21, FLOAT f22, FLOAT f23, FLOAT f24,
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT f31, FLOAT f32, FLOAT f33, FLOAT f34,
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT f41, FLOAT f42, FLOAT f43, FLOAT f44)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync _11 = f11; _12 = f12; _13 = f13; _14 = f14;
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 = f21; _22 = f22; _23 = f23; _24 = f24;
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 = f31; _32 = f32; _33 = f33; _34 = f34;
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 = f41; _42 = f42; _43 = f43; _44 = f44;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline FLOAT& D3DXMATRIX::operator () (UINT row, UINT col)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return m[row][col];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline FLOAT D3DXMATRIX::operator () (UINT row, UINT col) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return m[row][col];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX::operator FLOAT* ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&_11;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX::operator CONST FLOAT* () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&_11;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX& D3DXMATRIX::operator *= (CONST D3DXMATRIX& mat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMatrixMultiply(this, this, &mat);
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX& D3DXMATRIX::operator += (CONST D3DXMATRIX& mat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync _11 += mat._11; _12 += mat._12; _13 += mat._13; _14 += mat._14;
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 += mat._21; _22 += mat._22; _23 += mat._23; _24 += mat._24;
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 += mat._31; _32 += mat._32; _33 += mat._33; _34 += mat._34;
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 += mat._41; _42 += mat._42; _43 += mat._43; _44 += mat._44;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX& D3DXMATRIX::operator -= (CONST D3DXMATRIX& mat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync _11 -= mat._11; _12 -= mat._12; _13 -= mat._13; _14 -= mat._14;
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 -= mat._21; _22 -= mat._22; _23 -= mat._23; _24 -= mat._24;
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 -= mat._31; _32 -= mat._32; _33 -= mat._33; _34 -= mat._34;
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 -= mat._41; _42 -= mat._42; _43 -= mat._43; _44 -= mat._44;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX& D3DXMATRIX::operator *= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync _11 *= f; _12 *= f; _13 *= f; _14 *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 *= f; _22 *= f; _23 *= f; _24 *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 *= f; _32 *= f; _33 *= f; _34 *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 *= f; _42 *= f; _43 *= f; _44 *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX& D3DXMATRIX::operator /= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT inv = 1.0f / f;
af062818b47340eef15700d2f0211576ba3506eevboxsync _11 *= inv; _12 *= inv; _13 *= inv; _14 *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 *= inv; _22 *= inv; _23 *= inv; _24 *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 *= inv; _32 *= inv; _33 *= inv; _34 *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 *= inv; _42 *= inv; _43 *= inv; _44 *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXMATRIX(-_11, -_12, -_13, -_14,
af062818b47340eef15700d2f0211576ba3506eevboxsync -_21, -_22, -_23, -_24,
af062818b47340eef15700d2f0211576ba3506eevboxsync -_31, -_32, -_33, -_34,
af062818b47340eef15700d2f0211576ba3506eevboxsync -_41, -_42, -_43, -_44);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator * (CONST D3DXMATRIX& mat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX buf;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMatrixMultiply(&buf, this, &mat);
af062818b47340eef15700d2f0211576ba3506eevboxsync return buf;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator + (CONST D3DXMATRIX& mat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXMATRIX(_11 + mat._11, _12 + mat._12, _13 + mat._13, _14 + mat._14,
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 + mat._21, _22 + mat._22, _23 + mat._23, _24 + mat._24,
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 + mat._31, _32 + mat._32, _33 + mat._33, _34 + mat._34,
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 + mat._41, _42 + mat._42, _43 + mat._43, _44 + mat._44);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator - (CONST D3DXMATRIX& mat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXMATRIX(_11 - mat._11, _12 - mat._12, _13 - mat._13, _14 - mat._14,
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 - mat._21, _22 - mat._22, _23 - mat._23, _24 - mat._24,
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 - mat._31, _32 - mat._32, _33 - mat._33, _34 - mat._34,
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 - mat._41, _42 - mat._42, _43 - mat._43, _44 - mat._44);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator * (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXMATRIX(_11 * f, _12 * f, _13 * f, _14 * f,
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 * f, _22 * f, _23 * f, _24 * f,
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 * f, _32 * f, _33 * f, _34 * f,
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 * f, _42 * f, _43 * f, _44 * f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX D3DXMATRIX::operator / (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT inv = 1.0f / f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXMATRIX(_11 * inv, _12 * inv, _13 * inv, _14 * inv,
af062818b47340eef15700d2f0211576ba3506eevboxsync _21 * inv, _22 * inv, _23 * inv, _24 * inv,
af062818b47340eef15700d2f0211576ba3506eevboxsync _31 * inv, _32 * inv, _33 * inv, _34 * inv,
af062818b47340eef15700d2f0211576ba3506eevboxsync _41 * inv, _42 * inv, _43 * inv, _44 * inv);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXMATRIX operator * (FLOAT f, CONST D3DXMATRIX& mat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXMATRIX(f * mat._11, f * mat._12, f * mat._13, f * mat._14,
af062818b47340eef15700d2f0211576ba3506eevboxsync f * mat._21, f * mat._22, f * mat._23, f * mat._24,
af062818b47340eef15700d2f0211576ba3506eevboxsync f * mat._31, f * mat._32, f * mat._33, f * mat._34,
af062818b47340eef15700d2f0211576ba3506eevboxsync f * mat._41, f * mat._42, f * mat._43, f * mat._44);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXMATRIX::operator == (CONST D3DXMATRIX& mat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (memcmp(this, &mat, sizeof(D3DXMATRIX)) == 0);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXMATRIX::operator != (CONST D3DXMATRIX& mat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (memcmp(this, &mat, sizeof(D3DXMATRIX)) != 0);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION::D3DXQUATERNION()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION::D3DXQUATERNION(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync x = pf[0];
af062818b47340eef15700d2f0211576ba3506eevboxsync y = pf[1];
af062818b47340eef15700d2f0211576ba3506eevboxsync z = pf[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync w = pf[3];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION::D3DXQUATERNION(FLOAT fx, FLOAT fy, FLOAT fz, FLOAT fw)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x = fx;
af062818b47340eef15700d2f0211576ba3506eevboxsync y = fy;
af062818b47340eef15700d2f0211576ba3506eevboxsync z = fz;
af062818b47340eef15700d2f0211576ba3506eevboxsync w = fw;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION::operator FLOAT* ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION::operator CONST FLOAT* () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&x;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION& D3DXQUATERNION::operator += (CONST D3DXQUATERNION& quat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x += quat.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y += quat.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z += quat.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync w += quat.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION& D3DXQUATERNION::operator -= (CONST D3DXQUATERNION& quat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x -= quat.x;
af062818b47340eef15700d2f0211576ba3506eevboxsync y -= quat.y;
af062818b47340eef15700d2f0211576ba3506eevboxsync z -= quat.z;
af062818b47340eef15700d2f0211576ba3506eevboxsync w -= quat.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/* TODO: uncomment this when D3DXQuaternionMultiply has been implemented
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION& D3DXQUATERNION::operator *= (CONST D3DXQUATERNION& quat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQuaternionMultiply(this, this, &quat);
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION& D3DXQUATERNION::operator *= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync x *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync y *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync z *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync w *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION& D3DXQUATERNION::operator /= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT inv = 1.0f / f;
af062818b47340eef15700d2f0211576ba3506eevboxsync x *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync y *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync z *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync w *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXQUATERNION(-x, -y, -z, -w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator + (CONST D3DXQUATERNION& quat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXQUATERNION(x + quat.x, y + quat.y, z + quat.z, w + quat.w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator - (CONST D3DXQUATERNION& quat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXQUATERNION(x - quat.x, y - quat.y, z - quat.z, w - quat.w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/* TODO: uncomment this when D3DXQuaternionMultiply has been implemented
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator * (CONST D3DXQUATERNION& quat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQUATERNION buf;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXQuaternionMultiply(&buf, this, &quat);
af062818b47340eef15700d2f0211576ba3506eevboxsync return buf;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator * (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXQUATERNION(x * f, y * f, z * f, w * f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION D3DXQUATERNION::operator / (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT inv = 1.0f / f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXQUATERNION(x * inv, y * inv, z * inv, w * inv);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXQUATERNION operator * (FLOAT f, CONST D3DXQUATERNION& quat)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXQUATERNION(f * quat.x, f * quat.y, f * quat.z, f * quat.w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXQUATERNION::operator == (CONST D3DXQUATERNION& quat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x == quat.x && y == quat.y && z == quat.z && w == quat.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXQUATERNION::operator != (CONST D3DXQUATERNION& quat) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return x != quat.x || y != quat.y || z != quat.z || w != quat.w;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE::D3DXPLANE()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE::D3DXPLANE(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync a = pf[0];
af062818b47340eef15700d2f0211576ba3506eevboxsync b = pf[1];
af062818b47340eef15700d2f0211576ba3506eevboxsync c = pf[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync d = pf[3];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE::D3DXPLANE(FLOAT fa, FLOAT fb, FLOAT fc, FLOAT fd)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync a = fa;
af062818b47340eef15700d2f0211576ba3506eevboxsync b = fb;
af062818b47340eef15700d2f0211576ba3506eevboxsync c = fc;
af062818b47340eef15700d2f0211576ba3506eevboxsync d = fd;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE::operator FLOAT* ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&a;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE::operator CONST FLOAT* () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&a;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE D3DXPLANE::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXPLANE D3DXPLANE::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXPLANE(-a, -b, -c, -d);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXPLANE::operator == (CONST D3DXPLANE& pl) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return a == pl.a && b == pl.b && c == pl.c && d == pl.d;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXPLANE::operator != (CONST D3DXPLANE& pl) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return a != pl.a || b != pl.b || c != pl.c || d != pl.d;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::D3DXCOLOR()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::D3DXCOLOR(DWORD col)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync CONST FLOAT f = 1.0f / 255.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync r = f * (FLOAT)(unsigned char)(col >> 16);
af062818b47340eef15700d2f0211576ba3506eevboxsync g = f * (FLOAT)(unsigned char)(col >> 8);
af062818b47340eef15700d2f0211576ba3506eevboxsync b = f * (FLOAT)(unsigned char)col;
af062818b47340eef15700d2f0211576ba3506eevboxsync a = f * (FLOAT)(unsigned char)(col >> 24);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::D3DXCOLOR(CONST FLOAT *pf)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if(!pf) return;
af062818b47340eef15700d2f0211576ba3506eevboxsync r = pf[0];
af062818b47340eef15700d2f0211576ba3506eevboxsync g = pf[1];
af062818b47340eef15700d2f0211576ba3506eevboxsync b = pf[2];
af062818b47340eef15700d2f0211576ba3506eevboxsync a = pf[3];
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::D3DXCOLOR(CONST D3DCOLORVALUE& col)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync r = col.r;
af062818b47340eef15700d2f0211576ba3506eevboxsync g = col.g;
af062818b47340eef15700d2f0211576ba3506eevboxsync b = col.b;
af062818b47340eef15700d2f0211576ba3506eevboxsync a = col.a;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::D3DXCOLOR(FLOAT fr, FLOAT fg, FLOAT fb, FLOAT fa)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync r = fr;
af062818b47340eef15700d2f0211576ba3506eevboxsync g = fg;
af062818b47340eef15700d2f0211576ba3506eevboxsync b = fb;
af062818b47340eef15700d2f0211576ba3506eevboxsync a = fa;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator DWORD () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD _r = r >= 1.0f ? 0xff : r <= 0.0f ? 0x00 : (DWORD)(r * 255.0f + 0.5f);
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD _g = g >= 1.0f ? 0xff : g <= 0.0f ? 0x00 : (DWORD)(g * 255.0f + 0.5f);
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD _b = b >= 1.0f ? 0xff : b <= 0.0f ? 0x00 : (DWORD)(b * 255.0f + 0.5f);
af062818b47340eef15700d2f0211576ba3506eevboxsync DWORD _a = a >= 1.0f ? 0xff : a <= 0.0f ? 0x00 : (DWORD)(a * 255.0f + 0.5f);
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync return (_a << 24) | (_r << 16) | (_g << 8) | _b;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator FLOAT * ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (FLOAT*)&r;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator CONST FLOAT * () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST FLOAT*)&r;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator D3DCOLORVALUE * ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (D3DCOLORVALUE*)&r;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator CONST D3DCOLORVALUE * () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return (CONST D3DCOLORVALUE*)&r;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator D3DCOLORVALUE& ()
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *((D3DCOLORVALUE*)&r);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR::operator CONST D3DCOLORVALUE& () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *((CONST D3DCOLORVALUE*)&r);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR& D3DXCOLOR::operator += (CONST D3DXCOLOR& col)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync r += col.r;
af062818b47340eef15700d2f0211576ba3506eevboxsync g += col.g;
af062818b47340eef15700d2f0211576ba3506eevboxsync b += col.b;
af062818b47340eef15700d2f0211576ba3506eevboxsync a += col.a;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR& D3DXCOLOR::operator -= (CONST D3DXCOLOR& col)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync r -= col.r;
af062818b47340eef15700d2f0211576ba3506eevboxsync g -= col.g;
af062818b47340eef15700d2f0211576ba3506eevboxsync b -= col.b;
af062818b47340eef15700d2f0211576ba3506eevboxsync a -= col.a;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR& D3DXCOLOR::operator *= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync r *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync g *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync b *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync a *= f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR& D3DXCOLOR::operator /= (FLOAT f)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT inv = 1.0f / f;
af062818b47340eef15700d2f0211576ba3506eevboxsync r *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync g *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync b *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync a *= inv;
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR D3DXCOLOR::operator + () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return *this;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR D3DXCOLOR::operator - () const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXCOLOR(-r, -g, -b, -a);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR D3DXCOLOR::operator + (CONST D3DXCOLOR& col) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXCOLOR(r + col.r, g + col.g, b + col.b, a + col.a);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR D3DXCOLOR::operator - (CONST D3DXCOLOR& col) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXCOLOR(r - col.r, g - col.g, b - col.b, a - col.a);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR D3DXCOLOR::operator * (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXCOLOR(r * f, g * f, b * f, a * f);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR D3DXCOLOR::operator / (FLOAT f) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync FLOAT inv = 1.0f / f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXCOLOR(r * inv, g * inv, b * inv, a * inv);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline D3DXCOLOR operator * (FLOAT f, CONST D3DXCOLOR& col)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return D3DXCOLOR(f * col.r, f * col.g, f * col.b, f * col.a);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXCOLOR::operator == (CONST D3DXCOLOR& col) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return r == col.r && g == col.g && b == col.b && a == col.a;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncinline BOOL D3DXCOLOR::operator != (CONST D3DXCOLOR& col) const
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync return r != col.r || g != col.g || b != col.b || a != col.a;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cplusplus */
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*_______________D3DXCOLOR_____________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pc1 || !pc2 ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->r = (pc1->r) + (pc2->r);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->g = (pc1->g) + (pc2->g);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->b = (pc1->b) + (pc2->b);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->a = (pc1->a) + (pc2->a);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pc1 || !pc2 ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->r = (1-s) * (pc1->r) + s *(pc2->r);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->g = (1-s) * (pc1->g) + s *(pc2->g);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->b = (1-s) * (pc1->b) + s *(pc2->b);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->a = (1-s) * (pc1->a) + s *(pc2->a);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pc1 || !pc2 ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->r = (pc1->r) * (pc2->r);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->g = (pc1->g) * (pc2->g);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->b = (pc1->b) * (pc2->b);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->a = (pc1->a) * (pc2->a);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, CONST D3DXCOLOR *pc)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pc ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->r = 1.0f - pc->r;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->g = 1.0f - pc->g;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->b = 1.0f - pc->b;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->a = pc->a;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pc ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->r = s* (pc->r);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->g = s* (pc->g);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->b = s* (pc->b);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->a = s* (pc->a);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pc1 || !pc2 ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->r = (pc1->r) - (pc2->r);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->g = (pc1->g) - (pc2->g);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->b = (pc1->b) - (pc2->b);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->a = (pc1->a) - (pc2->a);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*_______________D3DXVECTOR2________________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = pv1->x + pv2->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = pv1->y + pv2->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec2CCW(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pv1 || !pv2) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return ( (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec2Dot(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pv1 || !pv2) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return ( (pv1->x * pv2->x + pv1->y * pv2->y) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec2Length(CONST D3DXVECTOR2 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec2LengthSq(CONST D3DXVECTOR2 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = (1-s) * (pv1->x) + s * (pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = (1-s) * (pv1->y) + s * (pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = max(pv1->x , pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = max(pv1->y , pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = min(pv1->x , pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = min(pv1->y , pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = s * (pv->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = s * (pv->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = pv1->x - pv2->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = pv1->y - pv2->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*__________________D3DXVECTOR3_______________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = pv1->x + pv2->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = pv1->y + pv2->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = pv1->z + pv2->z;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = (pv1->y) * (pv2->z) - (pv1->z) * (pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = (pv1->z) * (pv2->x) - (pv1->x) * (pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec3Dot(CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pv1 || !pv2 ) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec3Length(CONST D3DXVECTOR3 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec3LengthSq(CONST D3DXVECTOR3 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = (1-s) * (pv1->x) + s * (pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = (1-s) * (pv1->y) + s * (pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = (1-s) * (pv1->z) + s * (pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = max(pv1->x , pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = max(pv1->y , pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = max(pv1->z , pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = min(pv1->x , pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = min(pv1->y , pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = min(pv1->z , pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = s * (pv->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = s * (pv->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = s * (pv->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = pv1->x - pv2->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = pv1->y - pv2->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = pv1->z - pv2->z;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync/*__________________D3DXVECTOR4_______________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = pv1->x + pv2->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = pv1->y + pv2->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = pv1->z + pv2->z;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = pv1->w + pv2->w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec4Dot(CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv1 || !pv2 ) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z) + (pv1->w) * (pv2->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec4Length(CONST D3DXVECTOR4 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return sqrt( (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXVec4LengthSq(CONST D3DXVECTOR4 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pv) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = (1-s) * (pv1->x) + s * (pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = (1-s) * (pv1->y) + s * (pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = (1-s) * (pv1->z) + s * (pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = (1-s) * (pv1->w) + s * (pv2->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = max(pv1->x , pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = max(pv1->y , pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = max(pv1->z , pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = max(pv1->w , pv2->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = min(pv1->x , pv2->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = min(pv1->y , pv2->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = min(pv1->z , pv2->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = min(pv1->w , pv2->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, FLOAT s)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = s * (pv->x);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = s * (pv->y);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = s * (pv->z);
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = s * (pv->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pv1 || !pv2) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = pv1->x - pv2->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = pv1->y - pv2->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = pv1->z - pv2->z;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = pv1->w - pv2->w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*__________________D3DXMatrix____________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync#ifdef NONAMELESSUNION
af062818b47340eef15700d2f0211576ba3506eevboxsync# define D3DX_U(x) (x).u
af062818b47340eef15700d2f0211576ba3506eevboxsync#else
af062818b47340eef15700d2f0211576ba3506eevboxsync# define D3DX_U(x) (x)
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXMATRIX* D3DXMatrixIdentity(D3DXMATRIX *pout)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout ) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[0][1] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[0][2] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[0][3] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[1][0] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[1][2] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[1][3] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[2][0] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[2][1] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[2][3] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[3][0] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[3][1] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[3][2] = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[0][0] = 1.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[1][1] = 1.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[2][2] = 1.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DX_U(*pout).m[3][3] = 1.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline BOOL D3DXMatrixIsIdentity(D3DXMATRIX *pm)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync int i,j;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMATRIX testmatrix;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pm ) return FALSE;
af062818b47340eef15700d2f0211576ba3506eevboxsync D3DXMatrixIdentity(&testmatrix);
af062818b47340eef15700d2f0211576ba3506eevboxsync for (i=0; i<4; i++)
af062818b47340eef15700d2f0211576ba3506eevboxsync {
af062818b47340eef15700d2f0211576ba3506eevboxsync for (j=0; j<4; j++)
af062818b47340eef15700d2f0211576ba3506eevboxsync {
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( D3DX_U(*pm).m[i][j] != D3DX_U(testmatrix).m[i][j] ) return FALSE;
af062818b47340eef15700d2f0211576ba3506eevboxsync }
af062818b47340eef15700d2f0211576ba3506eevboxsync }
af062818b47340eef15700d2f0211576ba3506eevboxsync return TRUE;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync#undef D3DX_U
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*__________________D3DXPLANE____________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXPlaneDot(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pp || !pv ) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) * (pv->w) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXPlaneDotCoord(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pp || !pv ) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXPlaneDotNormal(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pp || !pv ) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync/*__________________D3DXQUATERNION____________________*/
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout || !pq) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = -pq->x;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = -pq->y;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = -pq->z;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = pq->w;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXQuaternionDot(CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pq1 || !pq2 ) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return (pq1->x) * (pq2->x) + (pq1->y) * (pq2->y) + (pq1->z) * (pq2->z) + (pq1->w) * (pq2->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline D3DXQUATERNION* D3DXQuaternionIdentity(D3DXQUATERNION *pout)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pout) return NULL;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->x = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->y = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->z = 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync pout->w = 1.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return pout;
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline BOOL D3DXQuaternionIsIdentity(D3DXQUATERNION *pq)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if ( !pq) return FALSE;
af062818b47340eef15700d2f0211576ba3506eevboxsync return ( (pq->x == 0.0f) && (pq->y == 0.0f) && (pq->z == 0.0f) && (pq->w == 1.0f) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXQuaternionLength(CONST D3DXQUATERNION *pq)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pq) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return sqrt( (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w) );
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstatic inline FLOAT D3DXQuaternionLengthSq(CONST D3DXQUATERNION *pq)
af062818b47340eef15700d2f0211576ba3506eevboxsync{
af062818b47340eef15700d2f0211576ba3506eevboxsync if (!pq) return 0.0f;
af062818b47340eef15700d2f0211576ba3506eevboxsync return (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w);
af062818b47340eef15700d2f0211576ba3506eevboxsync}
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif