step-sequence-generator
Version:
A step sequence generator for figure skating programs
48 lines (47 loc) • 2.29 kB
TypeScript
import { VectorAngleType, VectorCursorType, VectorTrackType } from '../../shared/types/vector.type';
import { DescartesCoordinatesType } from '../../shared/types/descartes-coordinates.type';
import { VectorKey } from '../../shared/enums/vector-key.enum';
import { ArcVectorIndexType } from '../../shared/types/arc-vector/arc-vector-index.type';
import { VectorKeyChanceRatioMapGenerator } from '../chance-ratio-map-generator/VectorKeyChanceRatioMapGenerator';
import { Roulette } from '../roulette/Roulette';
type GetNextPositionArgsType = {
currentVectorKey: VectorKey | null;
currentAcrVectorIndex: ArcVectorIndexType;
currentCoordinates: DescartesCoordinatesType;
distance: number;
};
type ConstructorArgsType = {
standardStartCoordinates: ReadonlyArray<DescartesCoordinatesType>;
vectorsTrack: VectorTrackType;
vectorAngles: VectorAngleType;
vectorKeyChanceRatioMapGenerator: VectorKeyChanceRatioMapGenerator;
roulette: Roulette;
};
export declare class StepTracker {
readonly startCoordinates: ReadonlyArray<DescartesCoordinatesType>;
readonly vectorsTrack: VectorTrackType;
readonly vectorAngles: VectorAngleType;
readonly vectorKeyChanceRatioMapGenerator: VectorKeyChanceRatioMapGenerator;
readonly roulette: Roulette;
constructor(data: ConstructorArgsType);
/**
* @arg data
* @arg {VectorKey | null} data.currentVectorKey ключ вектора движения относительно поля
* @arg {ArcVectorIndexType} data.currentAcrVectorIndex индекс дуги: по часовой или против часовой стрелки
* @arg {DescartesCoordinatesType} data.currentCoordinates текущий координаты
* @arg {number} data.distance расстояние, которое покрывает движение
* */
getNextPosition(data: GetNextPositionArgsType): {
vector: VectorKey;
coordinates: DescartesCoordinatesType;
};
private filterVectorKeys;
private getNewCoordinates;
private calcCoordinate;
getNextTrackVector(vectorKey: VectorKey): VectorCursorType;
private getNextMovementVector;
private getAllowedVectorKeys;
getStartCoordinates(): DescartesCoordinatesType;
private getRandom;
}
export {};