cpe::vec4 Class Reference

Vectors/Points 4D. More...

+ Inheritance diagram for cpe::vec4:

Public Member Functions

 vec4 ()
 empty constructor More...
 
 vec4 (const double &x, const double &y, const double &z, const double &w)
 direct constructor More...
 
const double & x () const
 get x coordinate More...
 
double & x ()
 get x coordinate More...
 
const double & y () const
 get y coordinate More...
 
double & y ()
 get y coordinate More...
 
const double & z () const
 get z coordinate More...
 
double & z ()
 get z coordinate More...
 
const double & w () const
 get w coordinate More...
 
double & w ()
 get w coordinate More...
 
const double & operator[] (const size_t &k) const
 Access to the k_th entry (k in [0,3]) More...
 
double & operator[] (const size_t &k)
 Access to the k_th entry (k in [0,3]) More...
 
const double & operator() (const size_t &k) const
 Access to the k_th entry (k in [0,3]) More...
 
double & operator() (const size_t &k)
 Access to the k_th entry (k in [0,3]) More...
 
void set_zero ()
 set every entry to 0 More...
 
const double * pointer () const
 fast pointer access More...
 
vec3 to_vec3 () const
 convert to v3 (x,y,z) More...
 
vec2 to_vec2 () const
 convert to v2 (x,y) More...
 
double dot (const vec4 &p) const
 perform dot product between two v4 More...
 
double norm () const
 get the norm of the vector More...
 
double norm2 () const
 get the square norm of the vector More...
 
vec4 normalized () const
 normalize the vector to unit length More...
 
vec4 operator+ (const vec4 &p2) const
 
  • operator
More...
 
vec4 operator+ (const double &s) const
 
  • operator
More...
 
vec4 operator- (const vec4 &p2) const
 
  • operator
More...
 
vec4 operator- (const double &s) const
 
  • operator
More...
 
vec4 operator* (const double &s) const
 multiply by a scalar operator More...
 
vec4 operator/ (const double &s) const
 divide by a scalar operator More...
 
vec4operator+= (const vec4 &p)
 internal + More...
 
vec4operator+= (const double &s)
 internal + More...
 
vec4operator-= (const vec4 &p)
 internal - More...
 
vec4operator-= (const double &s)
 internal - More...
 
vec4operator*= (const double &s)
 internal * More...
 
vec4operator/= (const double &s)
 internal / More...
 
vec4 operator- () const
 unary negation More...
 
vec4 product_compontentwise (const vec4 &p) const
 does componentwise mutliplication More...
 
vec4product_compontentwise_internal (const vec4 &p)
 does componentwise mutliplication More...
 
void scale (const double &sx, const double &sy, const double &sz, const double &sw)
 internal scaling (similar to componentwise) More...
 
std::string to_string () const
 export the value as string cout<<v4(2,3,6,7) => 2 3 6 7 More...
 

Private Member Functions

void assert_size (const size_t &k) const
 assert that a size_t belongs to [[0,2]] More...
 

Private Attributes

double internal_x
 x coordinate More...
 
double internal_y
 y coordinate More...
 
double internal_z
 z coordinate More...
 
double internal_w
 w coordinate More...
 

Detailed Description

Vectors/Points 4D.

Constructor & Destructor Documentation

cpe::vec4::vec4 ( const double &  x,
const double &  y,
const double &  z,
const double &  w 
)

direct constructor

Member Function Documentation

void cpe::vec4::assert_size ( const size_t &  k) const
private

assert that a size_t belongs to [[0,2]]

Referenced by operator[]().

double cpe::vec4::dot ( const vec4 p) const

perform dot product between two v4

References internal_w, internal_x, internal_y, internal_z, w(), x(), y(), and z().

Referenced by cpe::quaternion::slerp().

+ Here is the call graph for this function:

double cpe::vec4::norm ( ) const

get the norm of the vector

References norm2().

Referenced by normalized(), and cpe::quaternion::slerp().

+ Here is the call graph for this function:

double cpe::vec4::norm2 ( ) const

get the square norm of the vector

References internal_w, internal_x, internal_y, and internal_z.

Referenced by norm().

vec4 cpe::vec4::normalized ( ) const

normalize the vector to unit length

References norm().

+ Here is the call graph for this function:

const double & cpe::vec4::operator() ( const size_t &  k) const

Access to the k_th entry (k in [0,3])

double & cpe::vec4::operator() ( const size_t &  k)

Access to the k_th entry (k in [0,3])

vec4 cpe::vec4::operator* ( const double &  s) const

multiply by a scalar operator

vec4 & cpe::vec4::operator*= ( const double &  s)

internal *

References internal_w, internal_x, internal_y, and internal_z.

vec4 cpe::vec4::operator+ ( const vec4 p2) const

  • operator

References vec4(), w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 cpe::vec4::operator+ ( const double &  s) const

  • operator

vec4 & cpe::vec4::operator+= ( const vec4 p)

internal +

References internal_w, internal_x, internal_y, internal_z, w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 & cpe::vec4::operator+= ( const double &  s)

internal +

References internal_w, internal_x, internal_y, and internal_z.

vec4 cpe::vec4::operator- ( const vec4 p2) const

  • operator

References vec4(), w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 cpe::vec4::operator- ( const double &  s) const

  • operator

References vec4(), w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 cpe::vec4::operator- ( ) const

unary negation

References internal_w, internal_x, internal_y, internal_z, and vec4().

+ Here is the call graph for this function:

vec4 & cpe::vec4::operator-= ( const vec4 p)

internal -

References internal_w, internal_x, internal_y, internal_z, w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 & cpe::vec4::operator-= ( const double &  s)

internal -

References internal_w, internal_x, internal_y, and internal_z.

vec4 cpe::vec4::operator/ ( const double &  s) const

divide by a scalar operator

References vec4(), w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 & cpe::vec4::operator/= ( const double &  s)

internal /

References internal_w, internal_x, internal_y, and internal_z.

const double & cpe::vec4::operator[] ( const size_t &  k) const

Access to the k_th entry (k in [0,3])

References assert_size(), internal_w, internal_x, internal_y, and internal_z.

+ Here is the call graph for this function:

double & cpe::vec4::operator[] ( const size_t &  k)

Access to the k_th entry (k in [0,3])

References assert_size(), internal_w, internal_x, internal_y, and internal_z.

+ Here is the call graph for this function:

const double * cpe::vec4::pointer ( ) const

fast pointer access

Warning
unprotected access

References internal_x.

vec4 cpe::vec4::product_compontentwise ( const vec4 p) const

does componentwise mutliplication

Returns
MC_v2d(x*p.x(),y*p.y(),z*p.z())

References internal_w, internal_x, internal_y, internal_z, vec4(), w(), x(), y(), and z().

+ Here is the call graph for this function:

vec4 & cpe::vec4::product_compontentwise_internal ( const vec4 p)

does componentwise mutliplication

perform p=(p.x()*p2.x(),p.y()*p2.x())

References internal_w, internal_x, internal_y, internal_z, w(), x(), y(), and z().

+ Here is the call graph for this function:

void cpe::vec4::scale ( const double &  sx,
const double &  sy,
const double &  sz,
const double &  sw 
)

internal scaling (similar to componentwise)

References internal_w, internal_x, internal_y, and internal_z.

void cpe::vec4::set_zero ( )

set every entry to 0

References internal_w, internal_x, internal_y, and internal_z.

std::string cpe::vec4::to_string ( ) const

export the value as string cout<<v4(2,3,6,7) => 2 3 6 7

References internal_w, internal_x, internal_y, and internal_z.

Referenced by cpe::operator<<().

vec2 cpe::vec4::to_vec2 ( ) const

convert to v2 (x,y)

References internal_x, and internal_y.

vec3 cpe::vec4::to_vec3 ( ) const

convert to v3 (x,y,z)

References internal_x, internal_y, and internal_z.

double & cpe::vec4::w ( )

get w coordinate

References internal_w.

double & cpe::vec4::x ( )

get x coordinate

References internal_x.

double & cpe::vec4::y ( )

get y coordinate

References internal_y.

double & cpe::vec4::z ( )

get z coordinate

References internal_z.

Member Data Documentation


The documentation for this class was generated from the following files: