import * as THREE from 'three'; /** 一个对象在“排序发起时的旧布局”里占据的全局点索引区间及其到当前布局的位移。 */ export interface ReorderSegment { oldStart: number; oldEnd: number; delta: number; removed: boolean; } export declare class ReorderPass { static readonly SENTINEL = 4294967295; private readonly maxSeg; private material; private scene; private camera; private mesh; private segStart; private segEnd; private segDelta; private segRemoved; constructor(maxSeg?: number); /** 创建一张既能作为 reorder 输出、又能被主渲染 shader 以 usampler2D 采样的 R32UI 目标。 */ static createOrderTarget(width: number, height: number): THREE.WebGLRenderTarget; /** * 执行一次 reorder。 * @param srcOrder 旧 order 纹理(R32UI,usampler2D 可采样),内容为全局点索引 P * @param orderWidth order 纹理宽度(实例 i → coord = (i%width, i/width)) * @param dst 输出目标(R32UI RenderTarget),尺寸需与 srcOrder 对应实例布局一致 * @param segments 区间→位移/剔除段表(长度不应超过 maxSeg) */ run(renderer: THREE.WebGLRenderer, srcOrder: THREE.Texture, orderWidth: number, dst: THREE.WebGLRenderTarget, segments: ReorderSegment[]): void; dispose(): void; private static readonly VERTEX; private static buildFragment; }