94 lines
6.5 KiB
JavaScript
94 lines
6.5 KiB
JavaScript
/**
|
|
* @fileoverview added by tsickle
|
|
* @suppress {checkTypes} checked by tsc
|
|
*/
|
|
import { Injectable } from '@angular/core';
|
|
import { NlsMathService } from './math.service';
|
|
export class NlsGraphService {
|
|
/**
|
|
* @param {?} math
|
|
*/
|
|
constructor(math) {
|
|
this.math = math;
|
|
}
|
|
/**
|
|
* @return {?}
|
|
*/
|
|
get() {
|
|
return this.graphs;
|
|
}
|
|
/**
|
|
* @param {?} newGraphs
|
|
* @return {?}
|
|
*/
|
|
set(newGraphs) {
|
|
this.graphs = newGraphs;
|
|
}
|
|
/**
|
|
* @return {?}
|
|
*/
|
|
get isAnimated() {
|
|
return this.animation;
|
|
}
|
|
/**
|
|
* @return {?}
|
|
*/
|
|
startAnimation() {
|
|
this.animation = true;
|
|
}
|
|
/**
|
|
* @return {?}
|
|
*/
|
|
stopAnimation() {
|
|
this.animation = false;
|
|
}
|
|
/**
|
|
* @param {?} start
|
|
* @param {?} spacing
|
|
* @return {?}
|
|
*/
|
|
*spreadOrthogonal(start, spacing) {
|
|
/** @type {?} */
|
|
const sign = this.math.flipSign();
|
|
/** @type {?} */
|
|
let currentPoint = start;
|
|
/** @type {?} */
|
|
let i = 0;
|
|
while (true) {
|
|
/** @type {?} */
|
|
const currentSpacing = sign.next().value * spacing * i;
|
|
currentPoint = this.shiftPoint(currentPoint, start.ascent, currentSpacing);
|
|
yield currentPoint;
|
|
i++;
|
|
}
|
|
}
|
|
/**
|
|
* @param {?} point
|
|
* @param {?} radians
|
|
* @param {?} spacing
|
|
* @return {?}
|
|
*/
|
|
shiftPoint(point, radians, spacing) {
|
|
return {
|
|
x: Math.sin(radians * Math.PI) * spacing + point.x,
|
|
y: Math.cos(radians * Math.PI) * spacing + point.y
|
|
};
|
|
}
|
|
}
|
|
NlsGraphService.decorators = [
|
|
{ type: Injectable },
|
|
];
|
|
/** @nocollapse */
|
|
NlsGraphService.ctorParameters = () => [
|
|
{ type: NlsMathService }
|
|
];
|
|
function NlsGraphService_tsickle_Closure_declarations() {
|
|
/** @type {?} */
|
|
NlsGraphService.prototype.graphs;
|
|
/** @type {?} */
|
|
NlsGraphService.prototype.animation;
|
|
/** @type {?} */
|
|
NlsGraphService.prototype.math;
|
|
}
|
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25scy1ndWlsbG9jaGUvIiwic291cmNlcyI6WyJubHMvc2VydmljZXMvZ3JhcGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBaUJBLE9BQU8sRUFBVSxVQUFVLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUtoRCxNQUFNOzs7O0lBSUosWUFDVTtRQUFBLFNBQUksR0FBSixJQUFJO0tBQ1Y7Ozs7SUFFRyxHQUFHO1FBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7OztJQUdkLEdBQUcsQ0FBQyxTQUFrQjtRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQzs7Ozs7UUFHZixVQUFVO1FBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDOzs7OztJQUdqQixjQUFjO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDOzs7OztJQUdqQixhQUFhO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDOzs7Ozs7O0tBR2pCLGdCQUFnQixDQUFDLEtBQVksRUFBRSxPQUFlOztRQUNwRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDOztRQUNsQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7O1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVWLE9BQU8sSUFBSSxFQUFFLENBQUM7O1lBQ1osTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZELFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRTNFLE1BQU0sWUFBWSxDQUFDO1lBRW5CLENBQUMsRUFBRSxDQUFDO1NBQ0w7Ozs7Ozs7O0lBR0ksVUFBVSxDQUFDLEtBQVksRUFBRSxPQUFlLEVBQUUsT0FBZTtRQUM5RCxNQUFNLENBQUM7WUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNsRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNuRCxDQUFDOzs7O1lBaERMLFVBQVU7Ozs7WUFKRixjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDE4IE1pY2hhZWwgQ3plY2hvd3NraSA8bWFpbEBkYWlseXNoLml0PlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXRcbiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlXG4gKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUXG4gKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3JcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvclxuICogbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nIHdpdGhcbiAqIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MVxuICogRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFNlbGVjdGlvbiBmcm9tICdkMy1zZWxlY3Rpb24nO1xuXG5pbXBvcnQgeyBObHNNYXRoU2VydmljZSB9IGZyb20gJy4vbWF0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSAnLi8uLi9tb2RlbHMvZ3JhcGgubW9kZWwnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLy4uL21vZGVscy9wb2ludC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBObHNHcmFwaFNlcnZpY2Uge1xuICBwcml2YXRlIGdyYXBoczogR3JhcGhbXTtcbiAgcHJpdmF0ZSBhbmltYXRpb246IGJvb2xlYW4gfCBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWF0aDogTmxzTWF0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JhcGhzO1xuICB9XG5cbiAgcHVibGljIHNldChuZXdHcmFwaHM6IEdyYXBoW10pIHtcbiAgICB0aGlzLmdyYXBocyA9IG5ld0dyYXBocztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNBbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hbmltYXRpb247XG4gIH1cblxuICBwdWJsaWMgc3RhcnRBbmltYXRpb24oKSB7XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0b3BBbmltYXRpb24oKSB7XG4gICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyAqc3ByZWFkT3J0aG9nb25hbChzdGFydDogUG9pbnQsIHNwYWNpbmc6IG51bWJlcikge1xuICAgIGNvbnN0IHNpZ24gPSB0aGlzLm1hdGguZmxpcFNpZ24oKTtcbiAgICBsZXQgY3VycmVudFBvaW50ID0gc3RhcnQ7XG4gICAgbGV0IGkgPSAwO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTcGFjaW5nID0gc2lnbi5uZXh0KCkudmFsdWUgKiBzcGFjaW5nICogaTtcbiAgICAgIGN1cnJlbnRQb2ludCA9IHRoaXMuc2hpZnRQb2ludChjdXJyZW50UG9pbnQsIHN0YXJ0LmFzY2VudCwgY3VycmVudFNwYWNpbmcpO1xuXG4gICAgICB5aWVsZCBjdXJyZW50UG9pbnQ7XG5cbiAgICAgIGkrKztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hpZnRQb2ludChwb2ludDogUG9pbnQsIHJhZGlhbnM6IG51bWJlciwgc3BhY2luZzogbnVtYmVyKTogUG9pbnQge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBNYXRoLnNpbihyYWRpYW5zICogTWF0aC5QSSkgKiBzcGFjaW5nICsgcG9pbnQueCxcbiAgICAgIHk6IE1hdGguY29zKHJhZGlhbnMgKiBNYXRoLlBJKSAqIHNwYWNpbmcgKyBwb2ludC55XG4gICAgfTtcbiAgfVxufVxuIl19
|