import { vec2, vec3, vec4 } from "gl-matrix"; import { Camera } from "../Model/camera"; import { Scene } from "../View/scene"; import { SceneEventMap } from "../Model/SceneEventMap"; import { SelectMode } from "../Model/SelectMode"; import { __Instance } from "../Model/__Instance"; import { SelectionManager } from "../Manager/SelectionManager"; import { __GpuContext } from "./__GpuContext"; import { SelectAction } from "../Model/SelectAction"; import { VisibleManager } from "../Manager/VisibleManager"; import { Wander } from "./Wander"; import { BloomManager } from "../Manager/BloomManager"; import { ColorManager } from "../Manager/ColorManager"; import { GroupManager } from "../Manager/GroupManager"; import { SelectableManager } from "../Manager/SelectableManager"; import { MarqueeManager } from "../Manager/MarqueeManager"; import { AnimationManager } from "../Manager/AnimationManager"; import { ViewManager } from "../Manager/ViewManager"; import { Color } from "../Model/Color"; import { Element } from "../Model/Element"; import { SceneManager } from "../Manager/SceneManager"; import { Plane } from "../Model/Plane"; import { SectionMode } from "../Model/SectionMode"; import { Geometry } from "../Model/Geometry"; import { Category } from "../Model/Category"; /** * @category 场景 */ export declare class SceneContext { get scene(): Scene; /** * 场景中所有楼层 */ get storeys(): import("..").Storey[]; /** * 场景中所有构件 */ get elements(): Element[]; /** * 类型 */ get types(): import("..").Type[]; /** * 场景中所有空间 */ get spaces(): Element[]; /** * 场景中所有几何实例 * 多个Instance 组成Element */ get instances(): __Instance[]; /** * 场景中所有几何体 * geometry加上矩阵组成Instance */ get geometries(): Geometry[]; /** * 场景中所有材质 * 材质挂接在Instance上,一个instance只有一个材质 */ get materials(): import("../Model/Material").Material[]; /** * 漫游设置 */ get wander(): Wander; /** * 太阳光,使用平行光模拟 */ get light(): import("..").Light; /** * ao 半径,越大对性能影响越大 */ ao_radius: number; /** * ao 阴影强度,越大越阴影越浅 */ ao_factor: number; /** * 是否显示阴影 */ shadow: boolean; /** * 阴影强度 */ shadow_factor: number; /** * 阴影误差范围 */ bias: number; /** * 环境光颜色 */ get ambient(): Color; set ambient(v: Color); /** * 曝光 */ exposure: number; /** * 高亮颜色 */ get highlight_color(): Color; set highlight_color(color: Color); /** * 文件名称 */ uniqueId: string; /** @internal */ xrayColor: vec4; /**背景颜色 */ background: Color; /**背景图片,优先级高于背景颜色 */ set background_image(v: HTMLImageElement | null); /** * 场景范围框 */ get box(): Float32Array; set box(v: Float32Array); /** * 剖切框 */ get section_box(): Float32Array | null; set section_box(v: Float32Array | null); /** * 剖切平面 */ get section_plane(): Plane; set section_plane(plane: Plane); /** * 剖切模式 */ get section_mode(): SectionMode; set section_mode(mode: SectionMode); /**选择模式 */ get select_mode(): SelectMode; set select_mode(mode: SelectMode); /** * 禁止旋转 */ get can_rotate(): boolean; set can_rotate(v: boolean); get can_scale(): boolean; set can_scale(v: boolean); get can_move(): boolean; set can_move(v: boolean); /** * 设置场景已经改变, * 在浏览器下次渲染时会跟新场景 */ get changed(): boolean; set changed(value: boolean); /**设置选择 */ get selection_manager(): SelectionManager; /**设置泛光 */ get bloom_manager(): BloomManager; /** 设置颜色 */ get color_manager(): ColorManager; /** 打组 */ get group_manager(): GroupManager; /** 设置构件是否可以选择 */ get selectable_manager(): SelectableManager; /**设置灯带 */ get marquee_manager(): MarqueeManager; /** 设置动画 */ get animation_manager(): AnimationManager; /**视图操作 */ get view_manager(): ViewManager; /** 设置选择效果 */ select_action: SelectAction; /** 边线颜色 */ edge_color: Color; /** 边线宽度 */ edge_width: number; /** * 设置边线显示隐藏 * @beta */ /** 设置可见性 */ get visible_manager(): VisibleManager; get scene_manager(): SceneManager; /** 轮廓线颜色 */ outline_color: Color; /** 轮廓线宽度 */ outline_width: number; /** @internal */ constructor(scene: Scene, sceneGraphicsContext: __GpuContext, camera: Camera, canvas: HTMLCanvasElement); /** * 设置参考平面 * @param orign * @param normal */ set_sketch_plane(orign: Float32Array, normal: Float32Array): void; /** 添加事件 */ add_event_listener(type: K, listener: (sc: SceneContext, ev: SceneEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; /** * 删除事件 * @param type * @param listener * @param options * @returns */ remove_event_listener(type: K, listener: (sc: SceneContext, ev: SceneEventMap[K]) => any, options?: boolean | EventListenerOptions): void; /** * 通过屏幕坐标选择 * @param x 屏幕x坐标 * @param y 屏幕y坐标 * @param model 选择模式 */ select(x: number, y: number, model: SelectMode): import("..").SelectResult; /** * 场景3d坐标转换为屏幕坐标 * @param p * @returns */ get_screen_point(p: vec3): vec2; /** * 创建构件 * @param id * @param geos * @param category * @param color * @returns */ create_element(id: number, geos: Geometry[], category: Category, color: Color): Element; /** * 保存 新建和场景构件 * @returns */ save_extra_elements(): ArrayBuffer; /** * 加载新建构件 * @param buffer * @returns */ load_extra_elements(buffer: ArrayBuffer): void; /** * 缩放构件 * @param element * @param scale x,y,z 三个方向的缩放 */ scale_element(element: Element, scale: [number, number, number]): void; /** * 旋转构件 * @param element * @param axis 旋转轴 * @param rad 弧度 */ rotate_element(element: Element, axis: [number, number, number], rad: number): void; /** * 移动构件 * @param element * @param move */ move_element(element: Element, move: [number, number, number]): void; /** * 重置构件缩放和旋转 * @param element */ reset_element_pose(element: Element): void; /** * 删除构件 * @param element */ delete_element(element: Element): void; /** * 设置构件位置 * @param element * @param loc */ set_location(element: Element, loc: [number, number, number]): void; }