mxdraw 0.1.1 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -15
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js +0 -1
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js +0 -1
- package/dist/lib/MxModule/McGeVector3d/McGeVector3d.js +2 -0
- package/dist/lib/MxModule/McGeVector3d/index.js +3 -0
- package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js +0 -1
- package/dist/lib/MxModule/McGiWorldDraw/index.js +0 -1
- package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js +0 -1
- package/dist/lib/MxModule/McGiWorldDrawType/index.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js +0 -1
- package/dist/lib/MxModule/MxDbAlignedDimension/MxDbAlignedDimension.js +213 -0
- package/dist/lib/MxModule/MxDbAlignedDimension/index.js +5 -0
- package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js +85 -7
- package/dist/lib/MxModule/MxDbEntity/index.js +0 -1
- package/dist/lib/MxModule/MxDbImage/MxDbImage.js +147 -0
- package/dist/lib/MxModule/MxDbImage/index.js +5 -0
- package/dist/lib/MxModule/MxDbLine/MxDbLine.js +94 -0
- package/dist/lib/MxModule/MxDbLine/index.js +5 -0
- package/dist/lib/MxModule/MxDbRect/MxDbRect.js +219 -0
- package/dist/lib/MxModule/MxDbRect/index.js +4 -0
- package/dist/lib/MxModule/MxDbSVG/MxDbSVG.js +208 -0
- package/dist/lib/MxModule/MxDbSVG/index.js +5 -0
- package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js +100 -13
- package/dist/lib/MxModule/MxDrawObject/index.js +0 -1
- package/dist/lib/MxModule/MxFilters/MxFilters.js +201 -0
- package/dist/lib/MxModule/MxFilters/index.js +4 -0
- package/dist/lib/MxModule/MxFun/MxFun.js +98 -15
- package/dist/lib/MxModule/MxFun/index.js +0 -1
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js +10 -35
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js +71 -29
- package/dist/lib/MxModule/MxThreeJS/SVGLoader.js +0 -1
- package/dist/lib/MxModule/MxThreeJS/index.js +0 -1
- package/dist/lib/MxModule/MxType/MxType.js +27 -0
- package/dist/lib/MxModule/MxType/index.js +4 -0
- package/dist/lib/MxModule/Mxassembly/Mxassembly.js +18 -0
- package/dist/lib/MxModule/Mxassembly/index.js +9 -0
- package/dist/lib/MxModule/loadCoreCode/index.js +0 -1
- package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js +16 -1
- package/dist/lib/MxModule/loadCoreCode/mxcadassembly_es5.js +1519 -0
- package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +755 -693
- package/dist/lib/MxModule/store/PubsubClass.js +0 -1
- package/dist/lib/MxModule/store/StoreClass.js +0 -1
- package/dist/lib/MxModule/store/index.js +0 -1
- package/dist/lib/MxModule/store/store.js +1 -1
- package/dist/lib/MxModule/useCanvasResizeListener/index.js +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js +0 -1
- package/dist/lib/doc.js +9 -2
- package/dist/lib/mxdraw.js +25 -7
- package/dist/lib/tools/algorithm/math.js +0 -1
- package/dist/lib/tools/algorithm/random.js +0 -1
- package/dist/lib/tools/dom/create.js +0 -1
- package/dist/lib/tools/dynamicImport/index.js +0 -1
- package/dist/lib/tools/formatting/index.js +0 -1
- package/dist/lib/tools/proxy/index.js +0 -1
- package/dist/lib/tools/three/index.js +100 -4
- package/dist/lib/types/McEdGetPointWorldDrawObject.js +0 -1
- package/dist/lib/types/MrxDbgUiPrPoint.js +0 -1
- package/dist/lib/types/MxCADObject.js +0 -1
- package/dist/lib/types/MxDrawObject.js +0 -1
- package/dist/lib/types/MxFun.js +0 -1
- package/dist/lib/types/Mxassembly.js +2 -0
- package/dist/mxdraw.es5.js +3 -3
- package/dist/mxdraw.es5.js.map +1 -1
- package/dist/mxdraw.umd.js +3 -3
- package/dist/mxdraw.umd.js.map +1 -1
- package/dist/types/MxModule/McGeVector3d/McGeVector3d.d.ts +17 -0
- package/dist/types/MxModule/McGeVector3d/index.d.ts +3 -0
- package/dist/types/MxModule/McGiWorldDraw/McGiWorldDraw.d.ts +77 -10
- package/dist/types/MxModule/MxDbAlignedDimension/MxDbAlignedDimension.d.ts +21 -0
- package/dist/types/MxModule/MxDbAlignedDimension/index.d.ts +3 -0
- package/dist/types/MxModule/MxDbEntity/MxDbEntity.d.ts +64 -4
- package/dist/types/MxModule/MxDbImage/MxDbImage.d.ts +28 -0
- package/dist/types/MxModule/MxDbImage/index.d.ts +3 -0
- package/dist/types/MxModule/MxDbLine/MxDbLine.d.ts +22 -0
- package/dist/types/MxModule/MxDbLine/index.d.ts +3 -0
- package/dist/types/MxModule/MxDbRect/MxDbRect.d.ts +74 -0
- package/dist/types/MxModule/MxDbRect/index.d.ts +2 -0
- package/dist/types/MxModule/MxDbSVG/MxDbSVG.d.ts +42 -0
- package/dist/types/MxModule/MxDbSVG/index.d.ts +3 -0
- package/dist/types/MxModule/MxDrawObject/MxDrawObject.d.ts +82 -6
- package/dist/types/MxModule/MxFilters/MxFilters.d.ts +94 -0
- package/dist/types/MxModule/MxFilters/index.d.ts +2 -0
- package/dist/types/MxModule/MxFun/MxFun.d.ts +82 -12
- package/dist/types/MxModule/MxThreeJS/MxThreeJS.d.ts +4 -7
- package/dist/types/MxModule/MxType/MxType.d.ts +24 -0
- package/dist/types/MxModule/MxType/index.d.ts +2 -0
- package/dist/types/MxModule/Mxassembly/Mxassembly.d.ts +11 -0
- package/dist/types/MxModule/Mxassembly/index.d.ts +3 -0
- package/dist/types/MxModule/loadCoreCode/mxcadassembly_es5.d.ts +1 -0
- package/dist/types/MxModule/store/store.d.ts +2 -0
- package/dist/types/doc.d.ts +5 -1
- package/dist/types/mxdraw.d.ts +17 -4
- package/dist/types/tools/three/index.d.ts +20 -1
- package/dist/types/types/MxDrawObject.d.ts +13 -6
- package/dist/types/types/MxFun.d.ts +15 -8
- package/dist/types/types/Mxassembly.d.ts +3 -0
- package/package.json +1 -1
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js.map +0 -1
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js.map +0 -1
- package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js.map +0 -1
- package/dist/lib/MxModule/McGiWorldDraw/index.js.map +0 -1
- package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js.map +0 -1
- package/dist/lib/MxModule/McGiWorldDrawType/index.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js.map +0 -1
- package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js.map +0 -1
- package/dist/lib/MxModule/MxDbEntity/index.js.map +0 -1
- package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js.map +0 -1
- package/dist/lib/MxModule/MxDrawObject/index.js.map +0 -1
- package/dist/lib/MxModule/MxFun/MxFun.js.map +0 -1
- package/dist/lib/MxModule/MxFun/index.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/SVGLoader.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/index.js.map +0 -1
- package/dist/lib/MxModule/loadCoreCode/index.js.map +0 -1
- package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js.map +0 -1
- package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js.map +0 -1
- package/dist/lib/MxModule/store/PubsubClass.js.map +0 -1
- package/dist/lib/MxModule/store/StoreClass.js.map +0 -1
- package/dist/lib/MxModule/store/index.js.map +0 -1
- package/dist/lib/MxModule/store/store.js.map +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/index.js.map +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js.map +0 -1
- package/dist/lib/doc.js.map +0 -1
- package/dist/lib/mxdraw.js.map +0 -1
- package/dist/lib/tools/algorithm/math.js.map +0 -1
- package/dist/lib/tools/algorithm/random.js.map +0 -1
- package/dist/lib/tools/dom/create.js.map +0 -1
- package/dist/lib/tools/dynamicImport/index.js.map +0 -1
- package/dist/lib/tools/formatting/index.js.map +0 -1
- package/dist/lib/tools/proxy/index.js.map +0 -1
- package/dist/lib/tools/three/index.js.map +0 -1
- package/dist/lib/types/McEdGetPointWorldDrawObject.js.map +0 -1
- package/dist/lib/types/MrxDbgUiPrPoint.js.map +0 -1
- package/dist/lib/types/MxCADObject.js.map +0 -1
- package/dist/lib/types/MxDrawObject.js.map +0 -1
- package/dist/lib/types/MxFun.js.map +0 -1
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ Mx.loadCoreCode().then(()=> {
|
|
|
56
56
|
// 创建控件对象
|
|
57
57
|
Mx.MxFun.createMxObject({
|
|
58
58
|
canvasId: "mxcad", // canvas元素的id
|
|
59
|
-
|
|
59
|
+
cadFile"test2.dwg", // 服务器中图纸名称
|
|
60
60
|
callback: (mxDraw, {
|
|
61
61
|
canvas,
|
|
62
62
|
canvasParent
|
|
@@ -169,29 +169,33 @@ loadCoreCode().then(()=> {
|
|
|
169
169
|
})
|
|
170
170
|
```
|
|
171
171
|
### MxFun 方法集合
|
|
172
|
-
> MxFun提供了核心方法,
|
|
173
|
-
|
|
174
|
-
](https://
|
|
175
|
-
* [MxFun.setMxServer](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#setMxServer)
|
|
176
|
-
* [MxFun.createMxObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#createMxObject)
|
|
172
|
+
> MxFun提供了核心方法, 其中最重要的两个方法就是[setMxServer](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#setMxServer)设置服务器地址
|
|
173
|
+
以及 [createMxObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#createMxObject) 创建控制对象
|
|
174
|
+
* 服务器地址就是[MxDraw云图开发包](https://www.mxdraw.com/download.html) 所启动的后台服务地址...[详情](https://help.mxdraw.com/?pid=32&keywords=)
|
|
177
175
|
|
|
178
176
|
### MxDrawObject 控件对象
|
|
179
177
|
> [MxFun.createMxObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxFun.html#createMxObject) 创建的控件对象可以对canvas画布上展示的图纸进行控制修改以及添加three.js中各种组合图形等功能[详情](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDrawObject.html)
|
|
180
178
|
|
|
181
179
|
### MxThreeJS 创建THREE图形物体对象
|
|
182
|
-
> [MxThreeJS](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxThreeJS.html)是根据Three.js提供的APi 创建各种常见的基础图形文字以及加载的图片/SVG
|
|
180
|
+
> [MxThreeJS](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxThreeJS.html)是根据Three.js提供的APi 创建各种常见的基础图形文字以及加载的图片/SVG等的方法集合
|
|
181
|
+
* 一般情况最终创建返回的都是基于THREE.Object3D的物体对象,可以通过[MxDrawObject控件对象的addObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDrawObject.html#addObject) 方法添加到场景中,最后通过[MxDrawObject.updateDisplay](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDrawObject.html#updateDisplay)更新显示场景,就可以将物体对象渲染到canvas画布上了。
|
|
182
|
+
* 当然也可以不使用MxThreeJS提供的创建物体的方式,可以用three.js自定义创建各种需要的物体图形模型。
|
|
183
183
|
|
|
184
184
|
### McEdGetPointWorldDrawObject / MrxDbgUiPrPoint / MrxDbgUiPrBaseReturn 动态绘制
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
185
|
+
* [McEdGetPointWorldDrawObject](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McEdGetPointWorldDrawObject.html)是动态绘制对象的类, 一个McEdGetPointWorldDrawObject实例可以使用setDraw方法设置动态的回调函数,一般情况下回调函数中会通过drawCustomEntity或者提供的其他方法绘制出需要动态绘制的部分(鼠标移动将会触发动态回调函数)
|
|
186
|
+
* [MrxDbgUiPrPoint](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MrxDbgUiPrPoint.html)是一个配合动态绘制的鼠标去点的类,实例化后通过go或者goWhile 方式设置鼠标点击回调事件, 通过setUserDraw方法设置动态绘制对象, 此时动态绘制对象生效,在鼠标移动时会触发其动态回调函数
|
|
187
|
+
* [MrxDbgUiPrBaseReturn](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MrxDbgUiPrBaseReturn.html)是MrxDbgUiPrPoint的go或者goWhile的回调参数判断点击类型的一个枚举类型。
|
|
188
|
+
* McEdGetPointWorldDrawObject / MrxDbgUiPrPoint 配合使用 就能够完成大部分图形动态绘制的需求,例:[如何实现一个画线的功能命令?](#%E7%94%A8%E6%B3%95)
|
|
189
189
|
|
|
190
190
|
### MxDbEntity / McGiWorldDraw / McGiWorldDrawType 自定义对象
|
|
191
|
-
> 自定义对象是为了更加方便的控制一个图形物体对象创建的一个控制器, 在需要对已经绘制在画布上的图形物体进行动态改动操作时,有一系列繁琐的过程,选取对象/选取状态/生成可改动的顶点/拖动改变顶点位置/动态绘制...
|
|
192
|
-
|
|
193
|
-
>
|
|
194
|
-
|
|
191
|
+
> 自定义对象是为了更加方便的控制一个图形物体对象创建的一个控制器, 在需要对已经绘制在画布上的图形物体进行动态改动操作时,有一系列繁琐的过程,选取对象/选取状态/生成可改动的顶点/拖动改变顶点位置/动态绘制...
|
|
192
|
+
|
|
193
|
+
> 如果遵循自定义对象的规范(实现MxDbEntity抽象类),就可以忽略这些步骤,在实现了预设行为(抽象方法)后,鼠标操作就可以完成对物体对象的顶点操作,从而改变图形物体。
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
* [MxDbEntity](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDbEntity.html)抽象类 通过继承的方式实现一个自定义对象
|
|
197
|
+
* [McGiWorldDraw](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McGiWorldDraw.html) 是 [MxDbEntity.worldDraw](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/MxDbEntity.html#worldDraw)抽象方法的回调对象 可以实现再鼠标拖动过程中的一些动态绘制任务
|
|
198
|
+
* [McGiWorldDrawType](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McGiWorldDrawType.html) 是[McGiWorldDraw.getType](https://mxtmpweb.mxdraw.f3322.net:3562/mxdrawcloud/classes/McGiWorldDraw.html#getType)方法返回的枚举类型表示MxDbEntity.worldDraw的绘制类型
|
|
195
199
|
|
|
196
200
|
|
|
197
201
|
## 按需引入配置
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
19
|
+
//版权所有(C)2002-2022,成都梦想凯德科技有限公司。
|
|
20
|
+
//本软件代码及其文档和相关资料归成都梦想凯德科技有限公司,应用包含本软件的程序必须包括以下版权声明
|
|
21
|
+
//此应用程序与成都梦想凯德科技有限公司成协议。通过使用本软件、其文档或相关材料
|
|
22
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
23
|
+
/** @module MxDbAlignedDimension*/
|
|
24
|
+
var THREE = require("three");
|
|
25
|
+
var McGiWorldDrawType_1 = require("../McGiWorldDrawType");
|
|
26
|
+
var MxDbEntity_1 = require("../MxDbEntity");
|
|
27
|
+
var MxFun_1 = require("../MxFun");
|
|
28
|
+
var MxThreeJS_1 = require("../MxThreeJS");
|
|
29
|
+
/**
|
|
30
|
+
* MxDbAlignedDimension 尺寸对象.
|
|
31
|
+
*/
|
|
32
|
+
var MxDbAlignedDimension = /** @class */ (function (_super) {
|
|
33
|
+
__extends(MxDbAlignedDimension, _super);
|
|
34
|
+
function MxDbAlignedDimension() {
|
|
35
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
36
|
+
_this.pt1 = new THREE.Vector3();
|
|
37
|
+
_this.pt2 = new THREE.Vector3();
|
|
38
|
+
return _this;
|
|
39
|
+
}
|
|
40
|
+
MxDbAlignedDimension.prototype.getTypeName = function () {
|
|
41
|
+
return 'MxDbAlignedDimension';
|
|
42
|
+
};
|
|
43
|
+
//获得标注方向
|
|
44
|
+
MxDbAlignedDimension.prototype.getDirection = function (v2ndPtTo1stPt, i3DFirstPt, i3DSecondPt) {
|
|
45
|
+
var vDirection = new THREE.Vector3(v2ndPtTo1stPt.x, v2ndPtTo1stPt.y, 0);
|
|
46
|
+
var mXnormal = new THREE.Vector3(1, 0, 0);
|
|
47
|
+
var fAngle = v2ndPtTo1stPt.angleTo(mXnormal);
|
|
48
|
+
//标尺与X的角度接近PI 靠近X轴;第二个点在右 或 标尺与X的角度接近0 靠近X轴;第二个点在左
|
|
49
|
+
var fMarkDirAnlge = -1;
|
|
50
|
+
if (fAngle < (Math.PI * 7) / 18 || fAngle > (Math.PI * 10) / 18) {
|
|
51
|
+
if (i3DFirstPt.x > i3DSecondPt.x) {
|
|
52
|
+
fMarkDirAnlge = 1;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
var rotationWorldMatrix = new THREE.Matrix4();
|
|
56
|
+
rotationWorldMatrix.makeRotationZ((Math.PI / 2) * fMarkDirAnlge);
|
|
57
|
+
vDirection.applyMatrix4(rotationWorldMatrix);
|
|
58
|
+
return vDirection;
|
|
59
|
+
};
|
|
60
|
+
// 绘制尺寸标注.
|
|
61
|
+
MxDbAlignedDimension.prototype.worldDraw = function (pWorldDraw) {
|
|
62
|
+
if (pWorldDraw.getType() == McGiWorldDrawType_1.default.kWorldDraw ||
|
|
63
|
+
pWorldDraw.getType() == McGiWorldDrawType_1.default.kDynDragDraw) {
|
|
64
|
+
var pt1 = this.pt1;
|
|
65
|
+
var pt2 = this.pt2;
|
|
66
|
+
//标注的三条线
|
|
67
|
+
var line1;
|
|
68
|
+
var line2;
|
|
69
|
+
var line3;
|
|
70
|
+
var text;
|
|
71
|
+
var mTriangle1;
|
|
72
|
+
var mTriangle2;
|
|
73
|
+
var mPoint1;
|
|
74
|
+
var mPoint2;
|
|
75
|
+
var v2ndPtTo1stPt = new THREE.Vector3(pt1.x - pt2.x, pt1.y - pt2.y, 0);
|
|
76
|
+
var vDirection = this.getDirection(v2ndPtTo1stPt, pt1, pt2);
|
|
77
|
+
var fLen = v2ndPtTo1stPt.length();
|
|
78
|
+
var scaleWorldMatrix = new THREE.Matrix4();
|
|
79
|
+
scaleWorldMatrix.makeScale(0.01, 0.01, 0.01);
|
|
80
|
+
var vTemp = new THREE.Vector3(vDirection.x, vDirection.y, 0);
|
|
81
|
+
vTemp.applyMatrix4(scaleWorldMatrix);
|
|
82
|
+
var mTopPt1 = new THREE.Vector3(pt1.x + vTemp.x, pt1.y + vTemp.y, 0);
|
|
83
|
+
var mTopPt2 = new THREE.Vector3(pt2.x + vTemp.x, pt2.y + vTemp.y, 0);
|
|
84
|
+
var color = 0xffffff;
|
|
85
|
+
//画点
|
|
86
|
+
{
|
|
87
|
+
mPoint1 = MxThreeJS_1.default.createPoint(pt1, color);
|
|
88
|
+
mPoint2 = MxThreeJS_1.default.createPoint(pt2, color);
|
|
89
|
+
}
|
|
90
|
+
//画线
|
|
91
|
+
{
|
|
92
|
+
scaleWorldMatrix.identity();
|
|
93
|
+
scaleWorldMatrix.makeScale(0.2, 0.2, 0);
|
|
94
|
+
var vTemp1 = new THREE.Vector3(vDirection.x, vDirection.y, 0);
|
|
95
|
+
vTemp1.applyMatrix4(scaleWorldMatrix);
|
|
96
|
+
scaleWorldMatrix.identity();
|
|
97
|
+
scaleWorldMatrix.makeScale(0.02, 0.02, 0);
|
|
98
|
+
var vTemp2 = new THREE.Vector3(vDirection.x, vDirection.y, 0);
|
|
99
|
+
vTemp2.applyMatrix4(scaleWorldMatrix);
|
|
100
|
+
pWorldDraw.drawLine(mTopPt1, mTopPt2);
|
|
101
|
+
line2 = MxThreeJS_1.default.createLine(new THREE.Vector3(mTopPt1.x + vTemp2.x * 2, mTopPt1.y + vTemp2.y * 2, 0), new THREE.Vector3(pt1.x + vTemp2.x, pt1.y + vTemp2.y, 0), color);
|
|
102
|
+
line3 = MxThreeJS_1.default.createLine(new THREE.Vector3(mTopPt2.x + vTemp2.x * 2, mTopPt2.y + vTemp2.y * 2, 0), new THREE.Vector3(pt2.x + vTemp2.x, pt2.y + vTemp2.y, 0), color);
|
|
103
|
+
}
|
|
104
|
+
//画文字
|
|
105
|
+
{
|
|
106
|
+
var mXnormal = new THREE.Vector3(1, 0, 0);
|
|
107
|
+
var fAngle = v2ndPtTo1stPt.angleTo(mXnormal);
|
|
108
|
+
// vTemp 标注线垂直方向 。
|
|
109
|
+
var vTemp = new THREE.Vector3(vDirection.x, vDirection.y, 0);
|
|
110
|
+
vTemp.normalize();
|
|
111
|
+
var fSize = pt1.distanceTo(pt2);
|
|
112
|
+
if (v2ndPtTo1stPt.y < 0) {
|
|
113
|
+
if (fAngle < Math.PI / 2) {
|
|
114
|
+
fAngle = 2 * Math.PI - fAngle;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
fAngle = Math.PI - fAngle;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (fAngle > Math.PI / 2) {
|
|
122
|
+
fAngle = Math.PI + fAngle;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
fLen = MxFun_1.default.worldCoordLong2Doc(fLen);
|
|
126
|
+
text = MxThreeJS_1.default.creatTextSprite(fLen.toFixed(3), new THREE.Vector3(mTopPt2.x + v2ndPtTo1stPt.x / 2 + (vTemp.x * fSize) / 30, mTopPt2.y + v2ndPtTo1stPt.y / 2 + (vTemp.y * fSize) / 30, 0), fSize * 0.07, // 文字高度,取两点距离的0.1
|
|
127
|
+
fAngle, color);
|
|
128
|
+
if (text != null)
|
|
129
|
+
pWorldDraw.drawEntity(text);
|
|
130
|
+
}
|
|
131
|
+
//画三角形
|
|
132
|
+
{
|
|
133
|
+
scaleWorldMatrix.identity();
|
|
134
|
+
scaleWorldMatrix.makeScale(0.08, 0.08, 0.08);
|
|
135
|
+
var rotationWorldMatrix = new THREE.Matrix4();
|
|
136
|
+
rotationWorldMatrix.makeRotationZ((Math.PI * 17) / 18);
|
|
137
|
+
var vTrianglePt1Dir = new THREE.Vector3(v2ndPtTo1stPt.x, v2ndPtTo1stPt.y, 0);
|
|
138
|
+
vTrianglePt1Dir.applyMatrix4(scaleWorldMatrix);
|
|
139
|
+
vTrianglePt1Dir.applyMatrix4(rotationWorldMatrix);
|
|
140
|
+
rotationWorldMatrix.identity();
|
|
141
|
+
rotationWorldMatrix.makeRotationZ((-Math.PI * 17) / 18);
|
|
142
|
+
var vTrianglePt2Dir = new THREE.Vector3(v2ndPtTo1stPt.x, v2ndPtTo1stPt.y, 0);
|
|
143
|
+
vTrianglePt2Dir.applyMatrix4(scaleWorldMatrix);
|
|
144
|
+
vTrianglePt2Dir.applyMatrix4(rotationWorldMatrix);
|
|
145
|
+
var pts1 = new Array();
|
|
146
|
+
pts1.push(new THREE.Vector3(mTopPt1.x, mTopPt1.y, 0), new THREE.Vector3(mTopPt1.x + vTrianglePt1Dir.x, mTopPt1.y + vTrianglePt1Dir.y, 0), new THREE.Vector3(mTopPt1.x + vTrianglePt2Dir.x, mTopPt1.y + vTrianglePt2Dir.y, 0));
|
|
147
|
+
mTriangle1 = MxThreeJS_1.default.createTriangle(pts1, color);
|
|
148
|
+
rotationWorldMatrix.identity();
|
|
149
|
+
rotationWorldMatrix.makeRotationZ(Math.PI / 18);
|
|
150
|
+
vTrianglePt1Dir = new THREE.Vector3(v2ndPtTo1stPt.x, v2ndPtTo1stPt.y, 0);
|
|
151
|
+
vTrianglePt1Dir.applyMatrix4(scaleWorldMatrix);
|
|
152
|
+
vTrianglePt1Dir.applyMatrix4(rotationWorldMatrix);
|
|
153
|
+
rotationWorldMatrix.identity();
|
|
154
|
+
rotationWorldMatrix.makeRotationZ(-Math.PI / 18);
|
|
155
|
+
vTrianglePt2Dir = new THREE.Vector3(v2ndPtTo1stPt.x, v2ndPtTo1stPt.y, 0);
|
|
156
|
+
vTrianglePt2Dir.applyMatrix4(scaleWorldMatrix);
|
|
157
|
+
vTrianglePt2Dir.applyMatrix4(rotationWorldMatrix);
|
|
158
|
+
var pts2 = new Array();
|
|
159
|
+
pts2.push(new THREE.Vector3(mTopPt2.x, mTopPt2.y, 0), new THREE.Vector3(mTopPt2.x + vTrianglePt1Dir.x, mTopPt2.y + vTrianglePt1Dir.y, 0), new THREE.Vector3(mTopPt2.x + vTrianglePt2Dir.x, mTopPt2.y + vTrianglePt2Dir.y, 0));
|
|
160
|
+
mTriangle2 = MxThreeJS_1.default.createTriangle(pts2, color);
|
|
161
|
+
}
|
|
162
|
+
pWorldDraw.drawEntity(line2);
|
|
163
|
+
pWorldDraw.drawEntity(line3);
|
|
164
|
+
if (mTriangle1)
|
|
165
|
+
pWorldDraw.drawEntity(mTriangle1);
|
|
166
|
+
if (mTriangle2)
|
|
167
|
+
pWorldDraw.drawEntity(mTriangle2);
|
|
168
|
+
pWorldDraw.drawEntity(mPoint1);
|
|
169
|
+
pWorldDraw.drawEntity(mPoint2);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
pWorldDraw.drawLine(this.pt1, this.pt2);
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
MxDbAlignedDimension.prototype.setPoint1 = function (pt1) {
|
|
176
|
+
this.pt1 = pt1;
|
|
177
|
+
};
|
|
178
|
+
MxDbAlignedDimension.prototype.setPoint2 = function (pt2) {
|
|
179
|
+
this.pt2 = pt2;
|
|
180
|
+
};
|
|
181
|
+
MxDbAlignedDimension.prototype.getGripPoints = function () {
|
|
182
|
+
var ret = [];
|
|
183
|
+
ret.push(this.pt1);
|
|
184
|
+
ret.push(this.pt2);
|
|
185
|
+
return ret;
|
|
186
|
+
};
|
|
187
|
+
MxDbAlignedDimension.prototype.moveGripPointsAt = function (index, offset) {
|
|
188
|
+
if (index == 0) {
|
|
189
|
+
this.pt1.add(offset);
|
|
190
|
+
}
|
|
191
|
+
else if ((index = 1)) {
|
|
192
|
+
this.pt2.add(offset);
|
|
193
|
+
}
|
|
194
|
+
return true;
|
|
195
|
+
};
|
|
196
|
+
MxDbAlignedDimension.prototype.dwgIn = function (obj) {
|
|
197
|
+
this.onDwgIn(obj);
|
|
198
|
+
this.pt1.copy(obj['pt1']);
|
|
199
|
+
this.pt2.copy(obj['pt2']);
|
|
200
|
+
return true;
|
|
201
|
+
};
|
|
202
|
+
MxDbAlignedDimension.prototype.dwgOut = function (obj) {
|
|
203
|
+
this.onDwgOut(obj);
|
|
204
|
+
obj['pt1'] = this.pt1;
|
|
205
|
+
obj['pt2'] = this.pt2;
|
|
206
|
+
return obj;
|
|
207
|
+
};
|
|
208
|
+
MxDbAlignedDimension.prototype.create = function () {
|
|
209
|
+
return new MxDbAlignedDimension();
|
|
210
|
+
};
|
|
211
|
+
return MxDbAlignedDimension;
|
|
212
|
+
}(MxDbEntity_1.default));
|
|
213
|
+
exports.default = MxDbAlignedDimension;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/** @module MxDbEntity*/
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
var MxType_1 = require("../MxType");
|
|
5
|
+
var store_1 = require("../store/store");
|
|
4
6
|
/**
|
|
5
7
|
* MxDbEntity 用于构建一个自定义对象的抽象类(该类无法实例化 请通过继承的方式对其抽象方法进行实现)
|
|
6
8
|
* @description MxDbEntity 属于 abstract class(抽象类) 主要用途是通过继承这个类实现一个用于动态绘制的回调对象
|
|
@@ -24,7 +26,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
24
26
|
var MxDbEntity = /** @class */ (function () {
|
|
25
27
|
function MxDbEntity() {
|
|
26
28
|
this.iColor = 0xffffff;
|
|
29
|
+
this.iRenderOrder = 30;
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* 自定义实体的坐标变换.
|
|
33
|
+
* @param
|
|
34
|
+
* @returns void
|
|
35
|
+
* @example
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
MxDbEntity.prototype.transformBy = function (mat) { };
|
|
28
40
|
MxDbEntity.prototype.getImp = function () {
|
|
29
41
|
var myThis = this;
|
|
30
42
|
var imp = myThis['MxDbEntityImp'];
|
|
@@ -39,15 +51,39 @@ var MxDbEntity = /** @class */ (function () {
|
|
|
39
51
|
*
|
|
40
52
|
* ```
|
|
41
53
|
*/
|
|
42
|
-
MxDbEntity.prototype.
|
|
54
|
+
MxDbEntity.prototype.setNeedUpdateDisplay = function (isImmediate) {
|
|
43
55
|
var imp = this.getImp();
|
|
44
56
|
if (imp) {
|
|
45
|
-
|
|
57
|
+
if (isImmediate) {
|
|
58
|
+
imp.upDisplay();
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
imp.setDirtyDisplay(true);
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
46
64
|
}
|
|
47
65
|
else {
|
|
48
66
|
return false;
|
|
49
67
|
}
|
|
50
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* 得到对象的id.
|
|
71
|
+
* @param
|
|
72
|
+
* @returns number
|
|
73
|
+
* @example
|
|
74
|
+
* ``` typescript
|
|
75
|
+
*
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
MxDbEntity.prototype.objectId = function () {
|
|
79
|
+
var imp = this.getImp();
|
|
80
|
+
if (imp) {
|
|
81
|
+
return imp.objectId();
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
51
87
|
/**
|
|
52
88
|
* 删除对象
|
|
53
89
|
* @param
|
|
@@ -91,16 +127,20 @@ var MxDbEntity = /** @class */ (function () {
|
|
|
91
127
|
return this.iColor;
|
|
92
128
|
};
|
|
93
129
|
/**
|
|
94
|
-
*
|
|
130
|
+
* 复制对象。
|
|
95
131
|
* @param
|
|
96
|
-
* @returns
|
|
132
|
+
* @returns MxDbEntity
|
|
97
133
|
* @example
|
|
98
134
|
* ``` typescript
|
|
99
135
|
*
|
|
100
136
|
* ```
|
|
101
137
|
*/
|
|
102
|
-
MxDbEntity.prototype.
|
|
103
|
-
|
|
138
|
+
MxDbEntity.prototype.clone = function (type) {
|
|
139
|
+
var ret = this.create();
|
|
140
|
+
var objData = { type: type ? type : MxType_1.default.MxCloneType.kClone };
|
|
141
|
+
this.dwgOut(objData);
|
|
142
|
+
ret.dwgIn(objData);
|
|
143
|
+
return ret;
|
|
104
144
|
};
|
|
105
145
|
/**
|
|
106
146
|
* 自定义对象内部数据输入同步(实现dwgIn抽象方法 必须在实现中调用 this.onDwgIn())
|
|
@@ -108,6 +148,7 @@ var MxDbEntity = /** @class */ (function () {
|
|
|
108
148
|
*/
|
|
109
149
|
MxDbEntity.prototype.onDwgIn = function (obj) {
|
|
110
150
|
this.iColor = obj['iColor'];
|
|
151
|
+
this.iRenderOrder = obj['iRenderOrder'];
|
|
111
152
|
};
|
|
112
153
|
/**
|
|
113
154
|
* 自定义对象内部数据输出同步(实现dwgIn抽象方法 必须在实现中调用 this.onDwgIn()
|
|
@@ -115,8 +156,45 @@ var MxDbEntity = /** @class */ (function () {
|
|
|
115
156
|
*/
|
|
116
157
|
MxDbEntity.prototype.onDwgOut = function (obj) {
|
|
117
158
|
obj['iColor'] = this.iColor;
|
|
159
|
+
obj['iRenderOrder'] = this.iRenderOrder;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* 初始自定义对象的类型信息.
|
|
163
|
+
* @param
|
|
164
|
+
* @returns
|
|
165
|
+
* @example
|
|
166
|
+
* ``` typescript
|
|
167
|
+
*
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
MxDbEntity.prototype.rxInit = function () {
|
|
171
|
+
;
|
|
172
|
+
store_1.default.state.MxFun.initMxDbEntityType(this);
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* 设置显示顺序
|
|
176
|
+
* @param
|
|
177
|
+
* @returns boolean
|
|
178
|
+
* @example
|
|
179
|
+
* ``` typescript
|
|
180
|
+
*
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
MxDbEntity.prototype.setRenderOrder = function (iRenderOrder) {
|
|
184
|
+
this.iRenderOrder = iRenderOrder;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* 得到显示顺序
|
|
188
|
+
* @param
|
|
189
|
+
* @returns boolean
|
|
190
|
+
* @example
|
|
191
|
+
* ``` typescript
|
|
192
|
+
*
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
MxDbEntity.prototype.getRenderOrder = function () {
|
|
196
|
+
return this.iRenderOrder;
|
|
118
197
|
};
|
|
119
198
|
return MxDbEntity;
|
|
120
199
|
}());
|
|
121
200
|
exports.default = MxDbEntity;
|
|
122
|
-
//# sourceMappingURL=MxDbEntity.js.map
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
3
|
+
//版权所有(C)2002-2022,成都梦想凯德科技有限公司。
|
|
4
|
+
//本软件代码及其文档和相关资料归成都梦想凯德科技有限公司,应用包含本软件的程序必须包括以下版权声明
|
|
5
|
+
//此应用程序与成都梦想凯德科技有限公司成协议。通过使用本软件、其文档或相关材料
|
|
6
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
7
|
+
/** @module MxDbImage*/
|
|
8
|
+
var __extends = (this && this.__extends) || (function () {
|
|
9
|
+
var extendStatics = function (d, b) {
|
|
10
|
+
extendStatics = Object.setPrototypeOf ||
|
|
11
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
12
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
13
|
+
return extendStatics(d, b);
|
|
14
|
+
};
|
|
15
|
+
return function (d, b) {
|
|
16
|
+
if (typeof b !== "function" && b !== null)
|
|
17
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
18
|
+
extendStatics(d, b);
|
|
19
|
+
function __() { this.constructor = d; }
|
|
20
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
21
|
+
};
|
|
22
|
+
})();
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
var THREE = require("three");
|
|
25
|
+
var MxDbEntity_1 = require("../MxDbEntity");
|
|
26
|
+
var MxFun_1 = require("../MxFun");
|
|
27
|
+
/**
|
|
28
|
+
* MxDbImage 图片对象.
|
|
29
|
+
*/
|
|
30
|
+
var MxDbImage = /** @class */ (function (_super) {
|
|
31
|
+
__extends(MxDbImage, _super);
|
|
32
|
+
function MxDbImage() {
|
|
33
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
34
|
+
// pt1,pt2是图片的两个对角点.
|
|
35
|
+
_this.pt1 = new THREE.Vector3();
|
|
36
|
+
_this.pt2 = new THREE.Vector3();
|
|
37
|
+
_this.imagePath = '';
|
|
38
|
+
_this.isLoadMaterialFromPath = true;
|
|
39
|
+
_this.material = null;
|
|
40
|
+
return _this;
|
|
41
|
+
}
|
|
42
|
+
MxDbImage.prototype.getTypeName = function () {
|
|
43
|
+
return 'MxDbImage';
|
|
44
|
+
};
|
|
45
|
+
// 图片对象的绘制
|
|
46
|
+
MxDbImage.prototype.worldDraw = function (pWorldDraw) {
|
|
47
|
+
var _this = this;
|
|
48
|
+
var pt3 = new THREE.Vector3(this.pt1.x, this.pt2.y);
|
|
49
|
+
var pt4 = new THREE.Vector3(this.pt2.x, this.pt1.y);
|
|
50
|
+
pWorldDraw.drawLine(this.pt1, pt3);
|
|
51
|
+
pWorldDraw.drawLine(pt3, this.pt2);
|
|
52
|
+
pWorldDraw.drawLine(this.pt2, pt4);
|
|
53
|
+
pWorldDraw.drawLine(pt4, this.pt1);
|
|
54
|
+
if (pWorldDraw.getType() == 1) {
|
|
55
|
+
// 图片正常的显示绘制.
|
|
56
|
+
if (this.material) {
|
|
57
|
+
var w = Math.abs(this.pt1.x - this.pt2.x);
|
|
58
|
+
var h = Math.abs(this.pt1.y - this.pt2.y);
|
|
59
|
+
var geometry = new THREE.PlaneGeometry(w, h);
|
|
60
|
+
var x = Math.min(this.pt1.x, this.pt2.x);
|
|
61
|
+
var y = Math.min(this.pt1.y, this.pt2.y);
|
|
62
|
+
for (var i = 0; i < geometry.vertices.length; i++) {
|
|
63
|
+
geometry.vertices[i].x += x + w * 0.5;
|
|
64
|
+
geometry.vertices[i].y += y + h * 0.5;
|
|
65
|
+
geometry.vertices[i].z = 0;
|
|
66
|
+
}
|
|
67
|
+
var mesh = new THREE.Mesh(geometry, this.material);
|
|
68
|
+
mesh.material['depthTest'] = false;
|
|
69
|
+
pWorldDraw.drawEntity(mesh);
|
|
70
|
+
}
|
|
71
|
+
else if (this.imagePath.length > 0 && this.isLoadMaterialFromPath) {
|
|
72
|
+
var myThis_1 = this;
|
|
73
|
+
MxFun_1.default.loadImageMaterial('./models/img/mxcad.jpg', function (material) {
|
|
74
|
+
_this.isLoadMaterialFromPath = false;
|
|
75
|
+
if (!material) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
myThis_1.setMaterial(material);
|
|
79
|
+
myThis_1.setNeedUpdateDisplay();
|
|
80
|
+
MxFun_1.default.updateDisplay();
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
MxDbImage.prototype.setImagePath = function (sPath) {
|
|
86
|
+
this.imagePath = sPath;
|
|
87
|
+
this.isLoadMaterialFromPath = true;
|
|
88
|
+
this.material = null;
|
|
89
|
+
};
|
|
90
|
+
MxDbImage.prototype.getImagePath = function () {
|
|
91
|
+
return this.imagePath;
|
|
92
|
+
};
|
|
93
|
+
MxDbImage.prototype.setMaterial = function (material) {
|
|
94
|
+
this.material = material;
|
|
95
|
+
};
|
|
96
|
+
MxDbImage.prototype.setPoint1 = function (pt1) {
|
|
97
|
+
this.pt1 = pt1;
|
|
98
|
+
};
|
|
99
|
+
MxDbImage.prototype.getPoint1 = function () {
|
|
100
|
+
return this.pt1;
|
|
101
|
+
};
|
|
102
|
+
MxDbImage.prototype.setPoint2 = function (pt2) {
|
|
103
|
+
this.pt2 = pt2;
|
|
104
|
+
};
|
|
105
|
+
MxDbImage.prototype.getPoint2 = function () {
|
|
106
|
+
return this.pt2;
|
|
107
|
+
};
|
|
108
|
+
// 返回图片的可编辑的夹点.
|
|
109
|
+
MxDbImage.prototype.getGripPoints = function () {
|
|
110
|
+
var ret = [];
|
|
111
|
+
ret.push(this.pt1);
|
|
112
|
+
ret.push(this.pt2);
|
|
113
|
+
return ret;
|
|
114
|
+
};
|
|
115
|
+
// 图片的夹点拖动编辑.
|
|
116
|
+
MxDbImage.prototype.moveGripPointsAt = function (index, offset) {
|
|
117
|
+
if (index == 0) {
|
|
118
|
+
this.pt1.add(offset);
|
|
119
|
+
}
|
|
120
|
+
else if ((index = 1)) {
|
|
121
|
+
this.pt2.add(offset);
|
|
122
|
+
}
|
|
123
|
+
return true;
|
|
124
|
+
};
|
|
125
|
+
// 图片数据的保存.
|
|
126
|
+
MxDbImage.prototype.dwgIn = function (obj) {
|
|
127
|
+
this.onDwgIn(obj);
|
|
128
|
+
this.pt1.copy(obj['pt1']);
|
|
129
|
+
this.pt2.copy(obj['pt2']);
|
|
130
|
+
this.imagePath = obj['imagePath'].substr(0);
|
|
131
|
+
this.isLoadMaterialFromPath = true;
|
|
132
|
+
return true;
|
|
133
|
+
};
|
|
134
|
+
// 图片数据的恢复.
|
|
135
|
+
MxDbImage.prototype.dwgOut = function (obj) {
|
|
136
|
+
this.onDwgOut(obj);
|
|
137
|
+
obj['pt1'] = this.pt1;
|
|
138
|
+
obj['pt2'] = this.pt2;
|
|
139
|
+
obj['imagePath'] = this.imagePath;
|
|
140
|
+
return obj;
|
|
141
|
+
};
|
|
142
|
+
MxDbImage.prototype.create = function () {
|
|
143
|
+
return new MxDbImage();
|
|
144
|
+
};
|
|
145
|
+
return MxDbImage;
|
|
146
|
+
}(MxDbEntity_1.default));
|
|
147
|
+
exports.default = MxDbImage;
|