UNPKG

step-sequence-generator

Version:

A step sequence generator for figure skating programs

51 lines (50 loc) 3.16 kB
import { Movement } from '../movement/Movement'; import { MovementLibrary } from '../movement/MovementLibrary'; import { IMovementExtended } from '../../shared/types/extended-movement/movement-extended.interface'; import { StepContext } from './StepContext'; import { StepTracker } from '../sequence-tracker/StepTracker'; import { DistanceFactorType } from '../../shared/types/distance-factor.type'; import { IStepCounter } from '../../shared/types/abstract-step-counter.interface'; import { ICoordinates } from '../../shared/types/extended-movement/movement-coordinates.interface'; import { MapMovementCompositeFilterType } from '../../shared/types/map-composite-filters.type'; import { FilterStrategyName } from '../../shared/enums/filter-stategy-name.enum'; import { BaseCompositeMovementFilters } from '../filter-strategy/BaseCompositeMovementFilters'; import { CompassArc } from '../sequence-tracker/CompassArc'; import { Roulette } from '../roulette/Roulette'; import { MovementChanceRatioMapGenerator } from '../chance-ratio-map-generator/MovementChanceRatioMapGenerator'; import { MovementChanceRatioMapType } from '../../shared/types/roulette/chance-ratio-map.type'; export declare abstract class AbstractSequenceGenerator<C extends IStepCounter> { protected stepSequence: IMovementExtended[]; protected readonly library: MovementLibrary; protected readonly context: StepContext<IMovementExtended>; protected readonly counter: C; protected readonly chanceRatioMapGenerator: MovementChanceRatioMapGenerator; protected readonly roulette: Roulette; protected readonly tracker: StepTracker; protected readonly filterStrategy: MapMovementCompositeFilterType; protected readonly compassArc: CompassArc; protected constructor(data: { library: MovementLibrary; context: StepContext<IMovementExtended>; counter: C; chanceRatioMapGenerator: MovementChanceRatioMapGenerator; roulette: Roulette; tracker: StepTracker; filterStrategy: MapMovementCompositeFilterType; compassArc: CompassArc; }); abstract generate(...args: unknown[]): IMovementExtended[]; protected generateMovement(distanceFactor: DistanceFactorType, filterStrategy: BaseCompositeMovementFilters): IMovementExtended; protected extendMovement(movement: Movement): IMovementExtended; protected chooseMovement(movements: Movement[], chanceRatioMap: MovementChanceRatioMapType): Movement; protected getCurrentLibrary(filterStrategy: BaseCompositeMovementFilters): MovementLibrary; protected getFilterStrategy(filterStrategyName: FilterStrategyName): BaseCompositeMovementFilters; reset(): void; protected resetSequence(): void; protected update(movementExtended: IMovementExtended): void; protected contextUpdate(movementExtended: IMovementExtended): void; protected counterUpdate(movementExtended: IMovementExtended): void; protected stepSequenceUpdate(movement: IMovementExtended): void; protected getCoordinates(newMovement: Movement, distanceFactor: DistanceFactorType): ICoordinates; protected getRandomIndex(max: number): number; }