#include <vec3.h>

Public Types | |
| typedef Type | type |
| One can always cast to the type of a Vec2 by accessing Vec2<Type>::type. | |
Public Member Functions | |
| Vec2 () | |
| contruct a Vec2 object with all elements equal to 0. | |
| template<typename Type2, typename Type3> | |
| Vec2 (const Type2 &x, const Type3 &y) | |
| contruct a Vec2 object given (x,y) or (x,y,z) values. | |
| template<typename Type2> | |
| Vec2 (const vector< Type2 > &v) | |
| Construct a Vec2 object given a std::vector object. | |
| template<typename Type2> | |
| Vec2 (const Vec2< Type2 > &v) | |
| Copy constructor copies vector elements. | |
| ~Vec2 () | |
| Destructor. | |
| float | normalize () |
| Normalize the vector and return its length before the normalization. | |
| float | length () const |
| Calculate its length. | |
| Type | squared_length () const |
| Calculate its squared length. | |
| template<typename Type2> | |
| Type | dot (const Vec2< Type2 > &v) const |
| Calculate the dot product of 'this' vector with a second vector. | |
| vector< Type > | as_list () const |
| Return the values of this vector as a std::vector. | |
| template<typename Type2> | |
| void | set_value (const vector< Type2 > &v) |
| Set new values using a std::vector object. | |
| template<typename Type2> | |
| void | set_value_at (int index, const Type2 &value) |
| Set values at a particular index. | |
| void | set_value (const Type &x, const Type &y) |
| Set new values to this vector object. | |
| Type | operator[] (int i) const |
| Get the ith item of the vector. | |
| Type & | operator[] (int i) |
| Get the ith item of the vector. | |
| Type | at (int i) |
| Get the ith item of the vector. | |
| template<typename Type2> | |
| Vec2< Type > & | operator+= (const Vec2< Type2 > &v) |
| 'this' += v; Add the 2 vectors by adding item by item. | |
| template<typename Type2> | |
| Vec2< Type > & | operator+= (const Type2 &d) |
| 'this' += d. | |
| template<typename Type2> | |
| Vec2< Type > & | operator-= (const Vec2< Type2 > &v) |
| 'this' -= v; Minus the 2 vectors item by item. | |
| template<typename Type2> | |
| Vec2< Type > & | operator-= (const Type2 &d) |
| 'this' -= d; Minus a number from each item of 'this' vector. | |
| template<typename Type2> | |
| Vec2< Type > & | operator*= (const Type2 &d) |
| 'this' *= d; Multiply a number on each item of 'this' vector. | |
| template<typename Type2> | |
| Vec2< Type > & | operator/= (const Type2 &d) |
| 'this' /= d; Divide a number on each item of 'this' vector. | |
Private Attributes | |
| Type | vec [2] |
Definition at line 476 of file vec3.h.
| typedef Type EMAN::Vec2< Type >::type |
One can always cast to the type of a Vec2 by accessing Vec2<Type>::type.
| EMAN::Vec2< Type >::Vec2 | ( | ) | [inline] |
| EMAN::Vec2< Type >::Vec2 | ( | const Type2 & | x, | |
| const Type3 & | y | |||
| ) | [inline] |
| EMAN::Vec2< Type >::Vec2 | ( | const vector< Type2 > & | v | ) | [inline] |
Construct a Vec2 object given a std::vector object.
The std::vector object should have at least 3 items.
| v | The std::vector object. It should have at least 3 items. |
Definition at line 507 of file vec3.h.
References EMAN::Vec2< Type >::vec.
| EMAN::Vec2< Type >::Vec2 | ( | const Vec2< Type2 > & | v | ) | [inline] |
| EMAN::Vec2< Type >::~Vec2 | ( | ) | [inline] |
| float EMAN::Vec2< Type >::normalize | ( | ) | [inline] |
Normalize the vector and return its length before the normalization.
Definition at line 531 of file vec3.h.
References EMAN::Vec2< Type >::length(), EMAN::Vec2< Type >::set_value(), and EMAN::Vec2< Type >::vec.
00532 { 00533 // Warning - float precision 00534 float len = length(); 00535 if (len != 0) { 00536 vec[0] = static_cast<Type> (vec[0] / len); 00537 vec[1] = static_cast<Type> (vec[1] / len); 00538 } 00539 else { 00540 set_value(0, 0); 00541 } 00542 return len; 00543 }
| float EMAN::Vec2< Type >::length | ( | ) | const [inline] |
Calculate its length.
Definition at line 550 of file vec3.h.
References sqrt(), t, and EMAN::Vec2< Type >::vec.
Referenced by EMAN::Vec2< Type >::normalize().
00551 { 00552 float t = (float)(vec[0] * vec[0] + vec[1] * vec[1]); 00553 return (float)sqrt(t); 00554 }
| Type EMAN::Vec2< Type >::squared_length | ( | ) | const [inline] |
| Type EMAN::Vec2< Type >::dot | ( | const Vec2< Type2 > & | v | ) | const [inline] |
Calculate the dot product of 'this' vector with a second vector.
| v | The second vector to do the dot product. |
Definition at line 571 of file vec3.h.
References EMAN::Vec2< Type >::vec.
Referenced by EMAN::operator*(), and EMAN::Util::point_is_in_triangle_2d().
| vector<Type> EMAN::Vec2< Type >::as_list | ( | ) | const [inline] |
| void EMAN::Vec2< Type >::set_value | ( | const vector< Type2 > & | v | ) | [inline] |
Set new values using a std::vector object.
| v | A std::vector object used to set 'this' vector's value. It should have at least 3 items. |
Definition at line 592 of file vec3.h.
References EMAN::Vec2< Type >::vec.
Referenced by EMAN::Vec2< Type >::normalize().
| void EMAN::Vec2< Type >::set_value_at | ( | int | index, | |
| const Type2 & | value | |||
| ) | [inline] |
Set values at a particular index.
| index | The index to be set | |
| value | The value to be set |
Definition at line 603 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00604 { 00605 vec[index] = static_cast<Type>(value); 00606 }
| void EMAN::Vec2< Type >::set_value | ( | const Type & | x, | |
| const Type & | y | |||
| ) | [inline] |
| Type EMAN::Vec2< Type >::operator[] | ( | int | i | ) | const [inline] |
Get the ith item of the vector.
Used in the right side of the assignment.
| i | The index of the item to get. Its validality is not checked. |
Definition at line 625 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00625 { return vec[i]; }
| Type& EMAN::Vec2< Type >::operator[] | ( | int | i | ) | [inline] |
Get the ith item of the vector.
Used in the left side of the assignment.
| i | The index of the item to get. Its validality is not checked. |
Definition at line 634 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00634 { return vec[i]; }
| Type EMAN::Vec2< Type >::at | ( | int | i | ) | [inline] |
Get the ith item of the vector.
Used in the left side of the assignment.
| i | The index of the item to get. Its validality is not checked. |
Definition at line 643 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00643 { return vec[i]; }
| Vec2<Type>& EMAN::Vec2< Type >::operator+= | ( | const Vec2< Type2 > & | v | ) | [inline] |
'this' += v; Add the 2 vectors by adding item by item.
| v | The vector used to be added to 'this' vector. |
Definition at line 651 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00651 { 00652 vec[0] = static_cast<Type>(vec[0]+v[0]); 00653 vec[1] = static_cast<Type>(vec[1]+v[1]); 00654 return *this; 00655 }
| Vec2<Type>& EMAN::Vec2< Type >::operator+= | ( | const Type2 & | d | ) | [inline] |
'this' += d.
Add d to each item of this vector.
| d | The number used to be added to this vector. |
Definition at line 662 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00662 { 00663 vec[0] = static_cast<Type>(vec[0]+d); 00664 vec[1] = static_cast<Type>(vec[1]+d); 00665 return *this; 00666 }
| Vec2<Type>& EMAN::Vec2< Type >::operator-= | ( | const Vec2< Type2 > & | v | ) | [inline] |
'this' -= v; Minus the 2 vectors item by item.
| v | The vector used to be substracted from 'this' vector. |
Definition at line 673 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00673 { 00674 vec[0] = static_cast<Type>(vec[0]-v[0]); 00675 vec[1] = static_cast<Type>(vec[1]-v[1]); 00676 return *this; 00677 }
| Vec2<Type>& EMAN::Vec2< Type >::operator-= | ( | const Type2 & | d | ) | [inline] |
'this' -= d; Minus a number from each item of 'this' vector.
| d | The number used to be substracted from 'this' vector. |
Definition at line 684 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00684 { 00685 vec[0] = static_cast<Type>(vec[0]-d); 00686 vec[1] = static_cast<Type>(vec[1]-d); 00687 return *this; 00688 }
| Vec2<Type>& EMAN::Vec2< Type >::operator*= | ( | const Type2 & | d | ) | [inline] |
'this' *= d; Multiply a number on each item of 'this' vector.
| d | The number to multiply. |
Definition at line 695 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00695 { 00696 vec[0] = static_cast<Type>(vec[0]*d); 00697 vec[1] = static_cast<Type>(vec[1]*d); 00698 return *this; 00699 }
| Vec2<Type>& EMAN::Vec2< Type >::operator/= | ( | const Type2 & | d | ) | [inline] |
'this' /= d; Divide a number on each item of 'this' vector.
| d | The number to divide. |
Definition at line 706 of file vec3.h.
References EMAN::Vec2< Type >::vec.
00706 { 00707 vec[0] = static_cast<Type>(vec[0]/d); 00708 vec[1] = static_cast<Type>(vec[1]/d); 00709 return *this; 00710 }
Type EMAN::Vec2< Type >::vec[2] [private] |
Definition at line 714 of file vec3.h.
Referenced by EMAN::Vec2< Type >::as_list(), EMAN::Vec2< Type >::at(), EMAN::Vec2< Type >::dot(), EMAN::Vec2< Type >::length(), EMAN::Vec2< Type >::normalize(), EMAN::Vec2< Type >::operator*=(), EMAN::Vec2< Type >::operator+=(), EMAN::Vec2< Type >::operator-=(), EMAN::Vec2< Type >::operator/=(), EMAN::Vec2< Type >::operator[](), EMAN::Vec2< Type >::set_value(), EMAN::Vec2< Type >::set_value_at(), EMAN::Vec2< Type >::squared_length(), and EMAN::Vec2< Type >::Vec2().
1.5.6