UNPKG

@i3yun/viewergallery

Version:

BIM轻量化平台是一个互联网三维可视化解决方案。包括BIM轻量化引擎和业务组件。

145 lines (141 loc) 4.81 kB
declare namespace Sippreep { namespace Extensions { namespace Markup { /** * 标记插件 * 标记有三部分,热点指示 + 偏移线 + 内容, 大概看起来是 o---口 * 标记内容框是一个div,所以标记数量不要建立过多,开发机测试200个标记会有明显卡顿,热点和偏移线倒是没什么性能问题 */ export interface Markup3DExtension { /** * 开始设置,停止视图层的数据刷新 * 大量标记设置请一定先使用此方法,设置完成后使用endUpdate() */ beginUpdate(): void; /** * 设置完成,刷新视图 */ endUpdate(): void; /** * 获取标记数据 */ getItems(): IMarkup3DCollecton; /** * 导出JSON对象 */ exportItems(): string; /** * 导入JSON对象 * @param data */ importItems(data: string): void; /** * 获取 热点、偏移线和依附的部件 的空间盒子 */ getBox(item: IMarkup3D): THREE.Box3; } /** * 标记数据 */ export interface IMarkup3DCollecton { /** * 获取标记数量 */ readonly count: number; /** * 获取指定索引的标记 * @param index */ get(index: number): IMarkup3D; /** * 获得所有标记 */ toArray(): IMarkup3D[]; /** * 添加一个标记 */ add(): IMarkup3D; /** * 移除一个标记 * @param item 指定标记对象 */ remove(item: IMarkup3D): boolean; /** * 移除所有标记 */ clear(): void; } /** * 标记类型 */ export type AnchorType = Point | Polyline | Polygon; /** * 标记对象 */ export interface IMarkup3D { /** * 依附模型(当模型隐藏或透明时,标记不可见) */ anchorDbid?: number; /** * 标记对象(点、线、面) */ anchor: AnchorType; /** * 标记对象的偏移量 */ offset?: THREE.Vector3; /** * 标记对象投影到屏幕坐标时显示的内容 */ content?: string | HTMLElement; /** * 内容相对于屏幕的偏移量 */ contentOffset?: THREE.Vector2; /** * 一些外观设置 */ appearance?: { /** * 标记颜色 */ anchorColor?: THREE.Color, /** * 偏移线颜色 */ offsetColor?: THREE.Color, }; /** * 自定义数据 */ tag?: object; } /** * 点,是一个三维的几何图形,可用于描述需要精确定位的对象。 */ export class Point { value: THREE.Vector3 } /** * 线,是一个有序路径的集合 */ export class Polyline { /** * 有序点的集合(至少需要2个点) */ path: THREE.Vector3[]; } /** * 面,是环(Ring)的集合,环是一种封闭的路径。 * */ export class Polygon { /** * 有序点的集合(围绕第一个点组成的面,至少需要3个点) */ vertices: THREE.Vector3[]; } } } }