Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

EvtVector3R Class Reference

#include <EvtVector3R.hh>

List of all members.

Public Member Functions

void applyRotateEuler (double phi, double theta, double ksi)
double d3mag () const
double dot (const EvtVector3R &v2)
 EvtVector3R (double x, double y, double z)
 EvtVector3R ()
double get (int i) const
EvtVector3Roperator *= (const double c)
EvtVector3Roperator+= (const EvtVector3R &v2)
EvtVector3Roperator-= (const EvtVector3R &v2)
EvtVector3Roperator/= (const double c)
void set (double x, double y, double z)
void set (int i, double d)
virtual ~EvtVector3R ()

Private Attributes

double v [3]

Friends

EvtVector3R cross (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator * (const EvtVector3R &v1, double c)
double operator * (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator * (double c, const EvtVector3R &v2)
EvtVector3R operator+ (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator- (const EvtVector3R &v1, const EvtVector3R &v2)
EvtVector3R operator/ (const EvtVector3R &v1, double c)
std::ostreamoperator<< (std::ostream &s, const EvtVector3R &v)
EvtVector3R rotateEuler (const EvtVector3R &v, double phi, double theta, double ksi)


Constructor & Destructor Documentation

EvtVector3R::EvtVector3R  ) 
 

00031                         {
00032   
00033   v[0]=v[1]=v[2]=0.0;
00034 }

EvtVector3R::EvtVector3R double  x,
double  y,
double  z
 

00037                                                    {
00038   
00039   v[0]=x; v[1]=y; v[2]=z;
00040 }

EvtVector3R::~EvtVector3R  )  [virtual]
 

00029 {}


Member Function Documentation

void EvtVector3R::applyRotateEuler double  phi,
double  theta,
double  ksi
 

00052                                                                     {
00053 
00054   double temp[3];
00055   double sp,st,sk,cp,ct,ck;
00056 
00057   sp=sin(phi);
00058   st=sin(theta);
00059   sk=sin(ksi);
00060   cp=cos(phi);
00061   ct=cos(theta);
00062   ck=cos(ksi);
00063 
00064   temp[0]=( ck*ct*cp-sk*sp)*v[0]+( -sk*ct*cp-ck*sp)*v[1]+st*cp*v[2];
00065   temp[1]=( ck*ct*sp+sk*cp)*v[0]+(-sk*ct*sp+ck*cp)*v[1]+st*sp*v[2];
00066   temp[2]=-ck*st*v[0]+sk*st*v[1]+ct*v[2];
00067 
00068 
00069   v[0]=temp[0];
00070   v[1]=temp[1];
00071   v[2]=temp[2];
00072 }

double EvtVector3R::d3mag  )  const
 

00097 {
00098   double temp;
00099 
00100   temp = v[0]*v[0]+v[1]*v[1]+v[2]*v[2];
00101   temp = sqrt( temp );
00102 
00103   return temp;
00104 } // r3mag

double EvtVector3R::dot const EvtVector3R v2  ) 
 

00106                                                {
00107 
00108   double temp;
00109 
00110   temp = v[0]*p2.v[0];
00111   temp += v[0]*p2.v[0];
00112   temp += v[0]*p2.v[0];
00113  
00114   return temp;
00115 } //dot

double EvtVector3R::get int  i  )  const [inline]
 

00126                                           {
00127   return v[i];
00128 }

EvtVector3R & EvtVector3R::operator *= const double  c  )  [inline]
 

00063                                                          {
00064 
00065   v[0]*=c;
00066   v[1]*=c;
00067   v[2]*=c;
00068   return *this;
00069 }

EvtVector3R & EvtVector3R::operator+= const EvtVector3R v2  )  [inline]
 

00079                                                                 {
00080 
00081   v[0]+=v2.v[0];
00082   v[1]+=v2.v[1];
00083   v[2]+=v2.v[2];
00084   return *this;
00085 }

EvtVector3R & EvtVector3R::operator-= const EvtVector3R v2  )  [inline]
 

00087                                                                 {
00088 
00089   v[0]-=v2.v[0];
00090   v[1]-=v2.v[1];
00091   v[2]-=v2.v[2];
00092   return *this;
00093 }

EvtVector3R & EvtVector3R::operator/= const double  c  )  [inline]
 

00071                                                          {
00072 
00073   v[0]/=c;
00074   v[1]/=c;
00075   v[2]/=c;
00076   return *this;
00077 }

void EvtVector3R::set double  x,
double  y,
double  z
[inline]
 

00135                                                        {
00136 
00137   v[0]=x;
00138   v[1]=y;
00139   v[2]=z;
00140 }

void EvtVector3R::set int  i,
double  d
[inline]
 

00130                                           {
00131   
00132   v[i]=d;
00133 }


Friends And Related Function Documentation

EvtVector3R cross const EvtVector3R v1,
const EvtVector3R v2
[friend]
 

00083                                                                 {
00084 
00085   //Calcs the cross product.  Added by djl on July 27, 1995.
00086   //Modified for real vectros by ryd Aug 28-96
00087 
00088   return EvtVector3R(p1.v[1]*p2.v[2] - p1.v[2]*p2.v[1],
00089                      p1.v[2]*p2.v[0] - p1.v[0]*p2.v[2],
00090                      p1.v[0]*p2.v[1] - p1.v[1]*p2.v[0]);
00091 
00092 }

EvtVector3R operator * const EvtVector3R v1,
double  c
[friend]
 

00100                                                             {
00101   
00102   return EvtVector3R(v1)*=c;
00103 }

double operator * const EvtVector3R v1,
const EvtVector3R v2
[friend]
 

00110                                                                     {
00111 
00112   return v1.v[0]*v2.v[0]+v1.v[1]*v2.v[1]+v1.v[2]*v2.v[2];
00113 }

EvtVector3R operator * double  c,
const EvtVector3R v2
[friend]
 

00095                                                             {
00096   
00097   return EvtVector3R(v2)*=c;
00098 }

EvtVector3R operator+ const EvtVector3R v1,
const EvtVector3R v2
[friend]
 

00115                                                                           {
00116   
00117   return EvtVector3R(v1)+=v2; 
00118 }

EvtVector3R operator- const EvtVector3R v1,
const EvtVector3R v2
[friend]
 

00120                                                                           {
00121   
00122   return EvtVector3R(v1)-=v2; 
00123 
00124 }

EvtVector3R operator/ const EvtVector3R v1,
double  c
[friend]
 

00105                                                             {
00106 
00107   return EvtVector3R(v1)/=c; 
00108 }

std::ostream& operator<< std::ostream s,
const EvtVector3R v
[friend]
 

EvtVector3R rotateEuler const EvtVector3R v,
double  phi,
double  theta,
double  ksi
[friend]
 

00043                                                               {
00044 
00045   EvtVector3R tmp(v);
00046   tmp.applyRotateEuler(alpha,beta,gamma);
00047   return tmp;
00048 
00049 }


Member Data Documentation

double EvtVector3R::v[3] [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:12:37 2011 for BOSS6.5.5 by  doxygen 1.3.9.1