import { SceneContext } from "../Context/SceneContext"; import { RenderName } from "../Render/RenderMap"; import { Label } from "../Model/Label"; import { LoadState } from "../Model/LoadState"; import { Token } from "../Model/Token"; import { IWireControl } from "../Model/ExtrusionControl"; import { ISketchControl } from "../Model/ISketchControl"; import { IWire } from "../Model/IWire"; import { IAxisControl } from "../Model/IAxisControl"; import { IWaterFlowControl } from "../Plugin/WaterFlow/IWaterFlowControl"; /** * @category 场景 */ export declare class Scene { /** * 急速模式 */ efficiency_mode: boolean; /** 场景上下文 */ get scene_context(): SceneContext; /** * fps 回调 */ set fps_changed(value: (f: number) => void); /** * 绘制结束回调 */ after_draw: () => void; /** * gpu 奔溃回调 */ on_crash: () => void; constructor(div: HTMLDivElement); /** * 更新canvas尺寸, * 当canvas大小改变,并且没有触发window.resize事件时,需要显示调用 */ update_size(): void; /** * 激活或者关闭测量工具 * @param flag true 激活 false 关闭 */ enable_measure(flag: boolean): void; /** * 激活或者关闭 NavigationCube * @param flag true 激活 false 关闭 */ enable_navigation_cube(flag: boolean): void; /** * 设置navigation_cude 大小和位置 * @param size * @param action * @example * action: * (c,size)=>{ let rect = c.getBoundingClientRect(); let y = rect.height - size; let x = rect.width - size; return {x,y}; } */ set_navigation_cube(size: number, action?: (c: HTMLCanvasElement, size: number) => { x: number; y: number; }): void; /** * 激活或者关闭 剖切框 * @param flag true 激活 false 关闭 */ enable_section(flag: boolean): void; /** * 开发中 * @beta * @param flag */ enable_skybox(flag: boolean): void; /** * * @param flag */ enable_snappoint(flag: boolean): void; /** * 重置剖切框 */ reset_section(): void; /** * 设置场景中要显示的标签 * @param labels */ set_label(labels: Label[]): void; /** * * @param label 需要更新的Label 使用id匹配 */ update_label(label: Label): void; /** * 设置cad * @param data */ set_cad(data: { cad: HTMLImageElement; points: Float32Array; }): void; /** * 草图绘制 * @param flag * @param callback */ enable_sketch_plane(flag: boolean): ISketchControl; /** * 显示线框 * @param flag * @param data * @returns */ enable_wire(flag: boolean, ext: IWire): IWireControl; /** * 绘制长方体 * @param flag * @returns */ enable_wall_editer(flag: boolean): import("..").ICuboidEditer; /** * 坐标轴模型 * @param flag */ enable_axis(flag?: boolean): IAxisControl; enable_waterflow(flag?: boolean): IWaterFlowControl; /** * @deprecated */ select_render(name: RenderName): void; /** * 截图 * @param callback 获取截图的回调函数 */ screenshot(callback: (img: ImageData) => void): void; /** * 释放资源,包括事件,内置worker,显存 */ dispose(): void; /** * 加载模型 * @param url * @param token * @param action */ load_url(url: string, token: Token, action: (scene: Scene, progress: LoadState) => void): void; /** * 加载缓存 * @param buffer * @param action */ load_cache(buffer: ArrayBuffer, action: (scene: Scene, progress: LoadState) => void): void; }