GEL
2
GEL is a library for Geometry and Linear Algebra
|
00001 #ifndef __CGLA__ARITHVEC2FLOAT_H__ 00002 #define __CGLA__ARITHVEC2FLOAT_H__ 00003 00004 #include "ArithVecFloat.h" 00005 00006 namespace CGLA { 00007 00008 template<class T, class V> 00009 class ArithVec2Float: public ArithVecFloat<T,V,2> 00010 { 00011 public: 00012 00014 ArithVec2Float(T a, T b): ArithVecFloat<T,V,2>(a,b) {} 00015 00017 ArithVec2Float() {} 00018 }; 00019 00021 template<class T, class V> 00022 inline V normalize(const ArithVec2Float<T,V>& v) 00023 { 00024 return v/v.length(); 00025 } 00026 00028 template<class T, class V> 00029 inline V orthogonal(const ArithVec2Float<T,V>& v) 00030 { 00031 return V(-v[1],v[0]); 00032 } 00033 00034 // Computes (scalar) cross product from two vectors 00035 template<class T, class V> 00036 inline T cross(const ArithVec2Float<T,V>& a, 00037 const ArithVec2Float<T,V>& b) 00038 { 00039 return a[0]*b[1]-a[1]*b[0]; 00040 } 00041 00045 template<class T, class V> 00046 bool linear_combine(const ArithVec2Float<T,V>& a, 00047 const ArithVec2Float<T,V>& b, 00048 const ArithVec2Float<T,V>& c, 00049 T&, 00050 T&); 00051 00052 00053 } 00054 00055 #endif 00056