ML Reference
|
00001 // **InsertLicense** code 00002 //===================================================================================== 00004 00009 //===================================================================================== 00010 00011 #ifndef __mlVector8_H 00012 #define __mlVector8_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 Tvec8 : public FloatingPointVector<DT,8> { 00034 public: 00035 00037 typedef FloatingPointVector<DT,8> Superclass; 00038 00040 typedef DT ComponentType; 00041 00042 //-------------------------------------------------------------------- 00044 00045 //-------------------------------------------------------------------- 00048 inline explicit Tvec8(const DT value=0) : Superclass(value) 00049 { 00050 ML_TRACE_IN_TIME_CRITICAL("Tvec8::Tvec8(const DT value=0)"); 00051 } 00052 00054 inline Tvec8(const Tvec8<DT>& v) : Superclass(v) 00055 { 00056 ML_TRACE_IN_TIME_CRITICAL("Tvec8::Tvec8(const Tvec8<DT>& v)"); 00057 } 00058 00062 inline Tvec8(const Superclass &v) : Superclass(v) 00063 { 00064 ML_TRACE_IN_TIME_CRITICAL("Tvec8::Tvec8(const Superclass &v)"); 00065 } 00066 00069 inline Tvec8(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 { 00072 ML_TRACE_IN_TIME_CRITICAL("Tvec8::Tvec8(const DT x, ... , const DT w)"); 00073 00074 assign(x,y,z,c,t,u,v,w); 00075 } 00077 00078 //-------------------------------------------------------------------- 00080 00081 //-------------------------------------------------------------------- 00083 inline void assign(const DT x, const DT y, const DT z, const DT c, 00084 const DT t, const DT u, const DT v, const DT w) 00085 { 00086 ML_TRACE_IN_TIME_CRITICAL("Tvec8::assign(const DT x, ... , const DT w)"); 00087 00088 Superclass::_buffer[0] = x; 00089 Superclass::_buffer[1] = y; 00090 Superclass::_buffer[2] = z; 00091 Superclass::_buffer[3] = c; 00092 Superclass::_buffer[4] = t; 00093 Superclass::_buffer[5] = u; 00094 Superclass::_buffer[6] = v; 00095 Superclass::_buffer[7] = w; 00096 } 00098 }; 00099 00100 00101 //----------------------------------------------------------------------------------- 00103 00104 //----------------------------------------------------------------------------------- 00106 typedef Tvec8<MLfloat> Vector8f; 00108 typedef Tvec8<MLdouble> Vector8d; 00110 typedef Tvec8<MLldouble> Vector8ld; 00112 typedef Tvec8<MLdouble> Vector8; 00114 00115 00116 #ifdef ML_DEPRECATED 00117 00118 00119 00120 00121 ML_DEPRECATED typedef Tvec8<MLfloat> vecf8; 00124 ML_DEPRECATED typedef Tvec8<MLdouble> vecd8; 00127 ML_DEPRECATED typedef Tvec8<MLldouble> vecld8; 00130 ML_DEPRECATED typedef Tvec8<MLdouble> vec8; 00132 00133 #endif // ML_DEPRECATED 00134 00135 00136 ML_LA_END_NAMESPACE 00137 00138 #endif //of __mlVector8_H 00139 00140 00141