00001 /* 00002 * File: BurgersVector.h 00003 * Copyright: (c) 2005-2007 Princeton University 00004 * Author(s): Kevin T. Chu 00005 * Revision: $Revision: 379 $ 00006 * Modified: $Date: 2007-08-07 10:02:34 -0400 (Tue, 07 Aug 2007) $ 00007 * Description: Header file for the BurgersVector class 00008 */ 00009 00010 #ifndef included_BurgersVector_h 00011 #define included_BurgersVector_h 00012 00013 00030 // LSMDD Headers 00031 #include "LSMDD_config.h" 00032 00033 namespace LSMDD { 00034 00035 class BurgersVector 00036 { 00037 public: 00038 00043 BurgersVector() { 00044 d_burgers_vector[0] = 0.0; 00045 d_burgers_vector[1] = 0.0; 00046 d_burgers_vector[2] = 0.0; 00047 } 00048 00057 BurgersVector(const BurgersVector& rhs) { 00058 d_burgers_vector[0] = rhs.d_burgers_vector[0]; 00059 d_burgers_vector[1] = rhs.d_burgers_vector[1]; 00060 d_burgers_vector[2] = rhs.d_burgers_vector[2]; 00061 } 00062 00066 virtual ~BurgersVector() {} 00067 00078 virtual inline const BurgersVector& operator=( const BurgersVector& rhs ) { 00079 00080 // check for assignment to self 00081 if (this == &rhs) return *this; 00082 00083 d_burgers_vector[0] = rhs.d_burgers_vector[0]; 00084 d_burgers_vector[1] = rhs.d_burgers_vector[1]; 00085 d_burgers_vector[2] = rhs.d_burgers_vector[2]; 00086 return *this; 00087 } 00088 00101 virtual inline double& operator[]( const int i ) { 00102 return d_burgers_vector[i]; 00103 } 00104 00117 virtual inline const double& operator[]( const int i ) const { 00118 return d_burgers_vector[i]; 00119 } 00120 00130 virtual inline const double* getPointer() const { 00131 return d_burgers_vector; 00132 } 00133 00134 00135 protected: 00136 00137 /*********************************************************** 00138 * 00139 * Data Members 00140 * 00141 ***********************************************************/ 00142 double d_burgers_vector[3]; 00143 00144 }; 00145 00146 } // end LSMDD namespace 00147 00148 #endif 00149