const Vector3 = require("./Vector3"); module.exports = class Moon { /** * @param {Vector3} position The starting position of the moon */ constructor(position) { /** * The position of the moon in space */ this.position = position; /** * The position of the moon at the time of creation * * This is a silly trick to get a clean copy of the Vector, but it works. * * @private */ this._initialPosition = position.negate().negate(); /** * The current velocity of the moon */ this.velocity = new Vector3(0, 0, 0); } /** * Check whether or not the moon has returned to its initial position * * @returns {bool} True if the current position is the same as the initial position and if the velocity is zero */ hasReachedInitialState() { return ( this._initialPosition.x == this.position.x && this._initialPosition.y == this.position.y && this._initialPosition.z == this.position.z ) && ( this.velocity.x == 0 && this.velocity.y == 0 && this.velocity.z == 0 ); } };