Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

mlib::Vec4 Class Reference
[MLIB]

A 4D vector class with double precision floating point elements. More...

#include <vec4.H>

List of all members.

Descriptive interface

typedef double value_type
static int dim ()

Overloaded Mathematical Operators

Vec4operator+= (const Vec4 &v)
Vec4operator-= (const Vec4 &v)
Vec4operator *= (double s)
Vec4operator/= (double s)
Vec4 operator+ (const Vec4 &v) const
Vec4 operator- (const Vec4 &v) const
Vec4 operator- () const
Vec4 operator * (double s) const
Vec4 operator/ (double s) const
double operator * (const Vec4 &v) const
 Dot product.
Vec4 operator * (double s, const Vec4 &v)

Public Member Functions

Vec4operator= (double s)
Constructors
 Vec4 (double s=0)
 Vec4 (double x, double y, double z, double w)
template<typename V>
 Vec4 (const Vec3< V > &v, double w=0.0)
template<typename P>
 Vec4 (const P &p, double w=1.0)
template<typename U>
 Vec4 (const U v[4])
Element Access Functions
 operator double * ()
 operator const double * () const
Vector Property Queries
double length () const
double length_sqrd () const
double length_rect () const
Two Vector Operations
double dist (const Vec4 &v) const
double dist_sqrd (const Vec4 &v) const
Single Vector Operations
Vec4 normalized () const

Protected Attributes

double elt [4]

Related Functions

(Note that these are not member functions.)

std::ostream & operator<< (std::ostream &out, const Vec4 &v)
std::istream & operator>> (std::istream &in, Vec4 &v)
Vec4 cross (const Vec4 &a, const Vec4 &b, const Vec4 &c)
Vec3< Wvecproj (const Vec4 &v)
 Projects a Vec4.


Detailed Description

A 4D vector class with double precision floating point elements.

libgfx References:
This class has been taken almost verbatim from libgfx.

Definition at line 28 of file vec4.H.


Member Typedef Documentation

typedef double mlib::Vec4::value_type
 

Definition at line 62 of file vec4.H.


Constructor & Destructor Documentation

mlib::Vec4::Vec4 double  s = 0  )  [inline, explicit]
 

Definition at line 39 of file vec4.H.

Referenced by normalized(), operator *(), operator+(), operator-(), and operator/().

mlib::Vec4::Vec4 double  x,
double  y,
double  z,
double  w
[inline]
 

Definition at line 40 of file vec4.H.

References elt.

template<typename V>
mlib::Vec4::Vec4 const Vec3< V > &  v,
double  w = 0.0
[inline]
 

Definition at line 44 of file vec4.H.

References elt.

template<typename P>
mlib::Vec4::Vec4 const P &  p,
double  w = 1.0
[inline, explicit]
 

Definition at line 48 of file vec4.H.

References elt.

template<typename U>
mlib::Vec4::Vec4 const U  v[4]  )  [inline, explicit]
 

Definition at line 52 of file vec4.H.

References elt.


Member Function Documentation

static int mlib::Vec4::dim  )  [inline, static]
 

Definition at line 63 of file vec4.H.

double mlib::Vec4::dist const Vec4 v  )  const [inline]
 

Definition at line 135 of file vec4.H.

double mlib::Vec4::dist_sqrd const Vec4 v  )  const [inline]
 

Definition at line 137 of file vec4.H.

double mlib::Vec4::length  )  const [inline]
 

Definition at line 123 of file vec4.H.

References elt.

Referenced by normalized(), and mlib::Mat4< M, P, V, L, Q >::orthogonalized().

double mlib::Vec4::length_rect  )  const [inline]
 

Definition at line 127 of file vec4.H.

References elt.

double mlib::Vec4::length_sqrd  )  const [inline]
 

Definition at line 125 of file vec4.H.

References elt.

Vec4 mlib::Vec4::normalized  )  const [inline]
 

Definition at line 145 of file vec4.H.

References elt, mlib::gEpsZeroMath, length(), and Vec4().

Referenced by mlib::Mat4< M, P, V, L, Q >::anchor_scale_rot(), compute_initial_vertex_coord_sys(), compute_ntb_coord_sys(), QuadtreeNode::contains(), Bface::contains(), mlib::Mat4< M, P, V, L, Q >::glu_lookat(), mlib::Mat4< M, P, V, L, Q >::Mat4(), SHOW_TRIS::Triangle::norm(), mlib::Mat4< M, P, V, L, Q >::orthogonalized(), and mlib::Quat< QUAT, M, P, V, L >::Quat().

double mlib::Vec4::operator * const Vec4 v  )  const [inline]
 

Dot product.

Definition at line 112 of file vec4.H.

References elt.

Vec4 mlib::Vec4::operator * double  s  )  const [inline]
 

Definition at line 105 of file vec4.H.

References elt, and Vec4().

Vec4& mlib::Vec4::operator *= double  s  )  [inline]
 

Definition at line 90 of file vec4.H.

References elt.

mlib::Vec4::operator const double *  )  const [inline]
 

Definition at line 71 of file vec4.H.

References elt.

mlib::Vec4::operator double *  )  [inline]
 

Definition at line 70 of file vec4.H.

References elt.

Vec4 mlib::Vec4::operator+ const Vec4 v  )  const [inline]
 

Definition at line 96 of file vec4.H.

References elt, and Vec4().

Vec4& mlib::Vec4::operator+= const Vec4 v  )  [inline]
 

Definition at line 84 of file vec4.H.

References elt.

Vec4 mlib::Vec4::operator-  )  const [inline]
 

Definition at line 102 of file vec4.H.

References elt, and Vec4().

Vec4 mlib::Vec4::operator- const Vec4 v  )  const [inline]
 

Definition at line 99 of file vec4.H.

References elt, and Vec4().

Vec4& mlib::Vec4::operator-= const Vec4 v  )  [inline]
 

Definition at line 87 of file vec4.H.

References elt.

Vec4 mlib::Vec4::operator/ double  s  )  const [inline]
 

Definition at line 108 of file vec4.H.

References elt, and Vec4().

Vec4& mlib::Vec4::operator/= double  s  )  [inline]
 

Definition at line 93 of file vec4.H.

References elt.

Vec4& mlib::Vec4::operator= double  s  )  [inline]
 

Definition at line 57 of file vec4.H.

References elt.


Friends And Related Function Documentation

Vec4 cross const Vec4 a,
const Vec4 b,
const Vec4 c
[related]
 

Definition at line 25 of file vec4.C.

Vec4 operator * double  s,
const Vec4 v
[friend]
 

Definition at line 115 of file vec4.H.

std::ostream & operator<< std::ostream &  out,
const Vec4 v
[related]
 

Definition at line 13 of file vec4.C.

std::istream & operator>> std::istream &  in,
Vec4 v
[related]
 

Definition at line 19 of file vec4.C.

Vec3< Wvec > proj const Vec4 v  )  [related]
 

Projects a Vec4.

Definition at line 43 of file vec4.C.


Member Data Documentation

double mlib::Vec4::elt[4] [protected]
 

Definition at line 32 of file vec4.H.

Referenced by length(), length_rect(), length_sqrd(), normalized(), operator *(), operator *=(), operator const double *(), operator double *(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator=(), and Vec4().


The documentation for this class was generated from the following file:
Generated on Mon Sep 18 11:48:26 2006 for jot by  doxygen 1.4.4