~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/d3dvec.inl

Version: ~ [ wine-1.5.30 ] ~ [ wine-1.5.29 ] ~ [ wine-1.5.28 ] ~ [ wine-1.5.27 ] ~ [ wine-1.5.26 ] ~ [ wine-1.5.25 ] ~ [ wine-1.5.24 ] ~ [ wine-1.5.23 ] ~ [ wine-1.5.22 ] ~ [ wine-1.5.21 ] ~ [ wine-1.5.20 ] ~ [ wine-1.5.19 ] ~ [ wine-1.5.18 ] ~ [ wine-1.5.17 ] ~ [ wine-1.5.16 ] ~ [ wine-1.5.15 ] ~ [ wine-1.5.14 ] ~ [ wine-1.5.13 ] ~ [ wine-1.5.12 ] ~ [ wine-1.5.11 ] ~ [ wine-1.5.10 ] ~ [ wine-1.5.9 ] ~ [ wine-1.5.8 ] ~ [ wine-1.5.7 ] ~ [ wine-1.4.1 ] ~ [ wine-1.5.6 ] ~ [ wine-1.5.5 ] ~ [ wine-1.5.4 ] ~ [ wine-1.5.3 ] ~ [ wine-1.5.2 ] ~ [ wine-1.5.1 ] ~ [ wine-1.5.0 ] ~ [ wine-1.4 ] ~ [ wine-1.4-rc6 ] ~ [ wine-1.4-rc5 ] ~ [ wine-1.4-rc4 ] ~ [ wine-1.4-rc3 ] ~ [ wine-1.4-rc2 ] ~ [ wine-1.4-rc1 ] ~ [ wine-1.3.37 ] ~ [ wine-1.3.36 ] ~ [ wine-1.3.35 ] ~ [ wine-1.3.34 ] ~ [ wine-1.3.33 ] ~ [ wine-1.3.32 ] ~ [ wine-1.3.31 ] ~ [ wine-1.3.30 ] ~ [ wine-1.3.29 ] ~ [ wine-1.3.28 ] ~ [ wine-1.3.27 ] ~ [ wine-1.3.26 ] ~ [ wine-1.3.25 ] ~ [ wine-1.3.24 ] ~ [ wine-1.3.23 ] ~ [ wine-1.3.22 ] ~ [ wine-1.3.21 ] ~ [ wine-1.3.20 ] ~ [ wine-1.3.19 ] ~ [ wine-1.3.18 ] ~ [ wine-1.2.3 ] ~ [ wine-1.3.17 ] ~ [ wine-1.3.16 ] ~ [ wine-1.3.15 ] ~ [ wine-1.3.14 ] ~ [ wine-1.3.13 ] ~ [ wine-1.3.12 ] ~ [ wine-1.3.11 ] ~ [ wine-1.3.10 ] ~ [ wine-1.3.9 ] ~ [ wine-1.2.2 ] ~ [ wine-1.3.8 ] ~ [ wine-1.3.7 ] ~ [ wine-1.3.6 ] ~ [ wine-1.3.5 ] ~ [ wine-1.2.1 ] ~ [ wine-1.3.4 ] ~ [ wine-1.3.3 ] ~ [ wine-1.3.2 ] ~ [ wine-1.3.1 ] ~ [ wine-1.3.0 ] ~ [ wine-1.2 ] ~ [ wine-1.2-rc7 ] ~ [ wine-1.2-rc6 ] ~ [ wine-1.2-rc5 ] ~ [ wine-1.2-rc4 ] ~ [ wine-1.2-rc3 ] ~ [ wine-1.2-rc2 ] ~ [ wine-1.2-rc1 ] ~ [ wine-1.1.44 ] ~ [ wine-1.1.43 ] ~ [ wine-1.1.42 ] ~ [ wine-1.1.41 ] ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Copyright (C) 2000 Ove Kaaven
  3  *
  4  * This library is free software; you can redistribute it and/or
  5  * modify it under the terms of the GNU Lesser General Public
  6  * License as published by the Free Software Foundation; either
  7  * version 2.1 of the License, or (at your option) any later version.
  8  *
  9  * This library is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12  * Lesser General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU Lesser General Public
 15  * License along with this library; if not, write to the Free Software
 16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 17  */
 18 
 19 #ifndef __WINE_D3DVEC_INL
 20 #define __WINE_D3DVEC_INL
 21 
 22 /*** constructors ***/
 23 
 24 inline _D3DVECTOR::_D3DVECTOR(D3DVALUE f)
 25 {
 26   x = y = z = f;
 27 }
 28 
 29 inline _D3DVECTOR::_D3DVECTOR(D3DVALUE _x, D3DVALUE _y, D3DVALUE _z)
 30 {
 31   x = _x; y = _y; z = _z;
 32 }
 33 
 34 /*** assignment operators ***/
 35 
 36 inline _D3DVECTOR& _D3DVECTOR::operator += (const _D3DVECTOR& v)
 37 {
 38   x += v.x; y += v.y; z += v.z;
 39   return *this;
 40 }
 41 
 42 inline _D3DVECTOR& _D3DVECTOR::operator -= (const _D3DVECTOR& v)
 43 {
 44   x -= v.x; y -= v.y; z -= v.z;
 45   return *this;
 46 }
 47 
 48 inline _D3DVECTOR& _D3DVECTOR::operator *= (const _D3DVECTOR& v)
 49 {
 50   x *= v.x; y *= v.y; z *= v.z;
 51   return *this;
 52 }
 53 
 54 inline _D3DVECTOR& _D3DVECTOR::operator /= (const _D3DVECTOR& v)
 55 {
 56   x /= v.x; y /= v.y; z /= v.z;
 57   return *this;
 58 }
 59 
 60 inline _D3DVECTOR& _D3DVECTOR::operator *= (D3DVALUE s)
 61 {
 62   x *= s; y *= s; z *= s;
 63   return *this;
 64 }
 65 
 66 inline _D3DVECTOR& _D3DVECTOR::operator /= (D3DVALUE s)
 67 {
 68   x /= s; y /= s; z /= s;
 69   return *this;
 70 }
 71 
 72 /*** unary operators ***/
 73 
 74 inline _D3DVECTOR operator + (const _D3DVECTOR& v)
 75 {
 76   return v;
 77 }
 78 
 79 inline _D3DVECTOR operator - (const _D3DVECTOR& v)
 80 {
 81   return _D3DVECTOR(-v.x, -v.y, -v.z);
 82 }
 83 
 84 /*** binary operators ***/
 85 
 86 inline _D3DVECTOR operator + (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
 87 {
 88   return _D3DVECTOR(v1.x+v2.x, v1.y+v2.y, v1.z+v2.z);
 89 }
 90 
 91 inline _D3DVECTOR operator - (const _D3DVECTOR& v1, const _D3DVECTOR& v2)
 92 {
 93   return _D3DVECTOR(v1.x-v2.x, v1.y-v2.y, v1.z-v2.z);
 94 }
 95 
 96 inline _D3DVECTOR operator * (const _D3DVECTOR& v, D3DVALUE s)
 97 {
 98   return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
 99 }
100 
101 inline _D3DVECTOR operator * (D3DVALUE s, const _D3DVECTOR& v)
102 {
103   return _D3DVECTOR(v.x*s, v.y*s, v.z*s);
104 }
105 
106 inline _D3DVECTOR operator / (const _D3DVECTOR& v, D3DVALUE s)
107 {
108   return _D3DVECTOR(v.x/s, v.y/s, v.z/s);
109 }
110 
111 inline D3DVALUE SquareMagnitude(const _D3DVECTOR& v)
112 {
113   return v.x*v.x + v.y*v.y + v.z*v.z; /* DotProduct(v, v) */
114 }
115 
116 inline D3DVALUE Magnitude(const _D3DVECTOR& v)
117 {
118   return sqrt(SquareMagnitude(v));
119 }
120 
121 inline _D3DVECTOR Normalize(const _D3DVECTOR& v)
122 {
123   return v / Magnitude(v);
124 }
125 
126 inline D3DVALUE DotProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
127 {
128   return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
129 }
130 
131 inline _D3DVECTOR CrossProduct(const _D3DVECTOR& v1, const _D3DVECTOR& v2)
132 {
133   _D3DVECTOR res;
134   /* this is a left-handed cross product, right? */
135   res.x = v1.y * v2.z - v1.z * v2.y;
136   res.y = v1.z * v2.x - v1.x * v2.z;
137   res.z = v1.x * v2.y - v1.y * v2.x;
138   return res;
139 }
140 
141 #endif

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.