import { GraphicData, GraphicState, JlGraphic, JlGraphicTemplate, VectorText } from 'jl-graphic'; import { IPointData } from 'pixi.js'; import { SectionGraphic } from './SectionGraphic'; import { DevicePort, IRelatedRef } from 'src/common/common'; import { Turnout } from 'src/packages/Turnout/Turnout'; export interface ISectionData extends GraphicData { code: string; isCurve: boolean; segmentsCount: number; points: IPointData[]; sectionType: SectionType; paRef?: IRelatedRef; pbRef?: IRelatedRef; axleCountings?: number[]; centralizedStations?: number[]; trackSectionId?: number; clone(): ISectionData; copyFrom(data: ISectionData): void; eq(other: ISectionData): boolean; } export interface ISectionState extends GraphicState { id: number; occupied: boolean; } export declare enum SectionType { Physical = 0,//物理区段 Logic = 1,//逻辑区段 TurnoutPhysical = 2,//道岔物理区段 Track = 4,//轨道区段 TrackLogic = 5 } export interface SectionDisplayConfig { lineColor: string; occupiedColor: string; lineWidth: number; } export declare class Section extends JlGraphic { static Type: string; lineGraphic: SectionGraphic; labelGraphic: VectorText; displayConfig: SectionDisplayConfig; constructor(); setDisplayConfig(config: SectionDisplayConfig): void; getVerticesList(): IPointData[]; getStartPoint(): IPointData; getEndPoint(): IPointData; doRepaint(): void; get datas(): ISectionData; get states(): ISectionState; get linePoints(): IPointData[]; set linePoints(points: IPointData[]); getConnectElement(port: DevicePort): { g: Turnout | Section; port: DevicePort; } | undefined; /** 获取拆分逻辑区段数据 */ getSplitPoints(count: number): IPointData[][]; buildRelation(): void; saveRelations(): void; loadRelations(): void; } export declare class SectionTemplate extends JlGraphicTemplate
{ constructor(dataTemplate: ISectionData, stateTemplate?: ISectionState); new(): Section; }