Options
All
  • Public
  • Public/Protected
  • All
Menu

Class MxDrawObject

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

function

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

function

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

function

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

Hierarchy

  • MxDrawObject

Index

Constructors

constructor

Properties

renderer

renderer: WebGLRenderer
instance

Methods

addEvent

  • addEvent(eventNaem: string, fun: (...parmes: any) => any): 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>)=> {})

    Parameters

    • eventNaem: string

      事件名称

    • fun: (...parmes: any) => any

      回调函数

        • (...parmes: any): any
        • Parameters

          • Rest ...parmes: any

          Returns any

    Returns void

    void

addMxCurrentSelect

  • addMxCurrentSelect(id: number): void
  • 把对象添加到当前选择中.

    example

    Parameters

    • id: number

    Returns void

    void

addMxEntity

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

    example

    Parameters

    Returns number

    number 返回对象的id.

addObject

  • addObject(obj: Object3D, isAddToSelect?: boolean): void
  • 添加THREE.Object3D对象到当前场景

    example
    Mx.MxFun.getCurrentDraw().addObject(new THREE.Object3D(), false)
    

    Parameters

    • obj: Object3D

      THREE.Object3D

    • isAddToSelect: boolean = true

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

    Returns void

    void

addViewObject

  • addViewObject(obj: Object3D): void
  • 添加THREE.Object3D对象到视区场景,对象坐标系是窗口视区坐标系。0,0点在左下角.

    example
    Mx.MxFun.getCurrentDraw().addViewObject(new THREE.Object3D())
    

    Parameters

    • obj: Object3D

      THREE.Object3D

    Returns void

    void

clearMxCurrentSelect

  • clearMxCurrentSelect(): boolean
  • 清除当前所有选择

    example

    Returns boolean

    void

closeWebSocket

  • closeWebSocket(): any
  • 在MxCAD模式下,关闭与服务器的socket连接 。

    example

    Returns any

createCanvasImageData

  • createCanvasImageData(fn: (imageData: string) => void, param?: object): void
  • 通知Three.js生成ImgeData显示I数据.

    example
    Mx.MxFun.getCurrentDraw().createCanvasImageData((imageData)=> {
    console.log(imageData)
    })

    Parameters

    • fn: (imageData: string) => void

      回调函数或者imageData

        • (imageData: string): void
        • Parameters

          • imageData: string

          Returns void

    • Optional param: object

      函数载荷

    Returns void

    void

docCoord2Screen

  • docCoord2Screen(x: number, y: number): Vector3
  • DWG文档坐标到屏幕坐标

    example

    Parameters

    • x: number
    • y: number

    Returns Vector3

    number

docCoord2World

  • docCoord2World(x: number, y: number, z: number): Vector3
  • DWG文档坐标到ThreeJS坐标

    example

    Parameters

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

    Returns Vector3

    number

docCoord2World2

  • docCoord2World2(pt: Vector3): Vector3
  • DWG文档坐标到ThreeJS坐标

    example

    Parameters

    • pt: Vector3

    Returns Vector3

    THREE.Vector3

docCoordLong2Screen

  • docCoordLong2Screen(l: number): number
  • DWG文档坐标长度到屏幕坐标长度

    example

    Parameters

    • l: number

    Returns number

    number

docCoordLong2World

  • docCoordLong2World(l: number): number
  • DWG文档坐标长度到ThreeJS坐标长度

    example

    Parameters

    • l: number

    Returns number

    number

enablePan

  • enablePan(isEnable: boolean): void
  • 启用或禁用鼠标移动视区

    example

    Parameters

    • isEnable: boolean

      是否启用

    Returns void

enableZoom

  • enableZoom(isEnable: boolean): void
  • 启用或禁用鼠标中键滚动缩放视区

    example

    Parameters

    • isEnable: boolean

      是否启用

    Returns void

eraseAllMxEntity

  • eraseAllMxEntity(): void
  • 删除所有的MxEntity

    example

    Returns void

eraseMxEntity

  • eraseMxEntity(id: number): boolean
  • 删除MxEntity

    example

    Parameters

    • id: number

      实体id.

    Returns boolean

findMxEntityAtPoint

  • findMxEntityAtPoint(ptMouse: Vector3): MxDbEntity[]
  • 查找某点位置处的用户自绘对象.

    example

    Parameters

    • ptMouse: Vector3

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

    Returns MxDbEntity[]

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

getAllMxEntity

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

    example

    Returns MxDbEntity[]

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

getCamera

  • getCamera(): Camera
  • 获取Three.js相机对象

    Returns Camera

    THREE.Camera

getCanvas

  • getCanvas(): HTMLCanvasElement
  • 获取Canvas对象.

    Returns HTMLCanvasElement

    HTMLCanvasElement

getFullDisplayRange

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

    example
    Mx.MxFun.getCurrentDraw().getFullDisplayRange()
    

    Returns object

getIntersectObjects

  • getIntersectObjects(ptMouse: Vector2): Intersection[]
  • 获取某屏幕点下的绘制对象,ptMouse是.,

    example
    Mx.MxFun.getCurrentDraw().getIntersectObjects(new THREE.Vector2(2, 3))
    

    Parameters

    • ptMouse: Vector2

      THREE.Vector2 屏幕坐标

    Returns Intersection[]

    THREE.Intersection[]

getMxCAD

  • 得到MxCAD对象.

    example
    
    

    Returns MxCADObject

    MxCADObject

getMxCurrentSelect

  • getMxCurrentSelect(): number[]
  • 得到图上当前选择的对象.

    example

    Returns number[]

    Array 返回对象的id数组.

getMxDatabase

  • 得到当前图形数据库对象

    example
    
    

    Returns MxDbDatabase

getMxEntity

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

    example

    Parameters

    • id: number

      返回对象的id

    Returns MxDbEntity

    MxDbEntity

getOrbitControls

  • getOrbitControls(): void
  • 得到Three.js的 OrbitControls对象.

    example
    
    

    Returns void

getRenderer

  • getRenderer(): WebGLRenderer
  • 获取Three renderer渲染器

    Returns WebGLRenderer

    THREE.WebGLRenderer

getScene

  • getScene(): Scene
  • 获取Three.js绘图场景

    Returns Scene

    THREE.Scene

getViewCenterDocCoord

  • getViewCenterDocCoord(): Vector3
  • 得到视区中心的文档坐标.

    example

    Returns Vector3

getViewHeight

  • getViewHeight(): number
  • 得到对象画布的高度,单位屏幕像素

    example
    Mx.MxFun.getCurrentDraw().getViewHeight()
    

    Returns number

    number

getViewWidth

  • getViewWidth(): number
  • 得到对象画布的宽度,单位屏幕像素

    example
    Mx.MxFun.getCurrentDraw().getViewWidth()
    

    Returns number

    number

initRendererParam

  • initRendererParam(param: object): void
  • 初始WebGL Renderer的创建参数,该函数在MxFun.createMxObject函数调用时,调用。

    example
    mxObj.initRendererParam({preserveDrawingBuffer: true})

    Parameters

    • param: object

    Returns void

    void

initZoomW

  • initZoomW(pt1Doc: Vector3, pt2Doc: Vector3): void
  • 初始化控件默认加载后,显示视区范围,默认使用图纸转换时的显示范围。。

    example
    Mx.MxFun.getCurrentDraw().initZoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))

    Parameters

    • pt1Doc: Vector3
    • pt2Doc: Vector3

    Returns void

    void

loadMxEntityFromJson

  • loadMxEntityFromJson(dataString: string | object, aryPreloadSVG?: null | string[]): Promise<boolean>
  • 从json字符串恢复MxEntity

    example

    Parameters

    • dataString: string | object

      json字符串.

    • aryPreloadSVG: null | string[] = null

    Returns Promise<boolean>

makeCurrent

  • makeCurrent(): void
  • 把该控件对象,设置成当前控件.

    example

    Returns void

newFile

  • newFile(ptin1: number | Vector3, ptin2: number | Vector3, x2?: number, y2?: number): boolean
  • 新建图纸.

    example

    Parameters

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

    Returns boolean

on

  • on(eventNaem: string, fun: (...parmes: any) => any): void
  • 控件对象的事件监听

    example
    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>)=> {})

    Parameters

    • eventNaem: string

      事件名称

    • fun: (...parmes: any) => any

      回调函数

        • (...parmes: any): any
        • Parameters

          • Rest ...parmes: any

          Returns any

    Returns void

    void

removeObject

  • removeObject(obj: Object3D, isRemoveSelectObject?: boolean): void
  • 删除addObject函数添加的THREE.Object3D对象

    example
    Mx.MxFun.getCurrentDraw().removeObject(new THREE.Object3D(), false)
    

    Parameters

    • obj: Object3D

      THREE.Object3D

    • isRemoveSelectObject: boolean = true

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

    Returns void

    void

removeViewObject

  • removeViewObject(obj: Object3D): void
  • 移除安视图坐标绘制的对象.

    example

    Parameters

    • obj: Object3D

      对象.

    Returns void

resetRenderer

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

    example
    
    

    Returns any

resetThreeJSControls

  • resetThreeJSControls(): void
  • 重新设置ThreeJS Controls状态.

    example

    Returns void

saveMxEntityToJson

  • saveMxEntityToJson(): string
  • 保存所有MxEntity的数据到json字符串.

    example

    Returns string

    json字符串

saveMxEntityToObject

  • saveMxEntityToObject(): object
  • 保存所有MxEntity的数据到js对象.

    example

    Returns object

    js对象

screenCoord2Doc

  • screenCoord2Doc(x: number, y: number): Vector3
  • 屏幕坐标到DWG文档坐标

    example

    Parameters

    • x: number
    • y: number

    Returns Vector3

    THREE.Vector3

screenCoord2World

  • screenCoord2World(x: number, y: number, z?: number): Vector3
  • 屏幕坐标到ThreeJS坐标

    example

    Parameters

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

    Returns Vector3

    THREE.Vector3

screenCoordLong2Doc

  • screenCoordLong2Doc(l: number): number
  • 屏幕坐标长度到DWG文档坐标长度

    example

    Parameters

    • l: number

    Returns number

    number

screenCoordLong2World

  • screenCoordLong2World(l: number): number
  • 屏幕坐标长度到ThreeJS坐标长度

    example

    Parameters

    • l: number

    Returns number

    number

setIniset

  • setIniset(options: { EnableOsnapFunction: boolean }): void
  • INI设置

    example
    Mx.MxFun.getCurrentDraw().setIniset(options: { EnableOsnapFunction: true })

    Parameters

    • options: { EnableOsnapFunction: boolean }
      • EnableOsnapFunction: boolean

    Returns void

    void

setMouseMiddlePan

  • setMouseMiddlePan(isPan: boolean): void
  • 设置鼠标中键移动视区。

    example

    Parameters

    • isPan: boolean

      设置是否可以鼠标中键移动视区

    Returns void

setMouseRightRotate

  • setMouseRightRotate(isRotate?: boolean): void
  • 设置鼠标按下是否旋视区

    example
    Mx.MxFun.getCurrentDraw().setMouseRightRotate(false)
    

    Parameters

    • isRotate: boolean = true

      是否旋视区

    Returns void

    void

setRequestHeader

  • setRequestHeader(val: string): any
  • 设置服务器发送文件请求时,需要带的参数.;

    example
    ``` mxobj.setRequestHeader("{'data':'value1'}");
    

    Parameters

    • val: string

    Returns any

setSize

  • setSize(width: number, height: number): void
  • 设置视区背景色,

    example
    Mx.MxFun.getCurrentDraw().setSize(0xFFFFFF)
    

    Parameters

    • width: number

      宽度

    • height: number

      宽度

    Returns void

    void

setViewColor

  • setViewColor(color: number): void
  • 设置视区背景色,

    example
    Mx.MxFun.getCurrentDraw().setViewColor(0xFFFFFF)
    

    Parameters

    • color: number

      如0xFFFFFF 白色

    Returns void

    void

setZoomSpeed

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

    example
    
    

    Parameters

    • zoomSpeed: number

    Returns number

stopAllLoading

  • stopAllLoading(): void
  • 停止当前加载

    example
    
    

    Returns void

updateCanvasSize

  • updateCanvasSize(): void
  • 画布大小,自动修改到它父亲div大小。

    example

    Returns void

updateDisplay

  • updateDisplay(): void
  • 通知Three.js更新显示

    Returns void

    void

worldCoord2Doc

  • worldCoord2Doc(x: number, y: number, z: number): Vector3
  • ThreeJS坐标到DWG文档坐标

    example

    Parameters

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

    Returns Vector3

    number

worldCoord2Doc2

  • worldCoord2Doc2(pt: Vector3): Vector3
  • ThreeJS坐标到DWG文档坐标

    example

    Parameters

    • pt: Vector3

    Returns Vector3

    THREE.Vector3

worldCoord2Screen

  • worldCoord2Screen(x: number, y: number, z: number): Vector3
  • ThreeJS坐标到屏幕坐标,屏幕坐标的Y轴向下。坐标原点在左上角.

    example

    Parameters

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

    Returns Vector3

    THREE.Vector3

worldCoordLong2Doc

  • worldCoordLong2Doc(l: number): number
  • ThreeJS坐标长度到DWG文档坐标长度

    example

    Parameters

    • l: number

    Returns number

    number

worldCoordLong2Screen

  • worldCoordLong2Screen(l: number): number
  • ThreeJS坐标长度到屏幕坐标长度

    example

    Parameters

    • l: number

    Returns number

    number

zoomCenter

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

    example
    Mx.MxFun.getCurrentDraw().zoomCenter(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
    

    Parameters

    • dCenX: number
    • dCenY: number

    Returns void

    void

zoomInitialStates

  • zoomInitialStates(): void
  • 把视区显示范围恢复到初始显示范围.

    Returns void

    void

zoomScale

  • zoomScale(scale: number): void
  • 缩放当前显示范围,它是相对于当前显示范围进行缩放

    example
    Mx.MxFun.getCurrentDraw().zoomScale(0.8)
    

    Parameters

    • scale: number

      scale缩放比例

    Returns void

    void

zoomW

  • zoomW(minPt: Vector3, maxPt: Vector3, isWorld?: boolean): void
  • 把当前显示范围移到指定的显示范围

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

    Parameters

    • minPt: Vector3

      坐标1 THREE.Vector3

    • maxPt: Vector3

      坐标2 THREE.Vector3

    • Optional isWorld: boolean

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

    Returns void

    void