afdi-ambition-fbim-fe
Version:
3D组态BIM编辑器
239 lines (238 loc) • 6.36 kB
TypeScript
import { vec3 } from 'gl-matrix';
import { Element } from 'sadi-sdk-ts';
import * as sadi from 'sadi-sdk-ts';
export declare abstract class ComponentBase {
scene: sadi.Scene;
constructor(scene: any);
/**
* 冻结构件
*/
freezeByElement: (elements: any | any[]) => void;
/**
* 根据index显示构件
*/
showElementsByIndexs: (indexs: number[]) => void;
/**
* 根据id显示自定义构件
*/
showElementsByIds: (ids: number[]) => void;
/**
* 根据index隐藏构件
*/
hideElementsByIndexs: (indexs: number[]) => void;
/**
* 根据id隐藏自定义构件
*/
hideElementsByIds: (indexs: number[]) => void;
/**
* 根据Elements隐藏构件
*/
hideElementsByElements: (elements: any[]) => void;
/**
* 根据Index获取构件
*/
getElementByIndex: (index: number | number[], options?: {
excludes: [];
}) => sadi.Element | sadi.Element[];
/**
* 获取所有构件
*/
getAllElement: () => sadi.Element[];
/**
* 隐藏所有
*/
hideAll: () => void;
/**
* 显示所有
*/
showAll: () => void;
/**
* 根据id查找构件元素
*/
getElementById: (id: number | number[], options?: {
excludes: any[];
}) => any;
/**
* 根据id查找构件
*/
getElementByIdFormInit: (id: number | number[], options?: {
excludes: any[];
}) => any;
/**
* 根据index数组冻结构件元素
*/
freezeByIndex: (indexs: number[]) => void;
/**
* 解冻所有元素
*/
unlockAll: () => void;
/**
* 设置几何体颜色
*/
setInstanceColor: (ins: any | any[], options: {
color: string;
opacity?: number;
}) => void;
/**
* 设置构件颜色
*/
setElementColor: (element: any | any[], opts: {
color: string;
opacity?: number;
}) => void;
/**
* 修改所有构件颜色
*/
changeAllElementsColor: (color: string, opacity?: number) => void;
/**清除选择的构件上的颜色 */
resetElementsColor: (elements: sadi.Element[]) => void;
/**
* 清除构件上所有颜色
*/
resetAllElementsColor: () => void;
/**
* 泛光
*/
setBloomParams: (params: {
range: number;
exposure: number;
}) => void;
/**
* 根据构件元素设置泛光
*/
addBloomByElement: (elements: any[]) => void;
/**
* 清除泛光效果
*/
clearBloom: () => void;
/**
* 高亮
*/
highlightObjects: (objects: sadi.SelectResult[], opts?: {
isClearOlderHighlight: boolean;
}) => void;
/**
* 清除所有高亮
*/
clearHighlightElements: () => void;
/**
* 设置隔离高亮
*/
setIsolationHighlights: (flag: boolean) => void;
/**
* 显示构件
*/
showElementsByElements: (elements: any[], opts?: {
hideOther: boolean;
}) => void;
/**
* 根据文件获取构件模板
* @param file 文件
* @returns
*/
getTemplateByFile: (file: File) => Promise<sadi.Element[]>;
/**
* 根据文件放置构件
* @param buffer 二进制文件
* @param point 位置
* @param id 构件id
* @returns void
*/
placeComponents: (buffer: ArrayBuffer, point: vec3[], id: number[]) => Promise<sadi.Element[]>;
/**
* 根据索引获取构件中心点
* @param index 构件索引
* @returns
*/
getComponentCenterByIndex: (index: number) => number[] | undefined;
/**
* 根据索引获取构件中心点z为最小值
* @param index 构件索引
* @returns
*/
getComponentCenterByIndexTwo: (index: number) => number[] | undefined;
/**
* 根据自定义构件id获取构件中心点
* @param index 构件索引
* @returns
*/
getComponentCenterByCustomId: (ids: number[]) => number[] | undefined;
/**
* 根据自定义构件id获取构件中心点z为最小值
* @param index 构件索引
* @returns
*/
getComponentCenterByCustomIdTwo: (ids: number[]) => number[] | undefined;
/**
* 根据索引获取构件中心店
* @param element 自定义构件
* @returns
*/
getComponentCenterByElement: (element: Element) => number[];
/**
* 根据索引获取构件中心点多个构件
* @param element 自定义构件
* @returns
*/
getComponentCenterByElements: (elements: Element[]) => number[][];
/**
* 根据索引获取构件顶点
* @param element
* @returns
*/
getComponentTopByElement: (element: Element) => number[];
/**
* 移动构件
* @param elementArr 构件数组
* @param arr 位置
*/
moveComponents: (elementArr: Element[], arr?: [number, number, number]) => Promise<void>;
/**
* 缩放构件
* @param elementArr 构件数组
* @param arr 位置
*/
scaleComponents: (elementArr: Element[], arr?: [number, number, number]) => Promise<void>;
/**
* 旋转构件
* @param elementArr 构件数组
* @param arr 位置
* @param rad 角度
*/
rotateComponents: (elementArr: Element[], arr?: [number, number, number], rad?: number) => Promise<void>;
/**
* 删除构件
* @param elementArr 构件数组
*/
deleteComponents: (elementArr: Element[]) => Promise<void>;
/**
* 根据索引获取构件轴心坐标
* @param index 构件索引
* @returns
*/
getComponentAxis: (element: Element) => vec3;
/**
* 保存新构件
* @returns
*/
saveNewComponent: () => Promise<ArrayBuffer>;
/**
* 加载新建构件
* @param buffer
* @returns
*/
loadExtraElements: (buffer: ArrayBuffer) => Promise<void>;
/**
* 绘制平移坐标轴
* @param element 构件
*/
enableAxis: (element: Element, flag: boolean, fun?: Function) => Promise<void>;
/**
* 根据id查找自定义构件元素
*/
getElementByCustomId: (ids: number[]) => sadi.Element[];
/**
* 根据构件与坐标设置构件位置
*/
setComponentLocation: (element: Element, loc: [number, number, number]) => void;
}