import { PrimitiveCollection } from "cesium"; import { SceneItem } from './SceneItem'; import { Flatten } from './Flatten'; import { actions } from '../constant/actions'; import Viewer from "cesium/Source/Widgets/Viewer/Viewer"; declare class SceneGraph { private _viewer; private _sceneTree; private _modelUrl; sceneItem: SceneItem; flatten: Flatten; private _profession; private hideTypes; constructor(viewer: Viewer, rootCollection: PrimitiveCollection, sceneTree: any, modelUrl: string, options?: any); get profession(): string; get sceneTree(): any[]; /** * @description 正常情况下 不会直接给通过sceneGraph.sceneTree = xxx 直接修改sceneTree */ set sceneTree(value: any[]); /** * @description 重新生成场景信息树,因为要重新渲染整个场景,比较消耗性能,不建议使用 * @param sceneTree 新的场景信息树 */ reGenerate(sceneTreeInformation: any): void; /** * @description 递归生成场景图 * @param sceneTree 某层级的场景信息树 * @param parent 某层级的父场景项 */ private generate; /** * @description 添加单个场景项到场景图 * @param parentId 父场景项id * @param sceneItem 待添加到场景图中的场景项 */ addSceneItem(parentId: number, sceneItem: SceneItem): void; /** * @description 根据id递归查找场景图中的场景项 * @param id 场景项id * @param comparedSceneItem 待比对的场景项 * @returns 查找到场景项则返回 */ getSceneItem(id: number): SceneItem | undefined; private _getSceneItem; /** * @description 移除场景项 * @param sceneItem 待移除的场景项 */ removeSceneItem(sceneItem: SceneItem): void; /** * @description 根据id删除场景图中的场景项 * @param id 待移除的场景项id */ removeSceneItemById(id: number): void; /** * @description 获取指定类型场景项数组 * @param type 场景项类型 */ getSceneItemsByType(type: number): SceneItem[]; private _getSceneItemByTypeRecursion; /** * @description 对指定类型场景项进行操作 * @param types 场景项类型数组,不传或者为空数组则对所有场景项进行操作 * @param action 行为:visible、unfold(仅支持对building类型及其子孙场景项进行unfold操作) */ operateSceneItemsByType(action: number, actionValue: string | number | boolean, types?: number[], recursion?: boolean): void; /** * @description 对指定场景项进行操作并且对子项进行递归操作 * @param sceneItem 待操作的场景项 * @param action 行为:visible、unfold(仅支持对building类型及其子孙场景项进行undold操作) * @param recursion 是否对子孙场景项应用相同操作 */ operateSceneItemByHierarchy(sceneItem: SceneItem, action: number, actionValue: string | number | boolean, recursion?: boolean): void; /** * @description 隐藏当前场景项所在层级之外的所有场景项 * @param sceneItemId 场景项id */ setOtherHierarchyVisibility(sceneItemId: number, othersVisibility: boolean, recursion?: boolean): void; private _setOtherHierarchyVisibility; private _setVisibility; private _setUnfold; unfoldAnimate(sceneItem: SceneItem, targetOffset: number, direction: number): void; private _setColor; private _setScale; private _setOpacity; /** * @description 定位到场景项所在位置 * @param id 场景项id */ targetById(id: number): void; /** * @description 飞行到场景项所在位置 * @param id 场景项id */ flyToById(id: number): void; /** * @description 清空场景图 */ empty(): void; destroy(): void; } export { SceneGraph, Flatten, actions };