rtcVec5.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 .......: rtcVec5.h
00012  * authors ....: Benjamin Pitzer
00013  * organization: Robert Bosch LLC
00014  * creation ...: 04/03/2008
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_VEC5_H
00020 #define RTC_VEC5_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 Vec5; // 5d Vector
00032 
00036 template <class T>
00037 class Vec5: public Vec<T,5> {
00038 public:
00039   // inherit member data and functions of parent
00040   using Vec<T,5>::x;
00041   using Vec<T,5>::set;
00042 
00043   // Constructors
00044   Vec5();
00045   Vec5(const T* d);
00046   Vec5(const T a);
00047   Vec5(const T x0, const T x1, const T x2, const T x3, const T x4);
00048   Vec5(const Vec<T,5>& v);
00049 
00050   // Cast Operation
00051   template <class U> Vec5(const Vec<U,5>& v);
00052 
00053   // Mutators
00054   void set(const T x0, const T x1, const T x2, const T x3, const T x4);
00055 };
00056 
00057 // Declare a few common typdefs
00058 typedef Vec5<bool> Vec5b;
00059 typedef Vec5<signed char> Vec5c;
00060 typedef Vec5<unsigned char> Vec5uc;
00061 typedef Vec5<signed short int> Vec5s;
00062 typedef Vec5<unsigned short int> Vec5us;
00063 typedef Vec5<int> Vec5i;
00064 typedef Vec5<unsigned int> Vec5ui;
00065 typedef Vec5<float> Vec5f;
00066 typedef Vec5<double> Vec5d;
00067 
00068 //==============================================================================
00069 // Vec5<T>
00070 //==============================================================================
00071 
00072 // Constructors
00073 
00076 template <class T>
00077 inline Vec5<T>::Vec5() {}
00078 
00081 template <class T>
00082 inline Vec5<T>::Vec5(const T* d) : Vec<T,5>(d) {}
00083 
00086 template <class T>
00087 inline Vec5<T>::Vec5(const T a) : Vec<T,5>(a) {}
00088 
00091 template <class T>
00092 inline Vec5<T>::Vec5(const T x0, const T x1, const T x2, const T x3, const T x4) {
00093   set(x0,x1,x2,x3,x4);
00094 }
00095 
00098 template <class T>
00099 inline Vec5<T>::Vec5(const Vec<T,5>& v) : Vec<T,5>(v) {}
00100 
00101 // Casting Operation
00102 
00105 template <class T> template <class U>
00106 inline Vec5<T>::Vec5(const Vec<U,5>& v) : Vec<T,5>(v) {}
00107 
00108 // Mutators
00109 
00112 template <class T>
00113 inline void Vec5<T>::set(const T x0, const T x1, const T x2, const T x3, const T x4) {
00114   x[0] = x0; x[1] = x1; x[2] = x2; x[3] = x3; x[4] = x4;
00115 }
00116 
00117 //==============================================================================
00118 } // NAMESPACE puma
00119 //==============================================================================
00120 #endif // RTC_VEC5_H defined
00121 //==============================================================================
00122 


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