ML Reference
MeVis/Foundation/Sources/MLLinearAlgebra/mlVector8.h
Go to the documentation of this file.
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