#include <orsa_coord.h>
Public Member Functions | |
Vector () | |
Vector (const Vector &v) | |
Vector (double _x, double _y, double _z) | |
double | GetX () const |
double | GetY () const |
double | GetZ () const |
Vector & | operator+= (const Vector &v) |
Vector & | operator-= (const Vector &v) |
Vector & | operator*= (const double f) |
Vector & | operator/= (const double f) |
Vector | operator+ () const |
Vector | operator- () const |
Vector & | rotate (const double, const double, const double) |
void | Set (Vector v) |
void | Set (double _x, double _y, double _z) |
double | Length () const |
double | LengthSquared () const |
double | ManhattanLength () const |
bool | IsZero () const |
Vector | Normalized () const |
Vector & | Normalize () |
Public Attributes | |
double | x |
double | y |
double | z |
Definition at line 34 of file orsa_coord.h.
Vector | ( | ) | [inline] |
Definition at line 38 of file orsa_coord.h.
Referenced by Vector::Normalized(), Vector::operator+(), and Vector::operator-().
Definition at line 40 of file orsa_coord.h.
Vector | ( | double | _x, | |
double | _y, | |||
double | _z | |||
) | [inline] |
Definition at line 42 of file orsa_coord.h.
double GetX | ( | ) | const [inline] |
double GetY | ( | ) | const [inline] |
double GetZ | ( | ) | const [inline] |
bool IsZero | ( | ) | const [inline] |
Definition at line 121 of file orsa_coord.h.
References Vector::x, Vector::y, and Vector::z.
Referenced by orsa::ComputeAcceleration(), ArmonicOscillator::PotentialEnergy(), and Newton::PotentialEnergy().
double Length | ( | ) | const [inline] |
Definition at line 103 of file orsa_coord.h.
References Vector::x, Vector::y, and Vector::z.
Referenced by Orbit::Compute(), orsa::Compute_Gauss(), Sky::Compute_J2000(), Body::distance(), MappedTable::load(), Vector::Normalize(), Vector::Normalized(), GalacticPotentialAllen::PotentialEnergy(), ArmonicOscillator::PotentialEnergy(), and Newton::PotentialEnergy().
double LengthSquared | ( | ) | const [inline] |
Definition at line 110 of file orsa_coord.h.
References Vector::x, Vector::y, and Vector::z.
Referenced by Orbit::Compute(), orsa::Compute_Gauss(), orsa::ComputeAcceleration(), and Body::KineticEnergy().
double ManhattanLength | ( | ) | const [inline] |
Vector& Normalize | ( | ) | [inline] |
Definition at line 134 of file orsa_coord.h.
References Vector::Length(), Vector::x, Vector::y, and Vector::z.
00134 { 00135 double l = Length(); 00136 if (l > (std::numeric_limits<double>::min() * 1.0e3)) { 00137 x /= l; 00138 y /= l; 00139 z /= l; 00140 } else { 00141 z = 0.0; 00142 y = 0.0; 00143 z = 0.0; 00144 } 00145 return *this; 00146 }
Vector Normalized | ( | ) | const [inline] |
Definition at line 126 of file orsa_coord.h.
References Vector::Length(), Vector::Vector(), Vector::x, Vector::y, and Vector::z.
Referenced by orsa::Compute_Gauss().
00126 { 00127 double l = Length(); 00128 if (l > (std::numeric_limits<double>::min() * 1.0e3)) 00129 return Vector(x/l, y/l, z/l); 00130 else 00131 return Vector(0.0, 0.0, 0.0); 00132 }
Vector& operator*= | ( | const double | f | ) | [inline] |
Vector operator+ | ( | ) | const [inline] |
Definition at line 79 of file orsa_coord.h.
References Vector::Vector(), Vector::x, Vector::y, and Vector::z.
Vector operator- | ( | ) | const [inline] |
Definition at line 80 of file orsa_coord.h.
References Vector::Vector(), Vector::x, Vector::y, and Vector::z.
Vector& operator/= | ( | const double | f | ) | [inline] |
Vector & rotate | ( | const double | omega_per, | |
const double | i, | |||
const double | omega_nod | |||
) |
Definition at line 57 of file orsa_coord.cc.
References orsa::c_i, orsa::cos(), orsa::sin(), orsa::sincos(), Vector::x, Vector::y, and Vector::z.
Referenced by orsa::Compute_Gauss(), orsa::Compute_TestMethod(), JPLFile::GetEph(), and TLEFile::Read().
00057 { 00058 00059 #ifdef HAVE_SINCOS 00060 double s,c; 00061 // 00062 sincos(i,&s,&c); 00063 const double s_i = s; 00064 const double c_i = c; 00065 // 00066 sincos(omega_nod,&s,&c); 00067 const double s_on = s; 00068 const double c_on = c; 00069 // 00070 sincos(omega_per,&s,&c); 00071 const double s_op = s; 00072 const double c_op = c; 00073 #else // HAVE_SINCOS 00074 const double s_i = sin(i); 00075 const double c_i = cos(i); 00076 // 00077 const double s_on = sin(omega_nod); 00078 const double c_on = cos(omega_nod); 00079 // 00080 const double s_op = sin(omega_per); 00081 const double c_op = cos(omega_per); 00082 #endif // HAVE_SINCOS 00083 00084 // from Mathematica.. 00085 /* 00086 const double new_x = cos(omega_nod)*(x*cos(omega_per) - y*sin(omega_per)) + sin(omega_nod)*(z*sin(i) - cos(i)*(y*cos(omega_per) + x*sin(omega_per))); 00087 const double new_y = -(z*cos(omega_nod)*sin(i)) + cos(i)*cos(omega_nod)*(y*cos(omega_per) + x*sin(omega_per)) + sin(omega_nod) * (x*cos(omega_per) - y*sin(omega_per)); 00088 const double new_z = z*cos(i) + sin(i)*(y*cos(omega_per) + x*sin(omega_per)); 00089 */ 00090 00091 const double new_x = c_on*(x*c_op - y*s_op) + s_on*(z*s_i - c_i*(y*c_op + x*s_op)); 00092 const double new_y = -(z*c_on*s_i) + c_i*c_on*(y*c_op + x*s_op) + s_on*(x*c_op - y*s_op); 00093 const double new_z = z*c_i + s_i*(y*c_op + x*s_op); 00094 00095 x = new_x; 00096 y = new_y; 00097 z = new_z; 00098 00099 return * this; 00100 }
void Set | ( | double | _x, | |
double | _y, | |||
double | _z | |||
) | [inline] |
void Set | ( | Vector | v | ) | [inline] |
Definition at line 90 of file orsa_coord.h.
References Vector::x, Vector::y, and Vector::z.
Referenced by JPLFile::GetEph(), and orsa::Interpolate().
double x |
Definition at line 149 of file orsa_coord.h.
Referenced by Orbit::Compute(), orsa::Compute_Gauss(), Sky::Compute_J2000(), orsa::Compute_TestMethod(), orsa::ComputeAcceleration(), orsa::Cross(), orsa::ExternalProduct(), orsa::gauss_v(), orsa::gauss_v_df(), orsa::gauss_v_diff_f(), orsa::gauss_v_f(), Vector::GetX(), Vector::IsZero(), Vector::Length(), Vector::LengthSquared(), Vector::ManhattanLength(), Vector::Normalize(), Vector::Normalized(), orsa::operator*(), Vector::operator*=(), orsa::operator+(), Vector::operator+(), Vector::operator+=(), orsa::operator-(), Vector::operator-(), Vector::operator-=(), orsa::operator/(), Vector::operator/=(), orsa::operator==(), GalacticPotentialAllen::PotentialEnergy(), OrsaFile::Read(), Vector::rotate(), Vector::Set(), Radau15::Step(), and OrsaFile::Write().
double y |
Definition at line 149 of file orsa_coord.h.
Referenced by Orbit::Compute(), orsa::Compute_Gauss(), Sky::Compute_J2000(), orsa::Compute_TestMethod(), orsa::ComputeAcceleration(), orsa::Cross(), orsa::ExternalProduct(), orsa::gauss_v(), orsa::gauss_v_df(), orsa::gauss_v_diff_f(), orsa::gauss_v_f(), Vector::GetY(), Vector::IsZero(), Vector::Length(), Vector::LengthSquared(), Vector::ManhattanLength(), Vector::Normalize(), Vector::Normalized(), orsa::operator*(), Vector::operator*=(), orsa::operator+(), Vector::operator+(), Vector::operator+=(), orsa::operator-(), Vector::operator-(), Vector::operator-=(), orsa::operator/(), Vector::operator/=(), orsa::operator==(), GalacticPotentialAllen::PotentialEnergy(), OrsaFile::Read(), Vector::rotate(), Vector::Set(), Radau15::Step(), and OrsaFile::Write().
double z |
Definition at line 149 of file orsa_coord.h.
Referenced by Orbit::Compute(), orsa::Compute_Gauss(), Sky::Compute_J2000(), orsa::Compute_TestMethod(), orsa::ComputeAcceleration(), orsa::Cross(), orsa::ExternalProduct(), orsa::gauss_v(), orsa::gauss_v_df(), orsa::gauss_v_diff_f(), orsa::gauss_v_f(), Vector::GetZ(), Vector::IsZero(), Vector::Length(), Vector::LengthSquared(), Vector::ManhattanLength(), Vector::Normalize(), Vector::Normalized(), orsa::operator*(), Vector::operator*=(), orsa::operator+(), Vector::operator+(), Vector::operator+=(), orsa::operator-(), Vector::operator-(), Vector::operator-=(), orsa::operator/(), Vector::operator/=(), orsa::operator==(), GalacticPotentialAllen::PotentialEnergy(), OrsaFile::Read(), Vector::rotate(), Vector::Set(), Radau15::Step(), and OrsaFile::Write().