Spaces:
Running
Running
import { IPoint } from "../geometry" | |
export class ArrangeCoordTransform { | |
private _pixelsPerTick: number | |
private _pixelsPerTrack: number | |
constructor(pixelsPerTick: number, pixelsPerTrack: number) { | |
this._pixelsPerTick = pixelsPerTick | |
this._pixelsPerTrack = pixelsPerTrack | |
} | |
getX(tick: number): number { | |
return tick * this._pixelsPerTick | |
} | |
getY(trackIndex: number): number { | |
return trackIndex * this._pixelsPerTrack | |
} | |
getTick(x: number): number { | |
return x / this._pixelsPerTick | |
} | |
getTrackIndex(y: number): number { | |
return y / this._pixelsPerTrack | |
} | |
getArrangePoint(point: IPoint) { | |
return { | |
tick: this.getTick(point.x), | |
trackIndex: this.getTrackIndex(point.y), | |
} | |
} | |
get pixelsPerTick() { | |
return this._pixelsPerTick | |
} | |
get pixelsPerTrack() { | |
return this._pixelsPerTrack | |
} | |
} | |