917 lines
23 KiB
TypeScript
917 lines
23 KiB
TypeScript
/** @module MxDrawObject */
|
||
import MxCADObject from '../MxCADObject';
|
||
import MxDbDatabase from '../MxDbDatabase';
|
||
import MxDbEntity from '../MxDbEntity';
|
||
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
|
||
export interface MxDrawObjectType {
|
||
renderer: THREE.WebGLRenderer;
|
||
addEvent(arg0: string, arg1: (...parmes: any) => any): void;
|
||
setIniset(arg0: {
|
||
EnableOsnapFunction: boolean;
|
||
}): void;
|
||
getScene(): THREE.Scene;
|
||
getCamera(): THREE.Camera;
|
||
setMouseRightRotate(isRotate: boolean): void;
|
||
getFullDisplayRange(): object;
|
||
getCanvas(): HTMLCanvasElement;
|
||
updateDisplay(): void;
|
||
createCanvasImageData(fun: (imageData: string) => void, param?: object): void;
|
||
setViewColor(color: number): void;
|
||
setSize(width: number, height: number): void;
|
||
getIntersectObjects(ptMouse: THREE.Vector2): THREE.Intersection[];
|
||
getViewWidth(): number;
|
||
getViewHeight(): number;
|
||
zoomInitialStates(): void;
|
||
zoomScale(scale: number): void;
|
||
zoomW(minPt: THREE.Vector3, maxPt: THREE.Vector3, isWorld?: boolean): void;
|
||
zoomCenter(dCenX: number, dCenY: number): void;
|
||
initZoomW(pt1Doc: THREE.Vector3, pt2Doc: THREE.Vector3): void;
|
||
addMxEntity(ent: any): number;
|
||
eraseMxEntity(id: number): boolean;
|
||
screenCoord2World(x: number, y: number, z?: number): THREE.Vector3;
|
||
worldCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
|
||
screenCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
|
||
worldCoordLong2Doc(l: number): number;
|
||
docCoordLong2World(l: number): number;
|
||
docCoord2World(x: number, y: number, z: number): THREE.Vector3;
|
||
worldCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
|
||
docCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
|
||
screenCoordLong2Doc(l: number): number;
|
||
docCoordLong2Screen(l: number): number;
|
||
screenCoordLong2World(l: number): number;
|
||
worldCoordLong2Screen(l: number): number;
|
||
initRendererParam(param: object): void;
|
||
getMxAllSelect(): Array<number>;
|
||
addMxCurrentSelect(id: number): void;
|
||
clearMxCurrentSelect(): boolean;
|
||
getMxEntityUserObject(id: number): MxDbEntity;
|
||
findMxEntityAtPoint(ptMouse: THREE.Vector3, isDocCoord?: boolean, retWordDrawXDataCall?: (id: number, data: any) => void): Array<MxDbEntity>;
|
||
setMouseMiddlePan(isPan: boolean | number): void;
|
||
resetThreeJSControls(): void;
|
||
getAllMxEntity(): Array<MxDbEntity>;
|
||
enableZoom(isEnable: boolean): void;
|
||
enablePan(isEnable: boolean): void;
|
||
addObject(obj: THREE.Object3D | null, isAddToSelect?: boolean): void;
|
||
addViewObject(obj: THREE.Object3D): void;
|
||
removeViewObject(obj: THREE.Object3D): void;
|
||
removeObject(obj: THREE.Object3D, isRemoveSelectObject?: boolean): void;
|
||
saveMxEntityToJson(isSaveToDWG?: boolean): object;
|
||
loadMxEntityFromJson(dataString: object): Promise<boolean>;
|
||
eraseAllMxEntity(): void;
|
||
makeCurrent(): void;
|
||
getViewCenterDocCoord(): THREE.Vector3;
|
||
updateCanvasSize(): void;
|
||
}
|
||
/**
|
||
* 引入mxdraw库不会挂载MxDrawObject 只能在以下特定函数中获取
|
||
* @function
|
||
* {@link MxFun.createMxObject}中callback回调参数`mxDraw`的构造类
|
||
* @function
|
||
* {@link MxFun.getCurrentDraw} 方法返回值的构造类
|
||
* @function
|
||
* {@link MxFun.getCurrentMxCAD} 方法返回值的构造类
|
||
*
|
||
*/
|
||
export default class MxDrawObject {
|
||
private _mxdrawObj;
|
||
constructor(Mxdraw: MxDrawObjectType);
|
||
/**
|
||
* @instance
|
||
*/
|
||
renderer: THREE.WebGLRenderer;
|
||
/**
|
||
* 获取Three.js绘图场景
|
||
* @returns THREE.Scene
|
||
*/
|
||
getScene(): THREE.Scene;
|
||
/**
|
||
* 获取Three.js相机对象
|
||
* @returns THREE.Camera
|
||
*/
|
||
getCamera(): THREE.Camera;
|
||
/**
|
||
* 获取Three renderer渲染器
|
||
* @returns THREE.WebGLRenderer
|
||
*/
|
||
getRenderer(): THREE.WebGLRenderer;
|
||
/**
|
||
* 设置鼠标按下是否旋视区
|
||
* @param isRotate 是否旋视区
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().setMouseRightRotate(false)
|
||
* ```
|
||
*
|
||
*/
|
||
setMouseRightRotate(isRotate?: boolean): void;
|
||
/**
|
||
* 得到全部显示所有图形所需要的显示的范围 ,Three.js的坐标系。world坐标。
|
||
* @returns {minPt: value,maxPt: value}
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().getFullDisplayRange()
|
||
* ```
|
||
*/
|
||
getFullDisplayRange(): object;
|
||
/**
|
||
* 获取Canvas对象.
|
||
* @returns HTMLCanvasElement
|
||
*/
|
||
getCanvas(): HTMLCanvasElement;
|
||
/**
|
||
* 通知Three.js更新显示
|
||
* @returns void
|
||
*/
|
||
updateDisplay(): void;
|
||
/**
|
||
* 通知Three.js生成ImgeData显示I数据.
|
||
* @param fn 回调函数或者imageData
|
||
* @param param 函数载荷
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().createCanvasImageData((imageData)=> {
|
||
* console.log(imageData)
|
||
* })
|
||
* ```
|
||
*/
|
||
createCanvasImageData(fn: (imageData: string) => void, param?: object): void;
|
||
/**
|
||
* 设置视区背景色,
|
||
* @param color 如0xFFFFFF 白色
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().setViewColor(0xFFFFFF)
|
||
* ```
|
||
*/
|
||
setViewColor(color: number): void;
|
||
/**
|
||
* 设置视区背景色,
|
||
* @param width 宽度
|
||
* @param height 宽度
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().setSize(0xFFFFFF)
|
||
* ```
|
||
*/
|
||
setSize(width: number, height: number): void;
|
||
/**
|
||
* 获取某屏幕点下的绘制对象,ptMouse是.,
|
||
* @param ptMouse THREE.Vector2 屏幕坐标
|
||
* @returns THREE.Intersection[]
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().getIntersectObjects(new THREE.Vector2(2, 3))
|
||
* ```
|
||
*/
|
||
getIntersectObjects(ptMouse: THREE.Vector2): THREE.Intersection[];
|
||
/**
|
||
* 添加THREE.Object3D对象到当前场景
|
||
* @param obj THREE.Object3D
|
||
* @param isAddToSelect 默认值为true 是否把对象添加选择对象集中,调用 getIntersectObjects可以找到
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().addObject(new THREE.Object3D(), false)
|
||
* ```
|
||
*/
|
||
addObject(obj: THREE.Object3D, isAddToSelect?: boolean): void;
|
||
/**
|
||
* 添加THREE.Object3D对象到视区场景,对象坐标系是窗口视区坐标系。0,0点在左下角.
|
||
* @param obj THREE.Object3D
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().addViewObject(new THREE.Object3D())
|
||
* ```
|
||
*/
|
||
addViewObject(obj: THREE.Object3D): void;
|
||
/**
|
||
* 得到对象画布的宽度,单位屏幕像素
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().getViewWidth()
|
||
* ```
|
||
*/
|
||
getViewWidth(): number;
|
||
/**
|
||
* 得到对象画布的高度,单位屏幕像素
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().getViewHeight()
|
||
* ```
|
||
*/
|
||
getViewHeight(): number;
|
||
/**
|
||
* 删除addObject函数添加的THREE.Object3D对象
|
||
* @param obj THREE.Object3D
|
||
* @param isRemoveSelectObject 默认值为true 删除选择集中的对象
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().removeObject(new THREE.Object3D(), false)
|
||
* ```
|
||
*/
|
||
removeObject(obj: THREE.Object3D, isRemoveSelectObject?: boolean): void;
|
||
/**
|
||
* 把视区显示范围恢复到初始显示范围.
|
||
* @returns void
|
||
*/
|
||
zoomInitialStates(): void;
|
||
/**
|
||
* 缩放当前显示范围,它是相对于当前显示范围进行缩放
|
||
* @param scale scale缩放比例
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().zoomScale(0.8)
|
||
* ```
|
||
*/
|
||
zoomScale(scale: number): void;
|
||
/**
|
||
* 把当前显示范围移到指定的显示范围
|
||
* @param minPt 坐标1 THREE.Vector3
|
||
* @param maxPt 坐标2 THREE.Vector3
|
||
* @param isWorld 默认为felse DWG图纸坐标,设置为true是THREEJS坐标
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().zoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20), true)
|
||
* ```
|
||
*/
|
||
zoomW(minPt: THREE.Vector3, maxPt: THREE.Vector3, isWorld?: boolean): void;
|
||
/**
|
||
* 把当前显示范围移到指定的位置,dCenX,dCenY是DWG图纸坐标。
|
||
* @param minPt DWG图纸坐标1 THREE.Vector3
|
||
* @param maxPt DWG图纸坐标2 THREE.Vector3
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().zoomCenter(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
|
||
* ```
|
||
*/
|
||
zoomCenter(dCenX: number, dCenY: number): void;
|
||
/**
|
||
* 初始化控件默认加载后,显示视区范围,默认使用图纸转换时的显示范围。。
|
||
* @param minPt DWG文档坐标1显示区域的左下角 THREE.Vector3
|
||
* @param maxPt DWG文档坐标2显示区域的右上角 THREE.Vector3
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().initZoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
|
||
*
|
||
* ```
|
||
*/
|
||
initZoomW(pt1Doc: THREE.Vector3, pt2Doc: THREE.Vector3): void;
|
||
/**
|
||
* 初始化控件默认加载后,显示视区范围,默认使用图纸转换时的显示范围。。
|
||
* @param minPt DWG文档坐标1显示区域的左下角 THREE.Vector3
|
||
* @param maxPt DWG文档坐标2显示区域的右上角 THREE.Vector3
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().addEvent(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
|
||
*
|
||
* ```
|
||
*/
|
||
/**
|
||
* 控件对象的事件监听
|
||
* @param eventNaem 事件名称
|
||
* @param fun 回调函数
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().addEvent("addResizeEvent", ()=> {})
|
||
* Mx.MxFun.getCurrentDraw().addEvent("viewchange", ()=> {})
|
||
* 图纸加载完成
|
||
* Mx.MxFun.getCurrentDraw().addEvent("loadComplete", ()=> {})
|
||
* 视区重绘事件.
|
||
* Mx.MxFun.getCurrentDraw().addEvent("render", (renderer)=> {})
|
||
* 视区大小被修改事件.,viewsize={viewWidth:viewWidth,viewHeight:viewHeight}
|
||
* Mx.MxFun.getCurrentDraw().addEvent("viewsizechange", (viewsize)=> {})
|
||
* 实体选择状态发生改变的事件.
|
||
* Mx.MxFun.getCurrentDraw().addEvent("MxEntitySelectChange", (aryId:Array<number>)=> {})
|
||
* ```
|
||
*/
|
||
addEvent(eventNaem: string, fun: (...parmes: any) => any): void;
|
||
/**
|
||
* 控件对象的事件监听
|
||
* @param eventNaem 事件名称
|
||
* @param fun 回调函数
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().on("addResizeEvent", ()=> {})
|
||
* Mx.MxFun.getCurrentDraw().on("viewchange", ()=> {})
|
||
* 图纸加载完成
|
||
* Mx.MxFun.getCurrentDraw().on("loadComplete", ()=> {})
|
||
* 视区重绘事件.
|
||
* Mx.MxFun.getCurrentDraw().on("render", (renderer)=> {})
|
||
* 视区大小被修改事件.,viewsize={viewWidth:viewWidth,viewHeight:viewHeight}
|
||
* Mx.MxFun.getCurrentDraw().on("viewsizechange", (viewsize)=> {})
|
||
* 实体选择状态发生改变的事件.
|
||
* Mx.MxFun.getCurrentDraw().on("MxEntitySelectChange", (aryId:Array<number>)=> {})
|
||
* ```
|
||
*/
|
||
on(eventNaem: string, fun: (...parmes: any) => any): void;
|
||
/**
|
||
* INI设置
|
||
* @param options { EnableOsnapFunction: boolean; }
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* Mx.MxFun.getCurrentDraw().setIniset(options: { EnableOsnapFunction: true })
|
||
*
|
||
* ```
|
||
*/
|
||
setIniset(options: {
|
||
EnableOsnapFunction: boolean;
|
||
}): void;
|
||
/**
|
||
* 屏幕坐标到ThreeJS坐标
|
||
* @returns THREE.Vector3
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
screenCoord2World(x: number, y: number, z?: number): THREE.Vector3;
|
||
/**
|
||
* ThreeJS坐标到屏幕坐标,屏幕坐标的Y轴向下。坐标原点在左上角.
|
||
* @returns THREE.Vector3
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
worldCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
|
||
/**
|
||
* 屏幕坐标到DWG文档坐标
|
||
* @returns THREE.Vector3
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
screenCoord2Doc(x: number, y: number): THREE.Vector3;
|
||
/**
|
||
* ThreeJS坐标长度到DWG文档坐标长度
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
worldCoordLong2Doc(l: number): number;
|
||
/**
|
||
* DWG文档坐标长度到ThreeJS坐标长度
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
docCoordLong2World(l: number): number;
|
||
/**
|
||
* DWG文档坐标到ThreeJS坐标
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
docCoord2World(x: number, y: number, z: number): THREE.Vector3;
|
||
/**
|
||
* DWG文档坐标到ThreeJS坐标
|
||
* @returns THREE.Vector3
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
docCoord2World2(pt: THREE.Vector3): THREE.Vector3;
|
||
/**
|
||
* ThreeJS坐标到DWG文档坐标
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
worldCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
|
||
/**
|
||
* ThreeJS坐标到DWG文档坐标
|
||
* @returns THREE.Vector3
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
worldCoord2Doc2(pt: THREE.Vector3): THREE.Vector3;
|
||
/**
|
||
* DWG文档坐标到屏幕坐标
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
docCoord2Screen(x: number, y: number): THREE.Vector3;
|
||
/**
|
||
* 屏幕坐标长度到DWG文档坐标长度
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
screenCoordLong2Doc(l: number): number;
|
||
/**
|
||
* DWG文档坐标长度到屏幕坐标长度
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
docCoordLong2Screen(l: number): number;
|
||
/**
|
||
* 屏幕坐标长度到ThreeJS坐标长度
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
screenCoordLong2World(l: number): number;
|
||
/**
|
||
* ThreeJS坐标长度到屏幕坐标长度
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
worldCoordLong2Screen(l: number): number;
|
||
/**
|
||
* 初始WebGL Renderer的创建参数,该函数在MxFun.createMxObject函数调用时,调用。
|
||
* @param param
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
* mxObj.initRendererParam({preserveDrawingBuffer: true})
|
||
*
|
||
* ```
|
||
*/
|
||
initRendererParam(param: object): void;
|
||
/**
|
||
* 添加一个自定义实体到图上。
|
||
* @param ent 自定义实体对象
|
||
* @returns number 返回对象的id.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
addMxEntity(ent: MxDbEntity): number;
|
||
/**
|
||
* 得到图上当前选择的对象.
|
||
* @returns Array<number> 返回对象的id数组.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getMxCurrentSelect(): Array<number>;
|
||
/**
|
||
* 把对象添加到当前选择中.
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
addMxCurrentSelect(id: number): void;
|
||
/**
|
||
* 清除当前所有选择
|
||
* @returns void
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
clearMxCurrentSelect(): boolean;
|
||
/**
|
||
*通过id获取绘制的对象.
|
||
* @param id 返回对象的id
|
||
* @returns MxDbEntity
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getMxEntity(id: number): MxDbEntity;
|
||
/**
|
||
* 查找某点位置处的用户自绘对象.
|
||
* @param ptMouse 查找的点位 THREE.Vector3,默认是文档坐标
|
||
* @returns MxDbEntity[] 返回用户自绘对象数组
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
findMxEntityAtPoint(ptMouse: THREE.Vector3, isDocCoord?: boolean, retWordDrawXDataCall?: (id: number, data: any) => void): Array<MxDbEntity>;
|
||
/**
|
||
*得到所有用户自绘对象.
|
||
* @returns MxDbEntity[] 返回用户自绘对象数组
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getAllMxEntity(): Array<MxDbEntity>;
|
||
/**
|
||
* 设置鼠标中键移动视区。
|
||
* @param iPan 设置是否可以鼠标中键移动视区,
|
||
* iPan = 0,中键不移动视区,左键移动
|
||
* iPan = 1,中键移动视区,左键不移动
|
||
* iPan = 2,中键移动视区,左键移动视区
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
setMouseMiddlePan(iPan: boolean | number): void;
|
||
/**
|
||
*重新设置ThreeJS Controls状态.
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
resetThreeJSControls(): void;
|
||
/**
|
||
* 启用或禁用鼠标中键滚动缩放视区
|
||
* @param isEnable 是否启用
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
enableZoom(isEnable: boolean): void;
|
||
/**
|
||
* 启用或禁用鼠标移动视区
|
||
* @param isEnable 是否启用
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
enablePan(isEnable: boolean): void;
|
||
/**
|
||
* 删除MxEntity
|
||
* @param id 实体id.
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
eraseMxEntity(id: number): boolean;
|
||
/**
|
||
* 移除安视图坐标绘制的对象.
|
||
* @param obj 对象.
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
removeViewObject(obj: THREE.Object3D): void;
|
||
/**
|
||
* 保存所有MxEntity的数据到json字符串.
|
||
* @param
|
||
* @returns json字符串
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
saveMxEntityToJson(isSaveToDWG?: boolean): string;
|
||
/**
|
||
* 保存所有MxEntity的数据到js对象.
|
||
* @param
|
||
* @returns js对象
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
saveMxEntityToObject(isSaveToDWG?: boolean): object;
|
||
/**
|
||
* 从json字符串恢复MxEntity
|
||
* @param dataString json字符串.
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
loadMxEntityFromJson(dataString: string | object, aryPreloadSVG?: string[] | null): Promise<boolean>;
|
||
/**
|
||
* 删除所有的MxEntity
|
||
* @param
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
eraseAllMxEntity(): void;
|
||
/**
|
||
* 把该控件对象,设置成当前控件.
|
||
* @param
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
makeCurrent(): void;
|
||
/**
|
||
* 得到视区中心的文档坐标.
|
||
* @param
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getViewCenterDocCoord(): THREE.Vector3;
|
||
/**
|
||
* 画布大小,自动修改到它父亲div大小。
|
||
* @param
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
updateCanvasSize(): void;
|
||
/**
|
||
* 新建图纸.
|
||
* @param ptin1,ptin2新建图纸的显示范围.
|
||
* @returns
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
newFile(ptin1: THREE.Vector3 | number, ptin2: THREE.Vector3 | number, x2?: number, y2?: number): boolean;
|
||
/**
|
||
* 停止当前加载
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
* ```
|
||
*/
|
||
stopAllLoading(): void;
|
||
/**
|
||
* 得到Three.js的 OrbitControls对象.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
* ```
|
||
*/
|
||
getOrbitControls(): OrbitControls;
|
||
/**
|
||
* 禁用或启用视区的移动,放大,缩小等操作.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
* ```
|
||
*/
|
||
enableViewControls(isEnable: boolean): void;
|
||
/**
|
||
* 得到当前图形数据库对象
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
* ```
|
||
*/
|
||
getMxDatabase(): MxDbDatabase;
|
||
/**
|
||
* 设置鼠标中键的滚动的缩放比例,在PC上,默认值4,手机上默认值,1.5
|
||
* 返回之前设置值。
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
* ```
|
||
*/
|
||
setZoomSpeed(zoomSpeed: number): number;
|
||
/**
|
||
* 得到MxCAD对象.
|
||
* @return MxCADObject
|
||
* @example
|
||
* ``` typescript
|
||
* ```
|
||
*/
|
||
getMxCAD(): MxCADObject;
|
||
/**
|
||
* 重新计数Renderer状态, this.renderer.info.reset();
|
||
* @return
|
||
* @example
|
||
* ``` typescript
|
||
* ```
|
||
*/
|
||
resetRenderer(): any;
|
||
/**
|
||
* 设置服务器发送文件请求时,需要带的参数.;
|
||
* @return
|
||
* @example
|
||
* ``` typescript
|
||
* ``` mxobj.setRequestHeader("{'data':'value1'}");
|
||
*/
|
||
setRequestHeader(val: string): any;
|
||
/**
|
||
* 在MxCAD模式下,关闭与服务器的socket连接 。
|
||
* @return
|
||
* @example
|
||
*/
|
||
closeWebSocket(): any;
|
||
/**
|
||
* CAD坐标到文档坐标.
|
||
* 默认情况下,cad等于doc,当前m_isCorrectLargeCoordinates为true时,doc变成了把cad图纸修改到小范围坐标系下的坐标。
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
cadCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
|
||
/**
|
||
* 文档坐标坐标到CAD.
|
||
* 默认情况下,cad等于doc,当前m_isCorrectLargeCoordinates为true时,doc变成了把cad图纸修改到小范围坐标系下的坐标。
|
||
* @returns number
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
docCoord2Cad(x: number, y: number, z: number): THREE.Vector3;
|
||
/**
|
||
* 设置视区的旋转角度
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
setViewAngle(ang: number): void;
|
||
/**
|
||
* 得到视区的旋转角度
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getViewAngle(): number;
|
||
/**
|
||
* 得到系统变量
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getSysVar(sName: string): any;
|
||
/**
|
||
* 设置系统变量
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
setSysVar(sName: string, val: any): void;
|
||
/**
|
||
* 是否是MxCAD模式运行.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
isMxCAD(): boolean;
|
||
/**
|
||
* 得执行的内部MxObject对象.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getMxObjectImplement(): any;
|
||
/**
|
||
* 得到所有布局名
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getAllLayoutName(): string[];
|
||
/**
|
||
* 得到数据库Json字符串数据.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getDtabaseJsonString(): string;
|
||
/**
|
||
* 跳转另一个布局页面.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
gotoLayout(layout: string): void;
|
||
/**
|
||
* 初始cpp对象.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
initMxCpp(mcppObjectImp: any): void;
|
||
/**
|
||
* 当前是否支持 opengles3
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
isWebgl2(): boolean;
|
||
/**
|
||
* 返回对象的ID.
|
||
* @example
|
||
* ```typescript
|
||
*
|
||
*
|
||
* ```
|
||
*/
|
||
getId(): number;
|
||
}
|