| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- 'use strict';
- var ns = require('ns');
- var Utils = require('./Utils');
- var definitions = require('./Definitions');
- var CelestialBody = require('./CelestialBody');
- var bodies = definitions.map(function(def){
- var body = Object.create(CelestialBody);
- Utils.extend(body, def);
- body.init();
- return body;
- });
- var names = bodies.reduce(function(carry, body){
- carry[body.name] = body;
- return carry;
- }, {});
- var central = bodies.reduce(function(carry, body){
- carry = carry && carry.mass > body.mass ? carry : body;
- return carry;
- }, null);
- console.log(bodies);
- module.exports = {
- getBody: function(name){
- return names[name] || central;
- },
- getPositions: function(userDate, calculateVelocity){
- var epochTime = ns.getEpochTime(userDate);
- return bodies.map(function(body){
- body.setPositionFromDate(epochTime, calculateVelocity);
- return {
- name: body.name,
- position: body.getPosition(),
- velocity: body.getVelocity()
- };
- });
- }
- };
|