import { Vec3 } from '../../math/Vec3'; import { Point } from './Point'; import { ArrayList } from '../data/ArrayList'; import { Mat4 } from '../../math/Mat4'; export interface IDistanceResut { isNode: boolean; point: Vec3; direction: Vec3; } export declare class Path extends ArrayList { _closed: boolean; _calcNoraml: boolean; /** * * @param vs 假定是没有重复的点集 * @param closed * @param calcNormal */ constructor(vs: Array | ArrayList, closed?: boolean, calcNormal?: boolean); init(calcNormal: boolean): void; set closed(val: boolean); get closed(): boolean; get tlen(): number; applyMat4(mat4: Mat4): void; scale(x: number, y: number, z: number): void; /** * 截取一段从from到to的path * @param {Number} from * @param {Number} to */ splitByFromToDistance(from?: number, to?: number): Path | null; /** * 从起点出发到距离等于distance位置 的坐标 二分查找 * @param {Number} distance */ getPointByDistance(arg_distance: number, left?: number, right?: number): IDistanceResut | null; /** * 从起点出发到距离等于distance位置 的坐标 二分查找 * @param {Number} distance */ getPointByDistancePure(arg_distance: number, left?: number, right?: number): Vec3 | null; /** * 平均切割为 splitCount 段 * @param {Number} splitCount * @returns {Path} 新的path */ splitAverage(splitCount: number): Path; /** * 通过测试 * 平均切割为 splitCount 段 * @param {Number} splitCount * @param {Boolean} integer 是否取整 * @returns {Path} 新的path */ splitAverageLength(splitLength: number, integer?: boolean): Path; /** * * @param {...any} ps */ add(...ps: Vec3[] | Point[]): void; /** * @description : 计算一段线段的总长度 * @param {ArrayLike} ps * @return {number} 总长度 */ static totalMileages(ps: ArrayLike): number; /** * @description : 获取没一点的里程 里程是指从第一个点出发的长度 * @param {ArrayLike} ps 里程上的点集 * @param {boolean} normalize 是否归一化 * @return {number[]} 每一个点的里程数组 * @example : */ static getPerMileages(ps: ArrayLike, normalize?: boolean, totalMileage?: number): number[]; }