#include <orsa_body.h>
Public Member Functions | |
Body () | |
Body (const double mass) | |
Body (const std::string &name) | |
Body (const std::string &name, const double mass) | |
Body (const std::string &name, const double mass, const double radius) | |
Body (const std::string &name, const double mass, const double radius, const JPL_planets p) | |
Body (const std::string &name, const double mass, const Vector &position, const Vector &velocity) | |
Body (const std::string &name, const double mass, const double radius, const Vector &position, const Vector &velocity) | |
Body (const std::string &name, const double mass, const double radius, const double J2, const double J3, const double J4) | |
Body (const std::string &name, const double mass, const double radius, const JPL_planets p, const double J2, const double J3, const double J4) | |
Body (const std::string &name, const double mass, const double radius, const double J2, const double J3, const double J4, const double C22, const double C31, const double C32, const double C33, const double C41, const double C42, const double C43, const double C44, const double S31, const double S32, const double S33, const double S41, const double S42, const double S43, const double S44) | |
Body (const std::string &name, const double mass, const double radius, const JPL_planets p, const double J2, const double J3, const double J4, const double C22, const double C31, const double C32, const double C33, const double C41, const double C42, const double C43, const double C44, const double S31, const double S32, const double S33, const double S41, const double S42, const double S43, const double S44) | |
Body (const std::string &name, const double mass, const Vector &position, const Vector &velocity, const double J2, const double J3, const double J4) | |
Body (const std::string &name, const double mass, const double radius, const Vector &position, const Vector &velocity, const double J2, const double J3, const double J4) | |
Body (const Body &) | |
Body (const BodyWithEpoch &) | |
Body (const JPLBody &) | |
virtual | ~Body () |
Body & | operator= (const Body &) |
const std::string & | name () const |
double | mass () const |
double | mu () const |
bool | has_zero_mass () const |
double | radius () const |
JPL_planets | JPLPlanet () const |
double | J2 () const |
double | J3 () const |
double | J4 () const |
double | C22 () const |
double | C31 () const |
double | C32 () const |
double | C33 () const |
double | C41 () const |
double | C42 () const |
double | C43 () const |
double | C44 () const |
double | S31 () const |
double | S32 () const |
double | S33 () const |
double | S41 () const |
double | S42 () const |
double | S43 () const |
double | S44 () const |
const Vector & | position () const |
const Vector & | velocity () const |
void | AddToPosition (const Vector &v) |
void | AddToVelocity (const Vector &v) |
void | SetPosition (const Vector &v) |
void | SetPosition (const double x, const double y, const double z) |
void | SetVelocity (const Vector &v) |
void | SetVelocity (const double x, const double y, const double z) |
Vector | distanceVector (const Body &b) const |
double | distance (const Body &b) const |
Vector | DistanceVector (const Body &b) const |
double | Distance (const Body &b) const |
double | KineticEnergy () const |
unsigned int | BodyId () const |
bool | operator< (const Body &b) const |
Protected Attributes | |
BodyConstants * | bc |
Vector | _position |
Vector | _velocity |
Definition at line 121 of file orsa_body.h.
Body | ( | ) |
Definition at line 94 of file orsa_body.cc.
References Body::bc.
00094 { 00095 bc = new BodyConstants(); 00096 }
Body | ( | const double | mass | ) |
Definition at line 98 of file orsa_body.cc.
References Body::bc.
Body | ( | const std::string & | name | ) |
Body | ( | const std::string & | name, | |
const double | mass | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const JPL_planets | p | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const Vector & | position, | |||
const Vector & | velocity | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const Vector & | position, | |||
const Vector & | velocity | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const double | J2, | |||
const double | J3, | |||
const double | J4 | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const JPL_planets | p, | |||
const double | J2, | |||
const double | J3, | |||
const double | J4 | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const double | J2, | |||
const double | J3, | |||
const double | J4, | |||
const double | C22, | |||
const double | C31, | |||
const double | C32, | |||
const double | C33, | |||
const double | C41, | |||
const double | C42, | |||
const double | C43, | |||
const double | C44, | |||
const double | S31, | |||
const double | S32, | |||
const double | S33, | |||
const double | S41, | |||
const double | S42, | |||
const double | S43, | |||
const double | S44 | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const JPL_planets | p, | |||
const double | J2, | |||
const double | J3, | |||
const double | J4, | |||
const double | C22, | |||
const double | C31, | |||
const double | C32, | |||
const double | C33, | |||
const double | C41, | |||
const double | C42, | |||
const double | C43, | |||
const double | C44, | |||
const double | S31, | |||
const double | S32, | |||
const double | S33, | |||
const double | S41, | |||
const double | S42, | |||
const double | S43, | |||
const double | S44 | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const Vector & | position, | |||
const Vector & | velocity, | |||
const double | J2, | |||
const double | J3, | |||
const double | J4 | |||
) |
Body | ( | const std::string & | name, | |
const double | mass, | |||
const double | radius, | |||
const Vector & | position, | |||
const Vector & | velocity, | |||
const double | J2, | |||
const double | J3, | |||
const double | J4 | |||
) |
Definition at line 158 of file orsa_body.cc.
References Body::_position, Body::_velocity, BodyConstants::AddUser(), and Body::bc.
00158 { 00159 bc = b.bc; 00160 bc->AddUser(); 00161 _position = b._position; 00162 _velocity = b._velocity; 00163 }
Body | ( | const BodyWithEpoch & | b | ) |
Definition at line 165 of file orsa_body.cc.
References Body::_position, Body::_velocity, BodyConstants::AddUser(), and Body::bc.
00165 { 00166 bc = b.bc; 00167 bc->AddUser(); 00168 _position = b._position; 00169 _velocity = b._velocity; 00170 }
Definition at line 172 of file orsa_body.cc.
References Body::_position, Body::_velocity, BodyConstants::AddUser(), Body::bc, Body::position(), and Body::velocity().
00172 { 00173 bc = b.bc; 00174 bc->AddUser(); 00175 _position = b.position(); 00176 _velocity = b.velocity(); 00177 }
~Body | ( | ) | [virtual] |
Definition at line 179 of file orsa_body.cc.
References Body::bc, BodyConstants::RemoveUser(), and BodyConstants::Users().
00179 { 00180 bc->RemoveUser(); 00181 if (bc->Users() == 0) { 00182 delete bc; 00183 bc = 0; 00184 } 00185 }
void AddToPosition | ( | const Vector & | v | ) | [inline] |
void AddToVelocity | ( | const Vector & | v | ) | [inline] |
unsigned int BodyId | ( | ) | const [inline] |
Definition at line 196 of file orsa_body.h.
References Body::bc, and BodyConstants::BodyId().
Referenced by orsa::operator==().
00196 { return bc->BodyId(); }
double C22 | ( | ) | const [inline] |
Definition at line 157 of file orsa_body.h.
References Body::bc, and BodyConstants::C22().
00157 { return bc->C22(); }
double C31 | ( | ) | const [inline] |
Definition at line 158 of file orsa_body.h.
References Body::bc, and BodyConstants::C31().
00158 { return bc->C31(); }
double C32 | ( | ) | const [inline] |
Definition at line 159 of file orsa_body.h.
References Body::bc, and BodyConstants::C32().
00159 { return bc->C32(); }
double C33 | ( | ) | const [inline] |
Definition at line 160 of file orsa_body.h.
References Body::bc, and BodyConstants::C33().
00160 { return bc->C33(); }
double C41 | ( | ) | const [inline] |
Definition at line 161 of file orsa_body.h.
References Body::bc, and BodyConstants::C41().
00161 { return bc->C41(); }
double C42 | ( | ) | const [inline] |
Definition at line 162 of file orsa_body.h.
References Body::bc, and BodyConstants::C42().
00162 { return bc->C42(); }
double C43 | ( | ) | const [inline] |
Definition at line 163 of file orsa_body.h.
References Body::bc, and BodyConstants::C43().
00163 { return bc->C43(); }
double C44 | ( | ) | const [inline] |
Definition at line 164 of file orsa_body.h.
References Body::bc, and BodyConstants::C44().
00164 { return bc->C44(); }
double Distance | ( | const Body & | b | ) | const [inline] |
Definition at line 191 of file orsa_body.h.
References Body::distance().
00191 { return distance(b); }
double distance | ( | const Body & | b | ) | const [inline] |
Definition at line 187 of file orsa_body.h.
References Body::distanceVector(), and Vector::Length().
Referenced by Body::Distance().
00187 { return distanceVector(b).Length(); }
Definition at line 190 of file orsa_body.h.
References Body::distanceVector().
00190 { return distanceVector(b); }
Definition at line 186 of file orsa_body.h.
References Body::position().
Referenced by Body::distance(), and Body::DistanceVector().
00186 { return b.position()-position(); }
bool has_zero_mass | ( | ) | const [inline] |
Definition at line 151 of file orsa_body.h.
References Body::bc, and BodyConstants::has_zero_mass().
00151 { return bc->has_zero_mass(); }
double J2 | ( | ) | const [inline] |
Definition at line 154 of file orsa_body.h.
References Body::bc, and BodyConstants::J2().
00154 { return bc->J2(); }
double J3 | ( | ) | const [inline] |
Definition at line 155 of file orsa_body.h.
References Body::bc, and BodyConstants::J3().
00155 { return bc->J3(); }
double J4 | ( | ) | const [inline] |
Definition at line 156 of file orsa_body.h.
References Body::bc, and BodyConstants::J4().
00156 { return bc->J4(); }
JPL_planets JPLPlanet | ( | ) | const [inline] |
Definition at line 153 of file orsa_body.h.
References Body::bc, and BodyConstants::JPLPlanet().
Referenced by JPLBody::JPLBody(), JPLBody::SetEpoch(), and OrsaFile::Write().
00153 { return bc->JPLPlanet(); }
double KineticEnergy | ( | ) | const [inline] |
Definition at line 193 of file orsa_body.h.
References Body::_velocity, Body::bc, Vector::LengthSquared(), and BodyConstants::mass().
double mass | ( | ) | const [inline] |
Definition at line 149 of file orsa_body.h.
References Body::bc, and BodyConstants::mass().
Referenced by Orbit::Compute(), Body::operator<(), orsa::operator==(), TLEFile::Read(), and OrsaFile::Write().
00149 { return bc->mass(); };
double mu | ( | ) | const [inline] |
Definition at line 150 of file orsa_body.h.
References Body::bc, and BodyConstants::mu().
00150 { return bc->mu(); };
const std::string& name | ( | ) | const [inline] |
Definition at line 148 of file orsa_body.h.
References Body::bc, and BodyConstants::name().
Referenced by orsa::operator==(), and OrsaFile::Write().
00148 { return bc->name(); };
bool operator< | ( | const Body & | b | ) | const [inline] |
Definition at line 200 of file orsa_body.h.
References Body::mass().
00200 { return b.mass() < mass(); }
Definition at line 187 of file orsa_body.cc.
References Body::_position, Body::_velocity, BodyConstants::AddUser(), Body::bc, BodyConstants::RemoveUser(), and BodyConstants::Users().
00187 { 00188 00189 if (bc != b.bc) { 00190 bc->RemoveUser(); 00191 if (bc->Users() == 0) { 00192 delete bc; 00193 bc = 0; 00194 } 00195 00196 bc = b.bc; 00197 bc->AddUser(); 00198 } 00199 00200 _position = b._position; 00201 _velocity = b._velocity; 00202 00203 return * this; 00204 }
const Vector& position | ( | ) | const [inline] |
Definition at line 173 of file orsa_body.h.
References Body::_position.
Referenced by Body::Body(), Orbit::Compute(), orsa::Compute_Gauss(), Body::distanceVector(), Frame::ForceJPLEphemerisData(), orsa::operator==(), OptimizedOrbitPositions::PropagatedOrbit(), TLEFile::Read(), and OrsaFile::Write().
00173 { return _position; }
double radius | ( | ) | const [inline] |
Definition at line 152 of file orsa_body.h.
References Body::bc, and BodyConstants::radius().
Referenced by OrsaFile::Write().
00152 { return bc->radius(); };
double S31 | ( | ) | const [inline] |
Definition at line 165 of file orsa_body.h.
References Body::bc, and BodyConstants::S31().
00165 { return bc->S31(); }
double S32 | ( | ) | const [inline] |
Definition at line 166 of file orsa_body.h.
References Body::bc, and BodyConstants::S32().
00166 { return bc->S32(); }
double S33 | ( | ) | const [inline] |
Definition at line 167 of file orsa_body.h.
References Body::bc, and BodyConstants::S33().
00167 { return bc->S33(); }
double S41 | ( | ) | const [inline] |
Definition at line 168 of file orsa_body.h.
References Body::bc, and BodyConstants::S41().
00168 { return bc->S41(); }
double S42 | ( | ) | const [inline] |
Definition at line 169 of file orsa_body.h.
References Body::bc, and BodyConstants::S42().
00169 { return bc->S42(); }
double S43 | ( | ) | const [inline] |
Definition at line 170 of file orsa_body.h.
References Body::bc, and BodyConstants::S43().
00170 { return bc->S43(); }
double S44 | ( | ) | const [inline] |
Definition at line 171 of file orsa_body.h.
References Body::bc, and BodyConstants::S44().
00171 { return bc->S44(); }
void SetPosition | ( | const double | x, | |
const double | y, | |||
const double | z | |||
) | [inline] |
Definition at line 180 of file orsa_body.h.
References Body::SetPosition().
Referenced by Body::SetPosition().
00180 { Vector v(x,y,z); SetPosition(v); }
void SetPosition | ( | const Vector & | v | ) | [inline] |
Definition at line 179 of file orsa_body.h.
References Body::_position.
Referenced by orsa::Interpolate(), OptimizedOrbitPositions::PropagatedOrbit(), and OrsaFile::Read().
00179 { _position = v; }
void SetVelocity | ( | const double | x, | |
const double | y, | |||
const double | z | |||
) | [inline] |
Definition at line 183 of file orsa_body.h.
References Body::SetVelocity().
Referenced by Body::SetVelocity().
00183 { Vector v(x,y,z); SetVelocity(v); }
void SetVelocity | ( | const Vector & | v | ) | [inline] |
Definition at line 182 of file orsa_body.h.
References Body::_velocity.
Referenced by orsa::Interpolate(), OptimizedOrbitPositions::PropagatedOrbit(), and OrsaFile::Read().
00182 { _velocity = v; }
const Vector& velocity | ( | ) | const [inline] |
Definition at line 174 of file orsa_body.h.
References Body::_velocity.
Referenced by Body::Body(), Orbit::Compute(), Frame::ForceJPLEphemerisData(), orsa::operator==(), OptimizedOrbitPositions::PropagatedOrbit(), TLEFile::Read(), and OrsaFile::Write().
00174 { return _velocity; }
Definition at line 206 of file orsa_body.h.
Referenced by Body::AddToPosition(), Body::Body(), JPLBody::JPLBody(), Body::operator=(), Body::position(), JPLBody::SetEpoch(), and Body::SetPosition().
Definition at line 206 of file orsa_body.h.
Referenced by Body::AddToVelocity(), Body::Body(), JPLBody::JPLBody(), Body::KineticEnergy(), Body::operator=(), JPLBody::SetEpoch(), Body::SetVelocity(), and Body::velocity().
BodyConstants* bc [protected] |
Definition at line 203 of file orsa_body.h.
Referenced by Body::Body(), Body::BodyId(), Body::C22(), Body::C31(), Body::C32(), Body::C33(), Body::C41(), Body::C42(), Body::C43(), Body::C44(), Body::has_zero_mass(), Body::J2(), Body::J3(), Body::J4(), Body::JPLPlanet(), Body::KineticEnergy(), Body::mass(), Body::mu(), Body::name(), Body::operator=(), Body::radius(), Body::S31(), Body::S32(), Body::S33(), Body::S41(), Body::S42(), Body::S43(), Body::S44(), and Body::~Body().