import type { CurvePath, SceneControl, Vector3 } from '@anov/3d-core'; import { BaseTraffic } from '../base'; import type { RealismTrafficInterface } from '.'; type ResourceParams = { url: string; }; type LanelineControl = { index: number; direction?: number; }; type RealismTrafficParams = { path: CurvePath; width?: number; divide?: number; resource: ResourceParams[]; baseTime?: number; totalNum?: number; control?: LanelineControl[]; corner?: number; }; /** * 写实风格车辆交通组件 */ export declare class RealismTraffic extends BaseTraffic implements RealismTrafficInterface { /** 车辆模型池 */ private _resource; /** 基准时间 */ private _baseTime; /** 车辆数量 */ private _totalNum; private _startingPoints; private _startingLookatPoints; private _startingProgressPoints; private _startinglanelinePoints; private _visible; private _control; private _lanelineControl; /** 基准载具池 */ private _benchmarkVehicles; /** 实际载具 */ private _vehicles; /** 车道线 */ lanelines: CurvePath[]; get width(): number; set width(w: number); get divide(): number; set divide(num: number); visible: boolean; get baseTime(): number; constructor(params: RealismTrafficParams, sceneControl: SceneControl); /** * load benchmark model */ private loadBenchmarkModel; /** * get max vehicle length */ private getMaxVehicleLength; /** * check reasonable location */ private generateRandomPool; /** * build random pool */ private buildRandomPool; /** * handle requestAnimationFrame pause */ private handleVisibilityChange; /** * generate random movement starting point */ private generateInitPosition; /** * place vehicle */ private placeVehicle; /** * run * @param laneline * @param model * @param progress * @param laneIndex */ private run; /** * normalized vehicle size */ private normalizedVehicleSize; removeFromParent(): this; } export {};