#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;
Double_t mT0Moon;
Double_t mRMoon;
Double_t mMMoon;
Double_t mDMoon;
Double_t mT;
Double_t mT0;
Double_t mT1;
Double_t mLat;
Double_t mLon;
Double_t mTheta;
Double_t mPhi;
Double_t mV0;
void MoonPos(Double_t* x, Double_t t) const;
void MoonPos(HPointD& x, Double_t t) const;
public:
Moonraker(const Text_t* n="Moonraker", const Text_t* t=0) : ZNode(n,t)
{ _init(); }
virtual Int_t ODEOrder() { return 6; }
virtual void ODEStart(Double_t y[], Double_t& x1, Double_t& x2);
virtual void ODEDerivatives(Double_t x, const Double_t y[], Double_t d[]);
#include "Moonraker.h7"
ClassDef(Moonraker, 1);
};
#endif