import * as THREE from 'three'; /** * SweepModelScreen 插件参数接口 */ export interface SweepModelScreenParams { /** 动画时长 ms, [100, 10000], 默认 800 */ animationDuration?: number; /** 扫光颜色 RGB [0,1], 默认 [1,1,1] */ sweepColor?: [number, number, number]; /** 边缘衰减范围 [0.01, 1.0], 默认 0.15 */ sweepRange?: number; /** 子视锥宽度占比 [0.01, 1.0], 默认 1/6 */ frustumWidth?: number; /** 子视锥高度占比 [0.01, 1.0], 默认 1/6 */ frustumHeight?: number; } /** * 将值钳制到 [-1, 1] 范围 */ export declare function clampNDC(value: number): number; /** * 填充默认值并钳制参数范围 */ export declare function clampParams(params: Partial): Required; /** * 计算子视锥 extent 并 clamp 角点到 NDC 范围。 * 返回 clamp 后的中心和半宽半高 extent。 * * frustumWidth/frustumHeight 表示占屏幕的比例(如 1/6)。 * NDC 空间总宽度为 2(-1 到 1),所以 NDC 半宽 = frustumWidth(即占比 * 总宽/2 = frustumWidth * 2 / 2)。 */ export declare function computeFrustumExtent(center: THREE.Vector2, frustumWidth: number, frustumHeight: number): { center: THREE.Vector2; extent: THREE.Vector2; }; /** * 计算动画进度 [0, 1] */ export declare function computeProgress(elapsedMs: number, duration: number): number;