#include <EvtVector3R.hh>
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 |
EvtVector3R & | operator *= (const double c) |
EvtVector3R & | operator+= (const EvtVector3R &v2) |
EvtVector3R & | operator-= (const EvtVector3R &v2) |
EvtVector3R & | operator/= (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::ostream & | operator<< (std::ostream &s, const EvtVector3R &v) |
EvtVector3R | rotateEuler (const EvtVector3R &v, double phi, double theta, double ksi) |
|
|
|
|
|
00029 {}
|
|
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 }
|
|
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
|
|
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
|
|
00126 { 00127 return v[i]; 00128 }
|
|
|
|
00079 { 00080 00081 v[0]+=v2.v[0]; 00082 v[1]+=v2.v[1]; 00083 v[2]+=v2.v[2]; 00084 return *this; 00085 }
|
|
00087 { 00088 00089 v[0]-=v2.v[0]; 00090 v[1]-=v2.v[1]; 00091 v[2]-=v2.v[2]; 00092 return *this; 00093 }
|
|
|
|
|
|
00130 { 00131 00132 v[i]=d; 00133 }
|
|
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 }
|
|
00100 { 00101 00102 return EvtVector3R(v1)*=c; 00103 }
|
|
|
|
00095 { 00096 00097 return EvtVector3R(v2)*=c; 00098 }
|
|
00115 { 00116 00117 return EvtVector3R(v1)+=v2; 00118 }
|
|
00120 { 00121 00122 return EvtVector3R(v1)-=v2; 00123 00124 }
|
|
00105 { 00106 00107 return EvtVector3R(v1)/=c; 00108 }
|
|
|
|
00043 { 00044 00045 EvtVector3R tmp(v); 00046 tmp.applyRotateEuler(alpha,beta,gamma); 00047 return tmp; 00048 00049 }
|
|
|