import { WebGLRenderer, Scene, PerspectiveCamera, Vector3, Object3D, Mesh, MeshStandardMaterial, CanvasTexture, Texture } from 'three';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
import type { IScene, IMod } from "./ThreeType";
export default class ThreeUtil {
    private canvas_frame;
    private renderer;
    private scene;
    private camera;
    private controls;
    private width;
    private height;
    private clock;
    private mixer;
    private clipList;
    private modState;
    private local3DLoader;
    private curRole;
    private preRole;
    private aniId;
    private actMeshSet;
    selSet: Set<string>;
    hideSet: Set<string>;
    constructor(canvas: HTMLElement, actMeshSet?: Set<string>, selSet?: Set<string>, hideSet?: Set<string>);
    changeControl(isOn: boolean): void;
    initRenderer(): WebGLRenderer;
    initScene(): Scene;
    initCamera(): PerspectiveCamera;
    initLight(): void;
    initControls(): OrbitControls;
    render(): void;
    initAnimate(): number;
    onCanvasClick(event: MouseEvent): void;
    colorMesh(): void;
    hideMesh(): void;
    getSelSet(): Set<string>;
    private show_obj;
    playClip(name: string, timeScale: number): void;
    MoveTo(obj: Object3D, to: Vector3, sec: number): void;
    RotateTo(obj: Object3D, sec: number): void;
    private scale;
    scaleAdd(delta: number): void;
    scaleSub(delta: number): void;
    private move;
    moveLeft(delta: number): void;
    moveRight(delta: number): void;
    moveUp(delta: number): void;
    moveDown(delta: number): void;
    rotateUp(delta: number): void;
    rotateDown(delta: number): void;
    rotateRight(delta: number): void;
    rotateLeft(delta: number): void;
    sceneClear(): void;
    sceneSave(): void;
    sceneHide(): void;
    loadSavedObj(s: IScene): void;
    resHandler(o: Object3D): void;
    loadLocalMod(mod: IMod): void;
    /**
     * 绘制物体框线
     * @param name 需要框线选出的Mesh名字
     */
    set_obj_box(name: string): void;
    /**
     * 重绘所有的框线
     */
    recover_all_box(): void;
    /**
     * 清除物体框线
     * @param name 物体名字
     */
    recover_obj_box(name: string): void;
    /**
     * 清除所有的框线
     */
    remove_all_box(): void;
    clear_scene_color(): void;
    set_obj_color(item: Object3D, color: number): void;
    set_mesh_color(item: Mesh, color: number): void;
    create_material(texture: Texture): MeshStandardMaterial;
    create_screen(width: number, height: number): {
        material: MeshStandardMaterial;
        ctx: CanvasRenderingContext2D;
        texture: CanvasTexture;
    };
    draw_main_screen(ctx: CanvasRenderingContext2D, width: number, height: number, bottom_rect_height: number): void;
    draw_text(ctx: CanvasRenderingContext2D, text: string, color: string, begin_x: number, begin_y: number): void;
    draw_line_rect(ctx: CanvasRenderingContext2D, color: string, begin_x: number, begin_y: number, rect_width: number, rect_height: number, width?: number): void;
    draw_fill_rect(ctx: CanvasRenderingContext2D, color: string, begin_x: number, begin_y: number, rect_width: number, rect_height: number): void;
    draw_line(ctx: CanvasRenderingContext2D, color: string, width: number, begin_x: number, begin_y: number, end_x: number, end_y: number): void;
    play_clip(clip_name: string, time_scale: number): void;
    stop_all(): void;
    play_pause(clip_name: string): void;
    play_continue(clip_name: string): void;
    set_obj_position(name: string, x: number, y: number, z: number, sec?: number): void;
    get_obj_position(name: string): Vector3 | undefined;
    do_dispose(): void;
    getScene(): Scene;
    private deleteThreeGroup;
    private deleteAnimation;
    private deleteRenderer;
    private deleteControl;
    clearThree(): void;
}
//# sourceMappingURL=ThreeUtil.d.ts.map