UNPKG

@canterbury-air-patrol/sar-search-patterns

Version:
97 lines (93 loc) 3.19 kB
import React from 'react'; declare class xy { x: number; y: number; constructor(x: number, y: number); } declare class SearchLeg { from: xy; to: xy; bearing: number; distance: number; constructor(from: xy, to: xy, distance: number, bearing: number); } declare class SearchPattern { sweepWidth: number; searchLegs: SearchLeg[]; currentLeg: number; searchType?: string; constructor(sweepWidth: number); get leg(): SearchLeg; get complete(): boolean; get length(): number; getLegs(): SearchLeg[]; nextLeg(): void; uniqueKey(): string; } declare class SectorSearch extends SearchPattern { startingDirection: number; multiplier: number; iterations: number; constructor(sweepWidth: number, multiplier: number, iterations: number, startingDirection: number); generateSearchLegs(): void; uniqueKey(): string; } declare class ExpandingBoxSearch extends SearchPattern { iterations: number; startingDirection: number; constructor(sweepWidth: number, iterations: number, startingDirection: number); generateSearchLegs(): void; uniqueKey(): string; } declare class CreepingLineAheadSearch extends SearchPattern { legLength: number; legs: number; progressDirection: number; constructor(sweepWidth: number, legLength: number, legs: number, progressDirection: number); generateSearchLegs(): void; uniqueKey(): string; } interface SearchDisplayProps { search: SearchPattern; leg?: number; } interface SearchDisplayState { search: SearchPattern; } declare class SearchDisplay extends React.Component<SearchDisplayProps, SearchDisplayState> { canvasRef: React.RefObject<HTMLCanvasElement | null>; minX: number; minY: number; maxX: number; maxY: number; constructor(props: SearchDisplayProps); updateX(x: number): void; updateY(y: number): void; determineXYRange(searchLegs: SearchLeg[]): number[]; drawSearch(canvas: HTMLCanvasElement): void; componentDidMount(): void; render(): React.JSX.Element; } interface SearchConfigurationProps { updateSearch: (search?: SearchPattern) => void; } interface SearchConfigurationState { searchType: string; sweepWidth: number; legLength: number; iterations: number; initialDirection: number; multiplier: number; } declare class SearchConfiguration extends React.Component<SearchConfigurationProps, SearchConfigurationState> { constructor(props: SearchConfigurationProps); handleStateUpdate(): void; handleChangeSearch(event: React.ChangeEvent<HTMLSelectElement>): void; handleChangeSweepWidth(event: React.ChangeEvent<HTMLInputElement>): void; handleChangeLegLength(event: React.ChangeEvent<HTMLInputElement>): void; handleChangeMultiplier(event: React.ChangeEvent<HTMLInputElement>): void; handleChangeIterations(event: React.ChangeEvent<HTMLInputElement>): void; handleChangeDirection(event: React.ChangeEvent<HTMLInputElement>): void; render(): React.JSX.Element; } export { CreepingLineAheadSearch, ExpandingBoxSearch, SearchConfiguration, SearchDisplay, SearchLeg, SearchPattern, SectorSearch };