ML Reference
|
00001 // **InsertLicense** code 00002 //===================================================================================== 00004 00009 //===================================================================================== 00010 00011 #ifndef __mlVector9_H 00012 #define __mlVector9_H 00013 00014 // Include system independency file and project settings. 00015 #ifndef __mlLinearAlgebraSystem_H 00016 #include "mlLinearAlgebraSystem.h" 00017 #endif 00018 #ifndef __mlLinearAlgebraDefs_H 00019 #include "mlLinearAlgebraDefs.h" 00020 #endif 00021 #ifndef __mlFloatingPointVector_H 00022 #include "mlFloatingPointVector.h" 00023 #endif 00024 00025 // All declarations of this header will be in the ML_LA_NAMESPACE namespace. 00026 ML_LA_START_NAMESPACE 00027 00028 //-------------------------------------------------------------------- 00030 //-------------------------------------------------------------------- 00032 template <class DT> 00033 class Tvec9 : public FloatingPointVector<DT,9> { 00034 public: 00035 00037 typedef FloatingPointVector<DT,9> Superclass; 00038 00040 typedef DT ComponentType; 00041 00042 //-------------------------------------------------------------------- 00044 00045 //-------------------------------------------------------------------- 00048 inline explicit Tvec9(const DT value=0) : Superclass(value) 00049 { 00050 ML_TRACE_IN_TIME_CRITICAL("Tvec9::Tvec9(const DT value=0)"); 00051 } 00052 00054 inline Tvec9(const Tvec9<DT>& v) : Superclass(v) 00055 { 00056 ML_TRACE_IN_TIME_CRITICAL("Tvec9::Tvec9(const Tvec9<DT>& v)"); 00057 } 00058 00062 inline Tvec9(const Superclass &v) : Superclass(v) 00063 { 00064 ML_TRACE_IN_TIME_CRITICAL("Tvec9::Tvec9(const Superclass &v)"); 00065 } 00066 00069 inline Tvec9(const DT x, const DT y, const DT z, const DT c, 00070 const DT t, const DT u, const DT v, const DT w, 00071 const DT a) 00072 { 00073 ML_TRACE_IN_TIME_CRITICAL("Tvec9::Tvec9(const DT x, ... , const DT a)"); 00074 00075 assign(x,y,z,c,t,u,v,w,a); 00076 } 00078 00079 //-------------------------------------------------------------------- 00081 00082 //-------------------------------------------------------------------- 00084 inline void assign(const DT x, const DT y, const DT z, const DT c, 00085 const DT t, const DT u, const DT v, const DT w, 00086 const DT a) 00087 { 00088 ML_TRACE_IN_TIME_CRITICAL("Tvec9::assign(const DT x, ... , const DT a)"); 00089 00090 Superclass::_buffer[0] = x; 00091 Superclass::_buffer[1] = y; 00092 Superclass::_buffer[2] = z; 00093 Superclass::_buffer[3] = c; 00094 Superclass::_buffer[4] = t; 00095 Superclass::_buffer[5] = u; 00096 Superclass::_buffer[6] = v; 00097 Superclass::_buffer[7] = w; 00098 Superclass::_buffer[8] = a; 00099 } 00101 }; 00102 00103 00104 //----------------------------------------------------------------------------------- 00106 00107 //----------------------------------------------------------------------------------- 00109 typedef Tvec9<MLfloat> Vector9f; 00111 typedef Tvec9<MLdouble> Vector9d; 00113 typedef Tvec9<MLldouble> Vector9ld; 00115 typedef Tvec9<MLdouble> Vector9; 00117 00118 00119 #ifdef ML_DEPRECATED 00120 00121 00122 00123 00124 ML_DEPRECATED typedef Tvec9<MLfloat> vecf9; 00127 ML_DEPRECATED typedef Tvec9<MLdouble> vecd9; 00130 ML_DEPRECATED typedef Tvec9<MLldouble> vecld9; 00133 ML_DEPRECATED typedef Tvec9<MLdouble> vec9; 00135 00136 #endif // ML_DEPRECATED 00137 00138 00139 ML_LA_END_NAMESPACE 00140 00141 #endif //of __mlVector9_H 00142 00143 00144