Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef RTC_VEC4_H
00020 #define RTC_VEC4_H
00021
00022
00023 #include "rtc/rtcMath.h"
00024 #include "rtc/rtcVec.h"
00025
00026
00027 namespace rtc {
00028
00029
00030 template <class T, int M> class Vec;
00031 template <class T> class Vec4;
00032
00036 template <class T>
00037 class Vec4: public Vec<T,4> {
00038 public:
00039
00040 using Vec<T,4>::x;
00041 using Vec<T,4>::set;
00042
00043
00044 Vec4();
00045 Vec4(const T* d);
00046 Vec4(const T a);
00047 Vec4(const T x0, const T x1, const T x2, const T x3);
00048 Vec4(const Vec<T,4>& v);
00049
00050
00051 template <class U> Vec4(const Vec<U,4>& v);
00052
00053
00054 void set(const T x0, const T x1, const T x2, const T x3);
00055 };
00056
00057
00058 typedef Vec4<bool> Vec4b;
00059 typedef Vec4<signed char> Vec4c;
00060 typedef Vec4<unsigned char> Vec4uc;
00061 typedef Vec4<signed short int> Vec4s;
00062 typedef Vec4<unsigned short int> Vec4us;
00063 typedef Vec4<int> Vec4i;
00064 typedef Vec4<unsigned int> Vec4ui;
00065 typedef Vec4<float> Vec4f;
00066 typedef Vec4<double> Vec4d;
00067
00068
00069
00070
00071
00072
00073
00076 template <class T>
00077 inline Vec4<T>::Vec4() {}
00078
00081 template <class T>
00082 inline Vec4<T>::Vec4(const T* d) : Vec<T,4>(d) {}
00083
00086 template <class T>
00087 inline Vec4<T>::Vec4(const T a) : Vec<T,4>(a) {}
00088
00091 template <class T>
00092 inline Vec4<T>::Vec4(const T x0, const T x1,
00093 const T x2, const T x3) {
00094 set(x0,x1,x2,x3);
00095 }
00096
00099 template <class T>
00100 inline Vec4<T>::Vec4(const Vec<T,4>& v) : Vec<T,4>(v) {}
00101
00102
00103
00106 template <class T> template <class U>
00107 inline Vec4<T>::Vec4(const Vec<U,4>& v) : Vec<T,4>(v) {}
00108
00109
00110
00113 template <class T>
00114 inline void Vec4<T>::set(const T x0, const T x1,
00115 const T x2, const T x3) {
00116 x[0] = x0; x[1] = x1; x[2] = x2; x[3] = x3;
00117 }
00118
00119
00120 }
00121
00122 #endif // RTC_VEC4_H defined
00123
00124