#ifndef Numerica_Moonraker_H
#define Numerica_Moonraker_H
#include <Glasses/ZNode.h>
#include <Glasses/ODECrawler.h>
#include <Stones/ZColor.h>
class Moonraker : public ZNode, public ODECrawlerMaster {
MAC_RNR_FRIENDS(Moonraker);
private:
Double_t hKappa;
Double_t hEscapeVelocity;
Float_t mScale;
Int_t mLOD;
ZColor mEColor;
ZColor mMColor;
ZColor mSColor;
Float_t mRShell;
ZColor mTColor;
Float_t mTWidth;
void _init();
protected:
ZLink<ODECrawler> mODECrawler;
Float_t mT0Moon;
Float_t mRMoon;
Float_t mMMoon;
Float_t mDMoon;
Float_t mT;
Float_t mT0;
Float_t mT1;
Float_t mLat;
Float_t mLon;
Float_t mTheta;
Float_t mPhi;
Float_t mV0;
void MoonPos(Double_t* x, Double_t t) const;
void MoonPos(TVector3& x, Double_t t) const;
public:
Moonraker(const Text_t* n="Moonraker", const Text_t* t=0) : ZNode(n,t)
{ _init(); }
virtual UInt_t ODEOrder() { return 6; }
virtual void ODEDerivatives(const Double_t x, const TVectorD& y, TVectorD& d);
virtual void ODEStart(TVectorD& v, Double_t& x1, Double_t& x2);
#include "Moonraker.h7"
ClassDef(Moonraker, 1);
};
#endif