rtcVec4.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2009
00003  * Robert Bosch LLC
00004  * Research and Technology Center North America
00005  * Palo Alto, California
00006  *
00007  * All rights reserved.
00008  *
00009  *------------------------------------------------------------------------------
00010  * project ....: Autonomous Technologies
00011  * file .......: rtcVec4.h
00012  * authors ....: Benjamin Pitzer
00013  * organization: Robert Bosch LLC
00014  * creation ...: 08/16/2006
00015  * modified ...: $Date: 2009-01-21 18:19:16 -0800 (Wed, 21 Jan 2009) $
00016  * changed by .: $Author: benjaminpitzer $
00017  * revision ...: $Revision: 14 $
00018  */
00019 #ifndef RTC_VEC4_H
00020 #define RTC_VEC4_H
00021 
00022 //== INCLUDES ==================================================================
00023 #include "rtc/rtcMath.h"
00024 #include "rtc/rtcVec.h"
00025 
00026 //== NAMESPACES ================================================================
00027 namespace rtc {
00028 
00029 // Forward declarations
00030 template <class T, int M> class Vec; // M-d vector
00031 template <class T> class Vec4; // 4d Vector
00032 
00036 template <class T>
00037 class Vec4: public Vec<T,4> {
00038 public:
00039   // inherit member data and functions of parent
00040   using Vec<T,4>::x;
00041   using Vec<T,4>::set;
00042 
00043   // Constructors
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   // Cast Operation
00051   template <class U> Vec4(const Vec<U,4>& v);
00052 
00053   // Mutators
00054   void set(const T x0, const T x1, const T x2, const T x3);
00055 };
00056 
00057 // Declare a few common typdefs
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 // Vec4<T>
00070 //==============================================================================
00071 
00072 // Constructors
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 // Casting Operation
00103 
00106 template <class T> template <class U>
00107 inline Vec4<T>::Vec4(const Vec<U,4>& v) : Vec<T,4>(v) {}
00108 
00109 // Mutators
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 } // NAMESPACE puma
00121 //==============================================================================
00122 #endif // RTC_VEC4_H defined
00123 //==============================================================================
00124 


rtc
Author(s): Benjamin Pitzer
autogenerated on Thu Jan 2 2014 11:04:54