@realsee/five
Version:
Realsee Renderer SDK
40 lines (39 loc) • 1.43 kB
TypeScript
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<SweepModelScreenParams>): Required<SweepModelScreenParams>;
/**
* 计算子视锥 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;