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

Vec4 & operator+= (const Vec4 &v)
Vec4 & operator-= (const Vec4 &v)
Vec4 & operator *= (double s)
Vec4 & operator/= (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

Vec4 & operator= (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< Wvec > proj (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