#ifndef BODY_HPP #define BODY_HPP namespace nbody { static const double timestep = 1.0; class Derivative; class Body { protected: double position[3]; double velocity[3]; double acceleration[3]; double weight; Derivative evaluate(double dt, Derivative d); public: Body(); Body(double positionX, double positionY, double positionZ); Body(double positionX, double positionY, double positionZ, double velocityX, double velocityY, double velocityZ); Body(double positionX, double positionY, double positionZ, double weight); Body(double positionX, double positionY, double positionZ, double velocityX, double velocityY, double velocityZ, double weight); virtual ~Body(); virtual double getPosition(int index); virtual double getMass(); virtual void setPosition(int index, double value); virtual void setMass(double value); virtual void integrate(); virtual void print(); }; } #endif