1 | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
2 |
|
3 | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
4 |
|
5 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | export var Angle = function () {
|
22 | |
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 | function Angle(neg, d, m, s) {
|
34 | _classCallCheck(this, Angle);
|
35 |
|
36 | if (arguments.length === 1) {
|
37 | this.angle = neg;
|
38 | } else {
|
39 | this.setDMS(neg, d, m, s);
|
40 | }
|
41 | }
|
42 |
|
43 | |
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 | Angle.prototype.setDMS = function setDMS() {
|
56 | var neg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
57 | var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
58 | var m = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
59 | var s = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.0;
|
60 |
|
61 | this.angle = DMSToDeg(neg, d, m, s) * Math.PI / 180;
|
62 | return this;
|
63 | };
|
64 |
|
65 | |
66 |
|
67 |
|
68 |
|
69 |
|
70 |
|
71 |
|
72 | Angle.prototype.setAngle = function setAngle(rad) {
|
73 | this.angle = rad;
|
74 | return this;
|
75 | };
|
76 |
|
77 | |
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 | Angle.prototype.rad = function rad() {
|
84 | return this.angle;
|
85 | };
|
86 |
|
87 | |
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 | Angle.prototype.deg = function deg() {
|
94 | return this.angle * 180 / Math.PI;
|
95 | };
|
96 |
|
97 | |
98 |
|
99 |
|
100 |
|
101 |
|
102 | Angle.prototype.toDMS = function toDMS() {
|
103 | return degToDMS(this.deg());
|
104 | };
|
105 |
|
106 | |
107 |
|
108 |
|
109 |
|
110 |
|
111 |
|
112 |
|
113 | Angle.prototype.toString = function toString(precision) {
|
114 | var _toDMS = this.toDMS(),
|
115 | neg = _toDMS[0],
|
116 | d = _toDMS[1],
|
117 | m = _toDMS[2],
|
118 | s = _toDMS[3];
|
119 |
|
120 | s = round(s, precision).toString().replace(/^0\./, '.');
|
121 | var str = (neg ? '-' : '') + (d + '°') + (m + '′') + (s + '″');
|
122 | return str;
|
123 | };
|
124 |
|
125 | |
126 |
|
127 |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 | Angle.prototype.toDegString = function toDegString(precision) {
|
133 | var _modf = modf(this.deg()),
|
134 | i = _modf[0],
|
135 | s = _modf[1];
|
136 |
|
137 | s = round(s, precision).toString().replace(/^0\./, '.');
|
138 | var str = i + '°' + s;
|
139 | return str;
|
140 | };
|
141 |
|
142 | return Angle;
|
143 | }();
|
144 |
|
145 |
|
146 |
|
147 |
|
148 |
|
149 |
|
150 |
|
151 | export var HourAngle = function (_Angle) {
|
152 | _inherits(HourAngle, _Angle);
|
153 |
|
154 | function HourAngle() {
|
155 | _classCallCheck(this, HourAngle);
|
156 |
|
157 | return _possibleConstructorReturn(this, _Angle.apply(this, arguments));
|
158 | }
|
159 |
|
160 | |
161 |
|
162 |
|
163 |
|
164 |
|
165 |
|
166 |
|
167 |
|
168 |
|
169 |
|
170 |
|
171 |
|
172 | |
173 |
|
174 |
|
175 |
|
176 |
|
177 |
|
178 |
|
179 |
|
180 |
|
181 |
|
182 | HourAngle.prototype.setDMS = function setDMS() {
|
183 | var neg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
184 | var h = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
185 | var m = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
186 | var s = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.0;
|
187 |
|
188 | this.angle = DMSToDeg(neg, h, m, s) * 15 * Math.PI / 180;
|
189 | return this;
|
190 | };
|
191 |
|
192 | |
193 |
|
194 |
|
195 |
|
196 |
|
197 |
|
198 | HourAngle.prototype.hour = function hour() {
|
199 | return this.angle * 12 / Math.PI;
|
200 | };
|
201 |
|
202 | HourAngle.prototype.deg = function deg() {
|
203 | return this.hour();
|
204 | };
|
205 |
|
206 | |
207 |
|
208 |
|
209 |
|
210 |
|
211 |
|
212 |
|
213 | HourAngle.prototype.toString = function toString(precision) {
|
214 | var _toDMS2 = this.toDMS(),
|
215 | neg = _toDMS2[0],
|
216 | h = _toDMS2[1],
|
217 | m = _toDMS2[2],
|
218 | s = _toDMS2[3];
|
219 |
|
220 | s = round(s, precision).toString().replace(/^0\./, '.');
|
221 | var str = (neg ? '-' : '') + (h + 'ʰ') + (m + 'ᵐ') + (s + 'ˢ');
|
222 | return str;
|
223 | };
|
224 |
|
225 | return HourAngle;
|
226 | }(Angle);
|
227 |
|
228 |
|
229 |
|
230 |
|
231 |
|
232 |
|
233 |
|
234 |
|
235 |
|
236 |
|
237 | export function DMSToDeg(neg, d, m, s) {
|
238 | s = ((d * 60 + m) * 60 + s) / 3600;
|
239 | if (neg) {
|
240 | return -s;
|
241 | }
|
242 | return s;
|
243 | }
|
244 |
|
245 |
|
246 |
|
247 |
|
248 |
|
249 |
|
250 |
|
251 |
|
252 |
|
253 |
|
254 | export function degToDMS(deg) {
|
255 | var neg = deg < 0;
|
256 | deg = Math.abs(deg);
|
257 |
|
258 | var _modf2 = modf(deg % 360),
|
259 | d = _modf2[0],
|
260 | s = _modf2[1];
|
261 |
|
262 | var _modf3 = modf(s * 60),
|
263 | m = _modf3[0],
|
264 | s1 = _modf3[1];
|
265 |
|
266 | s = round(s1 * 60);
|
267 | return [neg, d, m, s];
|
268 | }
|
269 |
|
270 |
|
271 |
|
272 |
|
273 | export var RA = function (_HourAngle) {
|
274 | _inherits(RA, _HourAngle);
|
275 |
|
276 | |
277 |
|
278 |
|
279 |
|
280 |
|
281 |
|
282 |
|
283 |
|
284 | function RA() {
|
285 | var h = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
286 | var m = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
287 | var s = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
288 |
|
289 | _classCallCheck(this, RA);
|
290 |
|
291 | var _this2 = _possibleConstructorReturn(this, _HourAngle.call(this));
|
292 |
|
293 | var args = [].slice.call(arguments);
|
294 | if (args.length === 1) {
|
295 | _this2.angle = h;
|
296 | } else {
|
297 | var hr = DMSToDeg(false, h, m, s) % 24;
|
298 | _this2.angle = hr * 15 * Math.PI / 180;
|
299 | }
|
300 | return _this2;
|
301 | }
|
302 |
|
303 | RA.prototype.hour = function hour() {
|
304 | var h = this.angle * 12 / Math.PI;
|
305 | return (24 + h % 24) % 24;
|
306 | };
|
307 |
|
308 | return RA;
|
309 | }(HourAngle);
|
310 |
|
311 |
|
312 |
|
313 |
|
314 |
|
315 | export var Time = function () {
|
316 | |
317 |
|
318 |
|
319 |
|
320 |
|
321 |
|
322 | function Time(neg, h, m, s) {
|
323 | _classCallCheck(this, Time);
|
324 |
|
325 | if (arguments.length === 1) {
|
326 | this.time = neg;
|
327 | } else {
|
328 | this.setHMS(neg, h, m, s);
|
329 | }
|
330 | }
|
331 |
|
332 | Time.prototype.setHMS = function setHMS() {
|
333 | var neg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
334 | var h = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
335 | var m = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
336 | var s = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
337 |
|
338 | s += (h * 60 + m) * 60;
|
339 | if (neg) {
|
340 | s = -s;
|
341 | }
|
342 | this.time = s;
|
343 | };
|
344 |
|
345 | |
346 |
|
347 |
|
348 |
|
349 |
|
350 | Time.prototype.sec = function sec() {
|
351 | return this.time;
|
352 | };
|
353 |
|
354 | |
355 |
|
356 |
|
357 |
|
358 |
|
359 | Time.prototype.min = function min() {
|
360 | return this.time / 60;
|
361 | };
|
362 |
|
363 | |
364 |
|
365 |
|
366 |
|
367 |
|
368 | Time.prototype.hour = function hour() {
|
369 | return this.time / 3600;
|
370 | };
|
371 |
|
372 | |
373 |
|
374 |
|
375 |
|
376 |
|
377 | Time.prototype.day = function day() {
|
378 | return this.time / 3600 / 24;
|
379 | };
|
380 |
|
381 | |
382 |
|
383 |
|
384 |
|
385 |
|
386 | Time.prototype.rad = function rad() {
|
387 | return this.time * Math.PI / 12 / 3600;
|
388 | };
|
389 |
|
390 | |
391 |
|
392 |
|
393 |
|
394 |
|
395 |
|
396 |
|
397 |
|
398 |
|
399 |
|
400 | Time.prototype.toHMS = function toHMS() {
|
401 | var t = this.time;
|
402 | var neg = t < 0;
|
403 | t = neg ? -t : t;
|
404 | var h = Math.trunc(t / 3600);
|
405 | t = t - h * 3600;
|
406 | var m = Math.trunc(t / 60);
|
407 | var s = t - m * 60;
|
408 | return [neg, h, m, s];
|
409 | };
|
410 |
|
411 | |
412 |
|
413 |
|
414 |
|
415 |
|
416 |
|
417 |
|
418 | Time.prototype.toString = function toString(precision) {
|
419 | var _toHMS = this.toHMS(),
|
420 | neg = _toHMS[0],
|
421 | h = _toHMS[1],
|
422 | m = _toHMS[2],
|
423 | s = _toHMS[3];
|
424 |
|
425 | var _modf4 = modf(s),
|
426 | si = _modf4[0],
|
427 | sf = _modf4[1];
|
428 |
|
429 | if (precision === 0) {
|
430 | si = round(s, 0);
|
431 | sf = 0;
|
432 | } else {
|
433 | sf = round(sf, precision).toString().substr(1);
|
434 | }
|
435 | var str = (neg ? '-' : '') + (h + 'ʰ') + (m + 'ᵐ') + (si + 'ˢ') + (sf || '');
|
436 | return str;
|
437 | };
|
438 |
|
439 | return Time;
|
440 | }();
|
441 |
|
442 |
|
443 | export var angleFromDeg = function angleFromDeg(deg) {
|
444 | return deg * Math.PI / 180;
|
445 | };
|
446 | export var angleFromMin = function angleFromMin(min) {
|
447 | return min / 60 * Math.PI / 180;
|
448 | };
|
449 | export var angleFromSec = function angleFromSec(sec) {
|
450 | return sec / 3600 * Math.PI / 180;
|
451 | };
|
452 | export var degFromAngle = function degFromAngle(angle) {
|
453 | return angle * 180 / Math.PI;
|
454 | };
|
455 | export var secFromAngle = function secFromAngle(angle) {
|
456 | return angle * 3600 * 180 / Math.PI;
|
457 | };
|
458 | export var secFromHourAngle = function secFromHourAngle(ha) {
|
459 | return ha * 240 * 180 / Math.PI;
|
460 | };
|
461 |
|
462 |
|
463 |
|
464 |
|
465 |
|
466 |
|
467 |
|
468 |
|
469 |
|
470 | function modf(float) {
|
471 | var i = Math.trunc(float);
|
472 | var f = Math.abs(float - i);
|
473 | return [i, f];
|
474 | }
|
475 |
|
476 |
|
477 |
|
478 |
|
479 |
|
480 |
|
481 |
|
482 |
|
483 | function round(float, precision) {
|
484 | precision = precision === undefined ? 10 : precision;
|
485 | return parseFloat(float.toFixed(precision), 10);
|
486 | }
|
487 |
|
488 | export default {
|
489 | Angle: Angle,
|
490 | HourAngle: HourAngle,
|
491 | DMSToDeg: DMSToDeg,
|
492 | degToDMS: degToDMS,
|
493 | RA: RA,
|
494 | Time: Time,
|
495 | angleFromDeg: angleFromDeg,
|
496 | angleFromMin: angleFromMin,
|
497 | angleFromSec: angleFromSec,
|
498 | degFromAngle: degFromAngle,
|
499 | secFromAngle: secFromAngle,
|
500 | secFromHourAngle: secFromHourAngle
|
501 | }; |
\ | No newline at end of file |