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