Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import { CubicSpline } from './CubicSpline'; import { CardinalSplineProps } from '../../../types'; class CardinalSpline extends CubicSpline { private _scale: number; private _fixedScale: boolean; constructor(props?: CardinalSplineProps) { super(props); this._scale = props?.scale ?? 0.5; this._fixedScale = props?.fixedScale ?? false; } public get scale() { return this._scale; } public set scale(scale: number) { if (this._fixedScale || this._scale === scale) { return; } this._scale = scale; this.invalidated = true; } public get fixedScale() { return this._fixedScale; } protected getTransformMatrix(): number[] { const { scale: s } = this; const s2 = 2 * s; // prettier-ignore return [ 0, 1, 0, 0, -s, 0, s, 0, s2, s - 3, 3 - s2, -s, -s, 2 - s, s - 2, s ]; } } export { CardinalSpline as default, CardinalSpline }; |