midi-player-demo / src /common /transform /ArrangeCoordTransform.ts
Yann
test
f23825d
raw
history blame
867 Bytes
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
}
}