Class MxDrawObject

引入mxdraw库不会挂载MxDrawObject 只能在以下特定函数中获取

Function

MxFun.createMxObject中callback回调参数mxDraw的构造类

Function

MxFun.getCurrentDraw 方法返回值的构造类

Hierarchy (view full)

Constructors

Properties

Methods

add addControlsEvent addEvent addMxCADCurrentSelect addMxCurrentSelect addMxEntity addObject addViewObject automaticInversionColor cadCoord2Doc cadCoord2Doc2 cadCoord2View cadCoordLong2Doc cadCoordLong2View clear clearAllObject clearMxCurrentSelect closeWebSocket createCanvasImageData docCoord2Cad docCoord2Cad2 docCoord2Screen docCoord2World docCoord2World2 docCoordLong2Cad docCoordLong2Screen docCoordLong2World emit enablePan enableViewControls enableZoom eraseAllMxEntity eraseMxEntity findMxEntityAtPoint fireSelectChange getAllLayoutName getAllMxEntity getCamera getCanvas getDtabaseJsonString getFullDisplayRange getId getIntersectObjects getMxCADCurrentSelect getMxCurrentSelect getMxDatabase getMxEntity getMxObjectImplement getNodeByProperty getNodesByProperty getOrbitControls getRenderer getScene getSelectPoints getSysVar getTempMarkDraw getViewAngle getViewCenterDocCoord getViewColor getViewDocCoord getViewHeight getViewWidth gotoLayout initMxCpp initRendererParam initZoomW isMapBox isMxCAD isWebgl2 isWhiteViewColor loadMxEntityFromJson makeCurrent newFile off on recoverZoom remove removeEventFuction removeFromParent removeObject removeViewObject renderLoop resetRenderer resetThreeJSControls saveMxEntityToJson saveMxEntityToObject saveZoom screenCoord2Doc screenCoord2World screenCoordLong2Doc screenCoordLong2World setIniset setMouseMiddlePan setMouseRightRotate setMultipleSelect setPointMultipleSelect setRequestHeader setSize setSysVar setViewAngle setViewColor setViewMovementMethod setZoomSpeed stopAllLoading toSmallcoord toSmallcoord2 traverse traverseParent updateCanvasSize updateDisplay viewCoord2Cad viewCoordLong2Cad worldCoord2Doc worldCoord2Doc2 worldCoord2Screen worldCoordLong2Doc worldCoordLong2Screen zoomCenter zoomInitialStates zoomScale zoomW

Constructors

Properties

_mxdrawObj: MxDrawObjectType
children: (Node<any, any> | MxDrawObject)[] = []

它的子节点集合

events: {
    [x: EventType]: Events[keyof Events][];
}

Type declaration

parent: null | Node<any, any> | MxDrawObject = null

它的父节点

renderer: WebGLRenderer

Instance

rootLayer: Layer

Methods

  • 添加鼠标键盘响应事件.

    Parameters

    • type: string
    • call: ((event) => number)
        • (event): number
        • Parameters

          • event: any

          Returns number

    • isFront: boolean = false

    Returns number

    Example

    // mousedown,touchstart,mouseup,mousemove,touchend,touchmove
    //事件返回0,事件会继续传递,返回1事件不再被后续程序处理.
    mxobj.addControlsEvent("touchstart",(event)=>{
    return 0;
    })
  • 控件对象的事件监听

    Parameters

    • eventNaem: (keyof RendererEventsType) | "loadComplete" | "render" | "addResizeEvent" | "initObject" | "openFileComplete" | "saveFileComplete" | "uiSetLayerData" | "viewchange" | "MxEntitySelectChange" | "objectGripEdit" | "whetherEditTheGripPoint" | "databaseModify"

      事件名称

    • fun: (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | ((resize) => void) | (() => void) | ((iResult) => void) | ((iResult, sServerResult) => void) | ((layerList) => void) | (() => void) | ((ids) => void) | ((entity) => void) | ((entity) => void) | (() => void)

      回调函数

    Returns void

    void

    Example

    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>)=> {})
  • 把MxCAD对象添加到当前选择中.

    Parameters

    • id: number
    • isFireSelectChange: boolean = true
    • isDisplayGrid: boolean = true

    Returns boolean

    void

    Example


  • 把mxdraw对象添加到当前选择集中

    Parameters

    • id: number
    • isFireSelectChange: boolean = true
    • isDisplayGrid: boolean = true

    Returns boolean

    void

    Example


  • 添加一个自定义实体到图上。

    Parameters

    Returns number

    number 返回对象的id.

    Example


  • 添加THREE.Object3D对象到当前场景

    Parameters

    • obj: Object3D

      THREE.Object3D

    • isAddToSelect: boolean = true

      默认值为true 是否把对象添加选择对象集中,调用 getIntersectObjects可以找到

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().addObject(new THREE.Object3D(), false)
    
  • 添加THREE.Object3D对象到视区场景,对象坐标系是窗口视区坐标系。0,0点在左下角.

    Parameters

    • obj: Object3D

      THREE.Object3D

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().addViewObject(new THREE.Object3D())
    
  • 根据当前颜色,自动对color进行反色,比如:背景色是白色,自动取黑色.

    Parameters

    • color: number

    Returns number

    Example


  • CAD坐标到文档坐标.

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    number

    Example


  • Parameters

    • pt: Vector3

    Returns Vector3

  • CAD坐标到视区坐标.

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    number

    Example


  • CAD长度到Doc长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • CAD长度到视区长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • 清除图上所有数据

    Returns any

    Example


  • 清除当前所有选择

    Returns boolean

    void

    Example


  • 在MxCAD模式下,关闭与服务器的socket连接 。

    Returns any

    Example

    
    
  • 通知Three.js生成ImgeData显示I数据.

    Parameters

    • fn: ((imageData) => void)

      回调函数或者imageData

        • (imageData): void
        • Parameters

          • imageData: string

          Returns void

    • Optional param: object

      函数载荷

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().createCanvasImageData((imageData)=> {
    console.log(imageData)
    })
  • 文档坐标坐标到CAD.

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    number

    Example


  • Parameters

    • pt: Vector3

    Returns Vector3

  • DWG文档坐标到屏幕坐标

    Parameters

    • x: number
    • y: number

    Returns Vector3

    number

    Example


  • DWG文档坐标到ThreeJS坐标

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    number

    Example


  • DWG文档坐标到ThreeJS坐标

    Parameters

    • pt: Vector3

    Returns Vector3

    THREE.Vector3

    Example


  • Doc长度到CAD长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • DWG文档坐标长度到屏幕坐标长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • DWG文档坐标长度到ThreeJS坐标长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • 发布

    Type Parameters

    • Key extends (keyof RendererEventsType) | "loadComplete" | "render" | "addResizeEvent" | "initObject" | "openFileComplete" | "saveFileComplete" | "uiSetLayerData" | "viewchange" | "MxEntitySelectChange" | "objectGripEdit" | "whetherEditTheGripPoint" | "databaseModify"

    Parameters

    • event: number | Key

      — 事件名称

    • Rest ...data: Parameters<MxDrawEvents[Key]>

      — 载荷

    Returns void

  • 启用或禁用鼠标移动视区

    Parameters

    • isEnable: boolean

      是否启用

    Returns void

    Example


  • 禁用或启用视区的移动,放大,缩小等操作.

    Parameters

    • isEnable: boolean

    Returns void

    Example

    
    
  • 启用或禁用鼠标中键滚动缩放视区

    Parameters

    • isEnable: boolean

      是否启用

    Returns void

    Example


  • 删除所有的MxEntity

    Returns void

    Example


  • 删除MxEntity

    Parameters

    • id: number

      实体id.

    Returns boolean

    Example


  • 查找某点位置处的用户自绘对象.

    Parameters

    • ptMouse: Vector3

      查找的点位 THREE.Vector3,默认是文档坐标

    • Optional isDocCoord: boolean
    • Optional retWordDrawXDataCall: ((id, data) => void)
        • (id, data): void
        • Parameters

          • id: number
          • data: any

          Returns void

    Returns MxDbEntity[]

    MxDbEntity[] 返回用户自绘对象数组

    Example


  • 触发选择状态改变事件

    Parameters

    • isMxCAD: boolean

    Returns void

    void

    Example


  • 得到所有布局名

    Returns string[]

    Example


  • 得到所有用户自绘对象.

    Returns MxDbEntity[]

    MxDbEntity[] 返回用户自绘对象数组

    Example


  • 获取Three.js相机对象

    Returns Camera

    THREE.Camera

  • 获取Canvas对象.

    Returns HTMLCanvasElement

    HTMLCanvasElement

  • 得到数据库Json字符串数据.

    Returns string

    Example


  • 得到全部显示所有图形所需要的显示的范围 ,Three.js的坐标系。world坐标。

    Returns object

    Example

    Mx.MxFun.getCurrentDraw().getFullDisplayRange()
    
  • 返回对象的ID.

    Returns number

    Example


  • 获取某屏幕点下的绘制对象,ptMouse是.,

    Parameters

    • ptMouse: Vector3

      THREE.Vector2 屏幕坐标

    Returns Intersection[]

    THREE.Intersection[]

    Example

    Mx.MxFun.getCurrentDraw().getIntersectObjects(new THREE.Vector2(2, 3))
    
  • 得到图上当前选择的MxCAD对象.

    Parameters

    • whenEmptyReturnPrvSelect: boolean = true

    Returns number[]

    Array 返回对象的id数组.

    Example


  • 得到图上当前选择的对象.

    Parameters

    • whenEmptyReturnPrvSelect: boolean = true

    Returns number[]

    Array 返回对象的id数组.

    Example


  • 通过id获取绘制的对象.

    Parameters

    • id: number

      返回对象的id

    Returns MxDbEntity

    MxDbEntity

    Example


  • 得执行的内部MxObject对象.

    Returns any

    Example


  • 根据属性名称找到对应的Node节点

    Type Parameters

    • V = any

    Parameters

    • name: string

      属性名称

    • value: V

      属性值

    Returns undefined | Node<any, any> | MxDrawObject

    Example

    new Node().getNodeByProperty("id", "23548")
    
  • 根据属性名称找到对应的Node节点

    Type Parameters

    • V = any

    Parameters

    • name: string

      属性名称

    • value: V

      属性值

    Returns (Node<any, any> | MxDrawObject)[]

    Example

    new Node().getNodeByProperty("id", "23548")
    
  • 得到Three.js的 OrbitControls对象.

    Returns any

    Example

    
    
  • 获取Three renderer渲染器

    Returns WebGLRenderer

    THREE.WebGLRenderer

  • 获取Three.js绘图场景

    Returns Scene

    THREE.Scene

  • 得到图上当前选择对象时,选择范围点.

    Returns {
        isvalid: boolean;
        point1: Vector3;
        point2: Vector3;
    }

    • isvalid: boolean
    • point1: Vector3
    • point2: Vector3

    Example


  • 得到系统变量

    Parameters

    • sName: string

    Returns any

    Example


  • 得到视区的旋转角度

    Returns number

    Example


  • 得到视区中心的文档坐标.

    Returns Vector3

    Example


  • 返回视区背景色,

    Returns number

    void

    Example

    
    
  • 返回当前视区的显示范围,cad坐标。

    Returns {
        pt1: Vector3;
        pt2: Vector3;
        pt3: Vector3;
        pt4: Vector3;
    }

    • pt1: Vector3
    • pt2: Vector3
    • pt3: Vector3
    • pt4: Vector3
  • 得到对象画布的高度,单位屏幕像素

    Returns number

    number

    Example

    Mx.MxFun.getCurrentDraw().getViewHeight()
    
  • 得到对象画布的宽度,单位屏幕像素

    Returns number

    number

    Example

    Mx.MxFun.getCurrentDraw().getViewWidth()
    
  • 跳转另一个布局页面.

    Parameters

    • layout: string

    Returns void

    Example


  • 初始cpp对象.

    Parameters

    • mcppObjectImp: any

    Returns void

    Example


  • 初始WebGL Renderer的创建参数,该函数在MxFun.createMxObject函数调用时,调用。

    Parameters

    • param: object

    Returns void

    void

    Example

    mxObj.initRendererParam({preserveDrawingBuffer: true})
  • 初始化控件默认加载后,显示视区范围,默认使用图纸转换时的显示范围。。

    Parameters

    • pt1Doc: Vector3
    • pt2Doc: Vector3

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().initZoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
  • 当前是否是mapbox兼容模式在运行

    Returns boolean

    Example


  • 是否是CppMxCAD模式运行.

    Returns boolean

    Example


  • 当前是否支持 opengles3

    Returns boolean

    Example


  • 当前是否为白色白背景色

    Returns boolean

    Example


  • 从json字符串恢复MxEntity

    Parameters

    • dataString: string | object

      json字符串.

    • aryPreloadSVG: null | string[] = null

    Returns Promise<boolean>

    Example


  • 把该控件对象,设置成当前控件.

    Returns void

    Example


  • 新建图纸.

    Parameters

    • ptin1: number | Vector3
    • ptin2: number | Vector3
    • Optional x2: number
    • Optional y2: number

    Returns boolean

    Example


  • 销毁事件

    Parameters

    • event: (keyof RendererEventsType) | "loadComplete" | "render" | "addResizeEvent" | "initObject" | "openFileComplete" | "saveFileComplete" | "uiSetLayerData" | "viewchange" | "MxEntitySelectChange" | "objectGripEdit" | "whetherEditTheGripPoint" | "databaseModify"

      事件名称

    • callback: (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | ((resize) => void) | (() => void) | ((iResult) => void) | ((iResult, sServerResult) => void) | ((layerList) => void) | (() => void) | ((ids) => void) | ((entity) => void) | ((entity) => void) | (() => void)

      事件方法

    Returns boolean

  • 订阅

    Parameters

    • event: (keyof RendererEventsType) | "loadComplete" | "render" | "addResizeEvent" | "initObject" | "openFileComplete" | "saveFileComplete" | "uiSetLayerData" | "viewchange" | "MxEntitySelectChange" | "objectGripEdit" | "whetherEditTheGripPoint" | "databaseModify"

      事件名称

    • callback: (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | ((resize) => void) | (() => void) | ((iResult) => void) | ((iResult, sServerResult) => void) | ((layerList) => void) | (() => void) | ((ids) => void) | ((entity) => void) | ((entity) => void) | (() => void)

      事件回调

    Returns void

  • 恢复当前显示范围.

    Returns void

  • 移除事件函数。

    Parameters

    • eventNaem: (keyof RendererEventsType) | "loadComplete" | "render" | "addResizeEvent" | "initObject" | "openFileComplete" | "saveFileComplete" | "uiSetLayerData" | "viewchange" | "MxEntitySelectChange" | "objectGripEdit" | "whetherEditTheGripPoint" | "databaseModify"
    • fun: (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | (() => void) | ((resize) => void) | (() => void) | ((iResult) => void) | ((iResult, sServerResult) => void) | ((layerList) => void) | (() => void) | ((ids) => void) | ((entity) => void) | ((entity) => void) | (() => void)

    Returns boolean

    boolean

    Example

    
    
    
    
  • 删除addObject函数添加的THREE.Object3D对象

    Parameters

    • obj: Object3D

      THREE.Object3D

    • isRemoveSelectObject: boolean = true

      默认值为true 删除选择集中的对象

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().removeObject(new THREE.Object3D(), false)
    
  • 移除安视图坐标绘制的对象.

    Parameters

    • obj: Object3D

      对象.

    Returns void

    Example


  • 启动或停止动画渲染

    Parameters

    • isLoop: boolean = true

    Returns void

    Example


  • 重新计数Renderer状态, this.renderer.info.reset();

    Returns any

    Example

    
    
  • 重新设置ThreeJS Controls状态.

    Returns void

    Example


  • 保存所有MxEntity的数据到json字符串.

    Parameters

    • Optional isSaveToDWG: boolean

    Returns string

    json字符串

    Example


  • 保存所有MxEntity的数据到js对象.

    Parameters

    • Optional isSaveToDWG: boolean

    Returns object

    js对象

    Example


  • 保存当前显示范围.

    Returns void

  • 屏幕坐标到DWG文档坐标

    Parameters

    • x: number
    • y: number

    Returns Vector3

    THREE.Vector3

    Example


  • 屏幕坐标到ThreeJS坐标

    Parameters

    • x: number
    • y: number
    • Optional z: number

    Returns Vector3

    THREE.Vector3

    Example


  • 屏幕坐标长度到DWG文档坐标长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • 屏幕坐标长度到ThreeJS坐标长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • INI设置

    Parameters

    • options: iniConfig

      { EnableOsnapFunction: boolean; }

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().setIniset(options: { EnableOsnapFunction: true })
  • setMouseMiddlePan函数与setViewMovementMethod一样,为了兼容老程序暂没删除,将来会删除

    Parameters

    • iPan: number | boolean

    Returns void

  • 设置鼠标按下是否旋视区

    Parameters

    • isRotate: boolean = true

      是否旋视区

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().setMouseRightRotate(false)
    
  • 设置多选模式。

    Parameters

    • isMultipleSelect: boolean

    Returns void

  • 设置点选支持多选,默认不支持。

    Parameters

    • isMultipleSelect: boolean = true

    Returns void

    Example


  • 设置服务器发送文件请求时,需要带的参数.注意:带参数后,可能会出现跨域访问失败

    Parameters

    • val: string

    Returns any

    Example

    ``` mxobj.setRequestHeader("{'data':'value1'}");
    
  • 设置视区背景色,

    Parameters

    • width: number

      宽度

    • height: number

      宽度

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().setSize(0xFFFFFF)
    
  • 设置系统变量

    Parameters

    • sName: string
    • val: any

    Returns void

    Example


  • 设置视区的旋转角度

    Parameters

    • ang: number

    Returns void

    Example


  • 设置视区背景色,

    Parameters

    • color: number

      如0xFFFFFF 白色

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().setViewColor(0xFFFFFF)
    
  • 设置鼠标中键移动视区。

    Parameters

    • iMethod: number | boolean

      设置是否可以鼠标中键移动视区,iMethod= true,iMethod=1 iMethod = 0,中键不移动视区,左键移动 iMethod = 1,中键移动视区,左键不移动 iMethod = 2,中键移动视区,左键移动视区

    Returns void

    Example


  • 设置鼠标中键的滚动的缩放比例,在PC上,默认值4,手机上默认值,1.5 返回之前设置值。

    Parameters

    • zoomSpeed: number

    Returns number

    Example

    
    
  • 停止当前加载

    Returns void

    Example

    
    
  • Parameters

    • pt: Vector3

    Returns Vector3

  • Parameters

    • x: number
    • y: number
    • z: number = 0

    Returns Vector3

  • 遍历它的所有子节点包括孙子节点,直到它包含的节点全部遍历完成并都执行传入的方法

    Parameters

    • callback: ((node) => void)

      回调函数

        • (node): void
        • Parameters

          • node: this

          Returns void

    Returns void

  • 让它的父节点依次冒泡执行传入的方法的方法

    Type Parameters

    Parameters

    • callback: ((node) => boolean | void)

      回调函数,第一个参数是父节点, callback的返回值为false 将停止继续传递

        • (node): boolean | void
        • Parameters

          • node: V

          Returns boolean | void

    Returns void

  • 画布大小,自动修改到它父亲div大小。

    Returns void

    Example


  • 通知Three.js更新显示

    Parameters

    • isImmediate: boolean = false

    Returns void

    void

  • 视区坐标到CAD坐标.

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    number

    Example


  • 视区长度到CAD长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • ThreeJS坐标到DWG文档坐标

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    number

    Example


  • ThreeJS坐标到DWG文档坐标

    Parameters

    • pt: Vector3

    Returns Vector3

    THREE.Vector3

    Example


  • ThreeJS坐标到屏幕坐标,屏幕坐标的Y轴向下。坐标原点在左上角.

    Parameters

    • x: number
    • y: number
    • z: number

    Returns Vector3

    THREE.Vector3

    Example


  • ThreeJS坐标长度到DWG文档坐标长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • ThreeJS坐标长度到屏幕坐标长度

    Parameters

    • l: number

    Returns number

    number

    Example


  • 把当前显示范围移到指定的位置,dCenX,dCenY是DWG图纸坐标。

    Parameters

    • dCenX: number
    • dCenY: number

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().zoomCenter(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
    
  • 把视区显示范围恢复到初始显示范围.

    Returns void

    void

  • 缩放当前显示范围,它是相对于当前显示范围进行缩放

    Parameters

    • scale: number

      scale缩放比例

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().zoomScale(0.8)
    
  • 把当前显示范围移到指定的显示范围

    Parameters

    • minPt: Vector3

      坐标1 THREE.Vector3

    • maxPt: Vector3

      坐标2 THREE.Vector3

    • Optional isWorld: boolean

      默认为felse DWG图纸坐标,设置为true是THREEJS坐标

    • Optional animate: boolean
    • Optional autoRegen: boolean

    Returns void

    void

    Example

    Mx.MxFun.getCurrentDraw().zoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20), true)