Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

xvector.h File Reference

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  XVector

Functions

XVector operator * (const XVector &lval, const QFLOAT obj)
XVector operator * (const QFLOAT obj, const XVector &rval)
XVector operator+= (XVector &lval, const XVector &obj)
QFLOAT DotProduct (const XVector &a, const XVector &b)
void Normalize (XVector &r)
XVector operator/ (const XVector &lval, const QFLOAT obj)
XVector operator *= (XVector &lval, const QFLOAT &obj)
XVector operator * (const XVector &lval, const double obj)
XVector operator * (const XVector &lval, const float obj)
XVector operator * (const double obj, const XVector &rval)
XVector operator * (const float obj, const XVector &rval)
XVector operator * (const XVector &lval, const int obj)
XVector operator * (const int obj, const XVector &rval)
void ScaledCrossProduct (const XVector &a, const XVector &b, XVector &r)
XVector PolygonNormal (XVector v1, XVector v2, XVector v3)
XVector Transform (const XVector &p, const XVector &q, const XVector &r, const XVector &v)
XVector CrossProduct (const XVector &v1, const XVector &v2)
void CrossProduct (const XVector &a, const XVector &b, XVector &RES)
void Yaw (QFLOAT rad, XVector &p, XVector &q, XVector &r)
void Pitch (QFLOAT rad, XVector &p, XVector &q, XVector &r)
void Roll (QFLOAT rad, XVector &p, XVector &q, XVector &r)
void ResetVectors (XVector &p, XVector &q, XVector &r)
void MakeRVector (XVector &p, XVector &q, XVector &r)
void Orthogonize (XVector &p, XVector &q, XVector &r)


Function Documentation

void CrossProduct const XVector   a,
const XVector   b,
XVector   RES
[inline]
 

00167 {RES = a.Cross(b);}

XVector CrossProduct const XVector   v1,
const XVector   v2
[inline]
 

00160                                                                   {
00161     XVector result;
00162     result.i = v1.j * v2.k - v1.k * v2.j;
00163     result.j = v1.k * v2.i - v1.i * v2.k;
00164     result.k = v1.i * v2.j  - v1.j * v2.i;     
00165     return result;
00166 }

QFLOAT DotProduct const XVector   a,
const XVector   b
[inline]
 

00112 {
00113     return (a.i*b.i+a.j*b.j+a.k*b.k);
00114 }

void MakeRVector XVector   p,
XVector   q,
XVector   r
 

void Normalize XVector   r [inline]
 

00101 {
00102     QFLOAT size = XSQRT(r.i*r.i+r.j*r.j+r.k*r.k);
00103     if( size>0.00001)
00104     {
00105         r.i /= size;
00106         r.j /= size;
00107         r.k /= size;
00108     }
00109 }

XVector operator * const int    obj,
const XVector   rval
[inline]
 

00124 {return XVector(rval.i * obj, rval.j * obj, rval.k * obj); }

XVector operator * const XVector   lval,
const int    obj
[inline]
 

00122 {XVector retval(lval.i * obj, lval.j * obj, lval.k * obj); return retval;}

XVector operator * const float    obj,
const XVector   rval
[inline]
 

00121 {return XVector(rval.i * obj, rval.j * obj, rval.k * obj); }

XVector operator * const double    obj,
const XVector   rval
[inline]
 

00119 {return XVector(rval.i * obj, rval.j * obj, rval.k * obj); }

XVector operator * const XVector   lval,
const float    obj
[inline]
 

00117 {XVector retval(lval.i * obj, lval.j * obj, lval.k * obj); return retval;}

XVector operator * const XVector   lval,
const double    obj
[inline]
 

00116 {XVector retval(lval.i * obj, lval.j * obj, lval.k * obj); return retval;}

XVector operator * const QFLOAT    obj,
const XVector   rval
[inline]
 

XVector operator * const XVector   lval,
const QFLOAT    obj
[inline]
 

XVector operator *= XVector   lval,
const QFLOAT &    obj
[inline]
 

00098 {lval.i *= obj; lval.j *= obj, lval.k *= obj; return lval;}

XVector operator+= XVector   lval,
const XVector   obj
[inline]
 

00096 {lval.i += obj.i; lval.j += obj.j; lval.k += obj.k; return lval;}

XVector operator/ const XVector   lval,
const QFLOAT    obj
[inline]
 

00094 {XVector retval(lval.i / obj, lval.j / obj, lval.k / obj); return retval;}

void Orthogonize XVector   p,
XVector   q,
XVector   r
 

void Pitch QFLOAT    rad,
XVector   p,
XVector   q,
XVector   r
 

XVector PolygonNormal XVector    v1,
XVector    v2,
XVector    v3
[inline]
 

00148 {
00149     XVector temp;
00150     ScaledCrossProduct(v2-v1, v3-v1, temp);
00151     return temp;
00152 }

void ResetVectors XVector   p,
XVector   q,
XVector   r
 

void Roll QFLOAT    rad,
XVector   p,
XVector   q,
XVector   r
 

void ScaledCrossProduct const XVector   a,
const XVector   b,
XVector   r
[inline]
 

00129                                                                                {
00130     r.i = a.j*b.k-a.k*b.j; 
00131         r.j = a.k*b.i-a.i*b.k;
00132         r.k = a.i*b.j-a.j*b.i;
00133     QFLOAT size = XSQRT(r.i*r.i+r.j*r.j+r.k*r.k);
00134     if( size<0.00001)
00135     {
00136         r.i = r.j = r.k = 0;
00137     }
00138     else
00139     {
00140         r.i /= size;
00141         r.j /= size;
00142         r.k /= size;
00143     }
00144 }

XVector Transform const XVector   p,
const XVector   q,
const XVector   r,
const XVector   v
[inline]
 

00155 {
00156     return XVector(p.i * v.i + q.i * v.j + r.i * v.k, 
00157         p.j * v.i + q.j * v.j + r.j * v.k, 
00158         p.k * v.i + q.k * v.j + r.k * v.k);
00159 }

void Yaw QFLOAT    rad,
XVector   p,
XVector   q,
XVector   r
 


Generated on Mon Jul 7 21:13:50 2003 for Ethereal by doxygen1.2.15