mxdraw 0.1.118 → 0.1.120

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.
Files changed (42) hide show
  1. package/dist/index.d.ts +297 -25
  2. package/dist/lib/MxModule/Mx3PointArc/index.d.ts +16 -11
  3. package/dist/lib/MxModule/Mx3PointArc/index.js +1 -1
  4. package/dist/lib/MxModule/MxDbArcShape/index.d.ts +15 -0
  5. package/dist/lib/MxModule/MxDbArcShape/index.js +1 -0
  6. package/dist/lib/MxModule/MxDbArcShapeDraw/index.d.ts +12 -0
  7. package/dist/lib/MxModule/MxDbArcShapeDraw/index.js +1 -0
  8. package/dist/lib/MxModule/MxDbCircleArc/index.d.ts +17 -0
  9. package/dist/lib/MxModule/MxDbCircleArc/index.js +1 -0
  10. package/dist/lib/MxModule/MxDbCircleShape/index.d.ts +11 -0
  11. package/dist/lib/MxModule/MxDbCircleShape/index.js +1 -0
  12. package/dist/lib/MxModule/MxDbEllipse/index.d.ts +13 -13
  13. package/dist/lib/MxModule/MxDbEllipse/index.js +1 -1
  14. package/dist/lib/MxModule/MxDbEllipseArc/index.d.ts +21 -0
  15. package/dist/lib/MxModule/MxDbEllipseArc/index.js +1 -0
  16. package/dist/lib/MxModule/MxDbEllipseShape/index.d.ts +46 -0
  17. package/dist/lib/MxModule/MxDbEllipseShape/index.js +1 -0
  18. package/dist/lib/MxModule/MxDbRegularPolygonShape/index.d.ts +17 -0
  19. package/dist/lib/MxModule/MxDbRegularPolygonShape/index.js +1 -0
  20. package/dist/lib/MxModule/MxDbRingShape/index.d.ts +7 -0
  21. package/dist/lib/MxModule/MxDbRingShape/index.js +1 -0
  22. package/dist/lib/MxModule/MxDbSVG/index.js +1 -1
  23. package/dist/lib/MxModule/MxDbSVGText/index.d.ts +4 -0
  24. package/dist/lib/MxModule/MxDbSVGText/index.js +1 -1
  25. package/dist/lib/MxModule/MxDbShape/index.d.ts +62 -0
  26. package/dist/lib/MxModule/MxDbShape/index.js +1 -0
  27. package/dist/lib/MxModule/MxDbStarShape/index.d.ts +14 -0
  28. package/dist/lib/MxModule/MxDbStarShape/index.js +1 -0
  29. package/dist/lib/MxModule/MxDbText/MxDbText.d.ts +10 -5
  30. package/dist/lib/MxModule/MxDbText/MxDbText.js +1 -1
  31. package/dist/lib/MxModule/MxDbText/SpriteText.d.ts +11 -2
  32. package/dist/lib/MxModule/MxDbText/SpriteText.js +1 -1
  33. package/dist/lib/MxModule/MxDrawObject/index.d.ts +9 -0
  34. package/dist/lib/MxModule/MxDrawObject/index.js +1 -1
  35. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +1 -1
  36. package/dist/lib/doc.d.ts +10 -1
  37. package/dist/lib/doc.js +1 -1
  38. package/dist/lib/mxdraw.d.ts +9 -0
  39. package/dist/lib/mxdraw.js +1 -1
  40. package/dist/mxdraw.es.js +1 -1
  41. package/dist/mxdraw.umd.js +1 -1
  42. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import McGiWorldDraw from "../McGiWorldDraw";
2
+ import MxDbShape from "../MxDbShape";
3
+ /*** 椭圆(弧)形状 */
4
+ export default class MxDbEllipseShape extends MxDbShape {
5
+ constructor();
6
+ getTypeName(): string;
7
+ /** 弧中心点 */
8
+ center: import("three").Vector3;
9
+ setCenter(center: THREE.Vector3): this;
10
+ /** X轴椭圆弧半径 默认当前坐标转换下的10像素 */
11
+ xRadius: number;
12
+ setXRadius(xRadius: number): this;
13
+ /** Y轴椭圆弧半径 默认当前坐标转换下的10像素 */
14
+ yRadius: number;
15
+ setYRadius(yRadius: number): this;
16
+ /** 弧开始角度 默认0*/
17
+ startAngle: number;
18
+ setStartAngle(startAngle: number): this;
19
+ /** 弧结束角度 默认0*/
20
+ endAngle: number;
21
+ setEndAngle(endAngle: number): this;
22
+ /** 以顺时针方向创建(扫过)弧线 默认false */
23
+ clockwise: boolean;
24
+ setClockwise(clockwise: boolean): this;
25
+ /** 旋转角度 */
26
+ rotation: number;
27
+ setRotation(rotation: number): this;
28
+ /** 是否闭合到中心位置 */
29
+ isClosedToCenter: boolean;
30
+ setIsClosedToCenter(isClosedToCenter: boolean): this;
31
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
32
+ /** 绘制椭圆形状 */
33
+ drawEllipseShape(pWorldDraw: McGiWorldDraw): {
34
+ /** 圆心角 */
35
+ centralAngle: number;
36
+ /** 圆弧曲线 */
37
+ curve: import("three").EllipseCurve;
38
+ /** 构成圆弧的向量点 */
39
+ points: import("three").Vector3[];
40
+ };
41
+ /** 创建圆弧 */
42
+ createEllipseCurve(x?: number, y?: number, xRadius?: number, yRadius?: number, startAngle?: number, endAngle?: number, clockwise?: boolean, rotation?: number): import("three").EllipseCurve;
43
+ getClosedLine(points: THREE.Vector3[]): import("three").CatmullRomCurve3;
44
+ getGripPoints(): import("three").Vector3[];
45
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
46
+ }
@@ -0,0 +1 @@
1
+ import MxDbShape from"../MxDbShape";export default class MxDbEllipseShape extends MxDbShape{constructor(){super(),this.center=new THREE.Vector3,this.xRadius=10,this.yRadius=10,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!1,this.rotation=0,this.isClosedToCenter=!0,this._propertyDbKeys=[...this._propertyDbKeys,"center","xRadius","yRadius","startAngle","endAngle","clockwise","rotation","isClosedToCenter"]}getTypeName(){return"MxDbEllipseShape"}setCenter(t){return this.center=t,this}setXRadius(t){return this.xRadius=t,this}setYRadius(t){return this.yRadius=t,this}setStartAngle(t){return this.startAngle=t,this}setEndAngle(t){return this.endAngle=t,this}setClockwise(t){return this.clockwise=t,this}setRotation(t){return this.rotation=t,this}setIsClosedToCenter(t){return this.isClosedToCenter=t,this}worldDraw(t){this.drawEllipseShape(t)}drawEllipseShape(t){let{startAngle:e,endAngle:s,clockwise:r}=this;const i=this.createEllipseCurve(),n=this.createPaths(i);let a,l=this.getShapePoints(n);return this._draw(t,l),this._drawStoreLine(t,l),{centralAngle:a=r?s>e?THREE.MathUtils.radToDeg(i.aEndAngle-i.aStartAngle):360-Math.abs(THREE.MathUtils.radToDeg(i.aEndAngle-i.aStartAngle)):e>s?Math.abs(THREE.MathUtils.radToDeg(i.aEndAngle-i.aStartAngle)):360-THREE.MathUtils.radToDeg(i.aEndAngle-i.aStartAngle),curve:i,points:l}}createEllipseCurve(t=this.center.x,e=this.center.y,s=this.xRadius,r=this.yRadius,i=this.startAngle,n=this.endAngle,a=this.clockwise,l=this.rotation){return new THREE.EllipseCurve(t,e,s,r,i,n,a,l)}getClosedLine(t){const{isClosedToCenter:e,center:s}=this;let r=e?[t[t.length-1],s,t[0]]:[t[t.length-1],t[0]];return new THREE.CatmullRomCurve3(r,!1,"catmullrom",.01)}getGripPoints(){return[this.center]}moveGripPointsAt(t,e){return 0===t&&this.center.add(e),!0}};
@@ -0,0 +1,17 @@
1
+ import McGiWorldDraw from "../McGiWorldDraw";
2
+ import MxDbShape from "../MxDbShape";
3
+ /** 等边多边形 */
4
+ export default class MxDbRegularPolygonShape extends MxDbShape {
5
+ center: import("three").Vector3;
6
+ sides: number;
7
+ radius: number;
8
+ getTypeName(): string;
9
+ constructor();
10
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
11
+ _getPoints(): {
12
+ x: number;
13
+ y: number;
14
+ }[];
15
+ getGripPoints(): THREE.Vector3[];
16
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
17
+ }
@@ -0,0 +1 @@
1
+ import MxDbShape from"../MxDbShape";export default class MxDbRegularPolygonShape extends MxDbShape{constructor(){super(),this.center=new THREE.Vector3,this.sides=6,this.radius=70,this._propertyDbKeys=[...this._propertyDbKeys,"center","sides","radius"]}getTypeName(){return"MxDbRegularPolygonShape"}worldDraw(t){const e=this._getPoints(),s=new THREE.Path;s.moveTo(e[0].x,e[0].y);for(let t=0;t<e.length;t++)s.lineTo(e[t].x,e[t].y);s.closePath();const r=this.createPaths(s),i=this.getShapePoints(r);this._draw(t,i),this._drawStoreLine(t,i)}_getPoints(){const{sides:t,radius:e}=this,{x:s,y:r}=this.center,i=[];for(let o=0;o<t;o++)i.push({x:e*Math.sin(2*o*Math.PI/t)+s,y:-1*e*Math.cos(2*o*Math.PI/t)+r});return i}getGripPoints(){return[this.center]}moveGripPointsAt(t,e){return 0===t&&this.center.add(e),!0}};
@@ -0,0 +1,7 @@
1
+ import McGiWorldDraw from "../McGiWorldDraw";
2
+ import MxDbArcShape from "../MxDbArcShape";
3
+ /** 环形 */
4
+ export default class MxDbRingShape extends MxDbArcShape {
5
+ getTypeName(): string;
6
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
7
+ }
@@ -0,0 +1 @@
1
+ import MxDbArcShape from"../MxDbArcShape";export default class MxDbRingShape extends MxDbArcShape{getTypeName(){return"MxDbRingShape"}worldDraw(t){const{center:e,startAngle:s,endAngle:i,clockwise:r}=this,{x:h,y:a}=e;this.isClosedToCenter=!1;const n=this.createEllipseCurve(h,a,this.innerRadius,this.innerRadius,s,i,r),o=this.createEllipseCurve(h,a,this.outerRadius,this.outerRadius,s,i,!r),c=this.createPaths([n,o]);let d=this.getShapePoints(c);const l=this.createPaths(n);let p=this.getShapePoints(l);const S=this.createPaths(o);let u=this.getShapePoints(S);this.isFill?(this._draw(t,d),this._drawStoreLine(t,p),this._drawStoreLine(t,u)):(this._draw(t,p),this._drawStoreLine(t,p),this._draw(t,u),this._drawStoreLine(t,u))}};
@@ -1 +1 @@
1
- var __awaiter=this&&this.__awaiter||function(t,e,s,i){return new(s||(s=Promise))(function(o,r){function g(t){try{h(i.next(t))}catch(t){r(t)}}function n(t){try{h(i.throw(t))}catch(t){r(t)}}function h(t){var e;t.done?o(t.value):(e=t.value,e instanceof s?e:new s(function(t){t(e)})).then(g,n)}h((i=i.apply(t,e||[])).next())})};import MxDbEntity from"../MxDbEntity";import MxDbSVGText from"../MxDbSVGText";import MxFun from"../MxFun";import MxThreeJS from"../MxThreeJS";import MxType from"../MxType";export default class MxDbSVG extends MxDbEntity{constructor(){super(...arguments),this.svgPos=new THREE.Vector3,this.svg=null,this.svgPath="",this.svgSize=new THREE.Vector2(50,50),this.svgAlignmentRatio=new THREE.Vector2(0,0),this.svgRotate=0,this.svgReverse=!1,this.svgMirror=!1,this.svgChildColor=[],this.svgMargin=new THREE.Vector2(0,0),this.isSvgDirtyLocation=!1,this.isLoadFromPath=!0,this.aryText=[],this.svgBoxSize=null,this.fixedSize=!1,this.useSvgColor=!1}setSvgChildColor(t){if(this.svgChildColor=t,!this.useSvgColor&&this.svg){let t=new THREE.Color(this.getColor()),e=0,s=this;this.svg.traverse(function(i){i.material&&(e<s.svgChildColor.length?i.material.color=new THREE.Color(s.svgChildColor[e]):i.material.color=t,e++)}),this.setNeedUpdateDisplay(!0)}}getSvgChildColor(){return this.svgChildColor}calcVewSize(t){let e=this.svgSize.x,s=this.svgSize.y;return s<=0&&(s=this.svgBoxSize?this.svgBoxSize.y/this.svgBoxSize.x*e:e),this.fixedSize&&(e=t.screenCoordLong2Doc(e),s=t.screenCoordLong2Doc(s)),[e,s]}calcSvgDrawRect(t){if(!t)return;this.calcSvgPosition(t);let[e,s]=this.calcVewSize(t),i=new THREE.Matrix4;i.makeScale(this.svgMirror?-1:1,this.svgReverse?-1:1,1);let o=new THREE.Matrix4;o.makeRotationZ(this.svgRotate);let r=new THREE.Matrix4,g=new THREE.Vector3(this.svgPos.x-e*this.svgAlignmentRatio.x,this.svgPos.y-s*this.svgAlignmentRatio.y,0);r.makeTranslation(g.x,g.y,g.z),o.multiply(i),o.premultiply(r);let n=new THREE.Vector3(0,0,0),h=new THREE.Vector3(e,0,0),a=new THREE.Vector3(e,s,0),l=new THREE.Vector3(0,s,0);return n.applyMatrix4(o),h.applyMatrix4(o),a.applyMatrix4(o),l.applyMatrix4(o),{pt1:n,pt2:a,pt3:h,pt4:l,cenpt:a.clone().add(n.clone().sub(a).multiplyScalar(.5)),sizew:e,sizeh:s}}worldDraw(t){let e=t.getMxObject(),s=this.calcSvgDrawRect(e),i=s.pt1,o=s.pt2,r=s.pt3,g=s.pt4,n=s.cenpt,h=s.sizew;if(this.aryText.forEach((s,i)=>{if(s.txt.length>0){let o=new THREE.Vector3(s.txtPos.x,s.txtPos.y,0);this.fixedSize&&(s.txtPos.x>0?o.x=this.svgPos.x+e.screenCoordLong2Doc(s.txtPos.x):o.x=this.svgPos.x-e.screenCoordLong2Doc(s.txtPos.x),s.txtPos.y>0?o.y=this.svgPos.y+e.screenCoordLong2Doc(s.txtPos.y):o.y=this.svgPos.y-e.screenCoordLong2Doc(s.txtPos.y));let r=void 0;s.color&&(r=t.getColor(),t.setColor(s.color));let g=s.txtHeight;if(this.fixedSize&&(g=e.screenCoordLong2Doc(s.txtHeight)),t.setXData({type:"text",txt:s.txt,index:i}),s._txtObject=t.drawText(s.txt,g,0,o,void 0,t=>{let e="";return e=s.fontStyle.length>0?`${s.fontStyle} ${t}px Arial`:`normal ${t}px Arial`}),s.underline&&s._txtObject){const e=new THREE.Box3;e.expandByObject(s._txtObject);let i=new THREE.Vector3(e.min.x,e.min.y,0),o=new THREE.Vector3(e.max.x,e.min.y,0);t.drawLine(i,o)}if(s._txtAspectRatio=-1,r&&t.setColor(r),s.drawConnectingLine){let e=n.clone().sub(o);if(e.length()>g+h){e.normalize();let s=n.clone().sub(e.clone().multiplyScalar(h)),i=o.clone().add(e.clone().multiplyScalar(g));t.setXData({type:"line"}),t.drawLine(s,i)}}}}),1==t.getType()){if(this.svg)t.setXData({type:"svg"}),t.drawEntity(this.svg);else if(this.svgPath.length>0&&this.isLoadFromPath){let s=this,i=t.getMxObject();MxThreeJS.loadSVG(this.svgPath,void 0,o=>{if(o){let r=o;if(r.boxSize)s.svgBoxSize=r.boxSize.clone();else{let t=(new THREE.Box3).setFromObject(o);s.svgBoxSize||(s.svgBoxSize=new THREE.Vector3),s.svgBoxSize.x=t.max.x-t.min.x,s.svgBoxSize.y=t.max.y-t.min.y}let[g,n]=s.calcVewSize(e);s.svgBoxSize&&(o.scale.x=g/s.svgBoxSize.x,o.scale.y=n/s.svgBoxSize.y),o.scale.z=o.scale.x,s.svgReverse&&(o.scale.y*=-1),s.svgMirror&&(o.scale.x*=-1),o.rotateZ(s.svgRotate),s.isSvgDirtyLocation=!0;let h=new THREE.Color(t.getColor()),a=0;o.traverse(function(t){t.material&&(t.material=t.material.clone(),t.material.transparent=!0,t.material.depthTest=!1,s.useSvgColor||(a<s.svgChildColor.length?t.material.color=new THREE.Color(s.svgChildColor[a]):t.material.color=h),a++)}),s.svg=o,s.setNeedUpdateDisplay(),i.updateDisplay()}else console.log("mx LoadSVG:"+s.svgPath+" failed");s.isLoadFromPath=!1})}this.fixedSize||(t.drawSelectLine(i,o),t.drawSelectLine(r,g),t.drawSelectLine(i,r),t.drawSelectLine(r,o),t.drawSelectLine(o,g),t.drawSelectLine(g,i))}else t.drawLine(i,r),t.drawLine(r,o),t.drawLine(o,g),t.drawLine(g,i)}setSvgPath(t,e=!1){return __awaiter(this,void 0,void 0,function*(){this.svgPath=t,this.svg=null,this.isLoadFromPath=!0,this.svgBoxSize=null,e&&(yield MxThreeJS.loadSVG(t))})}getSvgPath(){return this.svgPath}setSvgPostion(t){this.svgPos=t.clone(),this.isSvgDirtyLocation=!0}getSvgPostion(){return this.svgPos}setSvgSize(t){this.svgSize=t,this.isSvgDirtyLocation=!0}getSvgSize(){return this.svgSize}setSvgAlignmentRatio(t){this.svgAlignmentRatio=t,this.isSvgDirtyLocation=!0}getSvgAlignmentRatio(){return this.svgAlignmentRatio}getText(t){return t<this.aryText.length?this.aryText[t]:null}addText(t){this.aryText.push(t)}getGripPoints(){let t=[];t.push(this.svgPos);let e=0;for(;e<this.aryText.length;e++){let s=this.aryText[e];if(s.move){let e=new THREE.Vector3(s.txtPos.x,s.txtPos.y,0);if(this.fixedSize){let t=MxFun.getCurrentDraw();s.txtPos.x>0?e.x=this.svgPos.x+t.screenCoordLong2Doc(s.txtPos.x):e.x=this.svgPos.x-t.screenCoordLong2Doc(s.txtPos.x),s.txtPos.y>0?e.y=this.svgPos.y+t.screenCoordLong2Doc(s.txtPos.y):e.y=this.svgPos.y-t.screenCoordLong2Doc(s.txtPos.y)}t.push(e)}}return t}moveGripPointsAt(t,e){if(0==t)this.svgPos.add(e),this.fixedSize||this.aryText.forEach(t=>{t.txtPos.add(e)});else if(t-1>=0&&t-1<this.aryText.length){let s=this.aryText[t-1];if(s.move)if(this.fixedSize){let t=MxFun.getCurrentDraw();s.txtPos.x+=t.docCoordLong2Screen(e.x),s.txtPos.y+=t.docCoordLong2Screen(e.y)}else s.txtPos.add(e)}return this.isSvgDirtyLocation=!0,!0}calcSvgPosition(t){if(!this.svg||!this.isSvgDirtyLocation)return;this.isSvgDirtyLocation=!1;let[e,s]=this.calcVewSize(t);this.svg.position.x=this.svgPos.x-e*this.svgAlignmentRatio.x-this.svgMargin.x*e,this.svg.position.y=this.svgPos.y-s*this.svgAlignmentRatio.y-this.svgMargin.y*s}dwgIn(t){this.onDwgIn(t),this.fixedSize=t.fixedSize,this.fixedSize?this.svg=null:t.type==MxType.MxCloneType.kClone&&t.svg&&(this.svg=t.svg.clone()),this.svgPos.copy(t.svgPos),this.svgPath=t.svgPath.substr(0),this.svgSize.copy(t.svgSize),this.svgAlignmentRatio.copy(t.svgAlignmentRatio),this.isSvgDirtyLocation=!0,this.svg||(this.isLoadFromPath=!0),this.svgBoxSize=null;let e=t.txts;return this.aryText=[],e.forEach(t=>{let e=new MxDbSVGText;e.txt=t.txt,e.txtHeight=t.txtHeight,e.txtPos.copy(t.txtPos),e.move=t.move,e.drawConnectingLine=t.drawConnectingLine,this.aryText.push(e)}),this.svgRotate=t.svgRotate,this.useSvgColor=t.useSvgColor,this.svgReverse=t.svgReverse,this.svgMirror=t.svgMirror,this.svgMargin=t.svgMargin,t.svgChildColor?this.svgChildColor=t.svgChildColor:this.svgChildColor=[],!0}dwgOut(t){return this.onDwgOut(t),t.type==MxType.MxCloneType.kClone&&(t.svg=this.svg),t.svgPath=this.svgPath,t.svgPos=this.svgPos,t.svgSize=this.svgSize,t.svgAlignmentRatio=this.svgAlignmentRatio,t.txts=[],this.aryText.forEach(e=>{let s={txtPos:e.txtPos,txt:e.txt,txtHeight:e.txtHeight,color:e.color,_txtAspectRatio:e._txtAspectRatio,move:e.move,drawConnectingLine:e.drawConnectingLine};t.txts.push(s)}),t.fixedSize=this.fixedSize,t.svgRotate=this.svgRotate,t.useSvgColor=this.useSvgColor,t.svgReverse=this.svgReverse,t.svgMirror=this.svgMirror,t.svgMargin=this.svgMargin,t.svgChildColor=this.svgChildColor,t}create(){return new MxDbSVG}transformBy(t){this.svgPos.applyMatrix4(t),this.isSvgDirtyLocation=!0,this.fixedSize||this.aryText.forEach(e=>{e.txtPos.applyMatrix4(t)})}getTypeName(){return"MxDbSVG"}setColor(t){if(super.setColor(t),this.svg){let t=new THREE.Color(this.color);this.svg.traverse(function(e){e.material&&(e.material.color=t)})}return this}setSvg(t){this.svg=t,this.isLoadFromPath=!1,this.svgBoxSize=null}calcSvgBoxSize(t){if(!this.svgBoxSize)if(t.boxSize)this.svgBoxSize=t.boxSize.clone();else{let e=(new THREE.Box3).setFromObject(t);this.svgBoxSize||(this.svgBoxSize=new THREE.Vector3),this.svgBoxSize.x=e.max.x-e.min.x,this.svgBoxSize.y=e.max.y-e.min.y}}reComputeSVG(){if(!this.svg)return;let t=this.getMxObject();if(!t)return;this.calcSvgBoxSize(this.svg);let[e,s]=this.calcVewSize(t);this.svgBoxSize&&(this.svg.scale.x=e/this.svgBoxSize.x,this.svg.scale.y=s/this.svgBoxSize.y),this.svg.scale.z=this.svg.scale.x,this.svgReverse&&(this.svg.scale.y*=-1),this.svgMirror&&(this.svg.scale.x*=-1),this.isSvgDirtyLocation=!0,this.calcSvgPosition(t)}onViewChange(){if(!this.fixedSize)return!1;let t=this.getMxObject();if(null==t)return!1;if(this.svg){this.calcSvgBoxSize(this.svg);let[e,s]=this.calcVewSize(t);this.svgBoxSize&&(this.svg.scale.x=e/this.svgBoxSize.x,this.svg.scale.y=s/this.svgBoxSize.y),this.svg.scale.z=this.svg.scale.x,this.svgReverse&&(this.svg.scale.y*=-1),this.svgMirror&&(this.svg.scale.x*=-1),this.isSvgDirtyLocation=!0,this.calcSvgPosition(t)}let e=this;return this.aryText.forEach(s=>{if(s._txtObject&&t){let i=t.screenCoordLong2Doc(s.txtHeight);i>1e-5&&(s._txtAspectRatio<=0&&(s._txtAspectRatio=s._txtObject.scale.x/s._txtObject.scale.y),s._txtObject.scale.set(s._txtAspectRatio*i,i,1),s.txtPos.x>0?s._txtObject.position.x=e.svgPos.x+t.screenCoordLong2Doc(s.txtPos.x):s._txtObject.position.x=e.svgPos.x-t.screenCoordLong2Doc(s.txtPos.x),s.txtPos.y>0?s._txtObject.position.y=e.svgPos.y+t.screenCoordLong2Doc(s.txtPos.y):s._txtObject.position.y=e.svgPos.y-t.screenCoordLong2Doc(s.txtPos.y),s._txtObject.updateMatrix())}}),!0}};
1
+ var __awaiter=this&&this.__awaiter||function(t,e,s,i){return new(s||(s=Promise))(function(o,r){function n(t){try{a(i.next(t))}catch(t){r(t)}}function g(t){try{a(i.throw(t))}catch(t){r(t)}}function a(t){var e;t.done?o(t.value):(e=t.value,e instanceof s?e:new s(function(t){t(e)})).then(n,g)}a((i=i.apply(t,e||[])).next())})};import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import MxDbSVGText from"../MxDbSVGText";import MxFun from"../MxFun";import MxThreeJS from"../MxThreeJS";import MxType from"../MxType";export default class MxDbSVG extends MxDbEntity{constructor(){super(...arguments),this.svgPos=new THREE.Vector3,this.svg=null,this.svgPath="",this.svgSize=new THREE.Vector2(50,50),this.svgAlignmentRatio=new THREE.Vector2(0,0),this.svgRotate=0,this.svgReverse=!1,this.svgMirror=!1,this.svgChildColor=[],this.svgMargin=new THREE.Vector2(0,0),this.isSvgDirtyLocation=!1,this.isLoadFromPath=!0,this.aryText=[],this.svgBoxSize=null,this.fixedSize=!1,this.useSvgColor=!1}setSvgChildColor(t){if(this.svgChildColor=t,!this.useSvgColor&&this.svg){let t=new THREE.Color(this.getColor()),e=0,s=this;this.svg.traverse(function(i){i.material&&(e<s.svgChildColor.length?i.material.color=new THREE.Color(s.svgChildColor[e]):i.material.color=t,e++)}),this.setNeedUpdateDisplay(!0)}}getSvgChildColor(){return this.svgChildColor}calcVewSize(t){let e=this.svgSize.x,s=this.svgSize.y;return s<=0&&(s=this.svgBoxSize?this.svgBoxSize.y/this.svgBoxSize.x*e:e),this.fixedSize&&(e=t.screenCoordLong2Doc(e),s=t.screenCoordLong2Doc(s)),[e,s]}calcSvgDrawRect(t){if(!t)return;this.calcSvgPosition(t);let[e,s]=this.calcVewSize(t),i=new THREE.Matrix4;i.makeScale(this.svgMirror?-1:1,this.svgReverse?-1:1,1);let o=new THREE.Matrix4;o.makeRotationZ(this.svgRotate);let r=new THREE.Matrix4,n=new THREE.Vector3(this.svgPos.x-e*this.svgAlignmentRatio.x,this.svgPos.y-s*this.svgAlignmentRatio.y,0);r.makeTranslation(n.x,n.y,n.z),o.multiply(i),o.premultiply(r);let g=new THREE.Vector3(0,0,0),a=new THREE.Vector3(e,0,0),l=new THREE.Vector3(e,s,0),h=new THREE.Vector3(0,s,0);return g.applyMatrix4(o),a.applyMatrix4(o),l.applyMatrix4(o),h.applyMatrix4(o),{pt1:g,pt2:l,pt3:a,pt4:h,cenpt:l.clone().add(g.clone().sub(l).multiplyScalar(.5)),sizew:e,sizeh:s}}worldDraw(t){let e=t.getMxObject(),s=this.calcSvgDrawRect(e),i=s.pt1,o=s.pt2,r=s.pt3,n=s.pt4,g=s.cenpt,a=s.sizew,l=this;if(t.getType()!=McGiWorldDrawType.kSelectDraw&&this.aryText.forEach((s,i)=>{if(s.txt.length>0){let n=new THREE.Vector3(s.txtPos.x,s.txtPos.y,0);this.fixedSize&&(s.txtPos.x>0?n.x=this.svgPos.x+e.screenCoordLong2Doc(s.txtPos.x):n.x=this.svgPos.x-e.screenCoordLong2Doc(s.txtPos.x),s.txtPos.y>0?n.y=this.svgPos.y+e.screenCoordLong2Doc(s.txtPos.y):n.y=this.svgPos.y-e.screenCoordLong2Doc(s.txtPos.y));let h=void 0;s.color&&(h=t.getColor(),t.setColor(s.color));let x=s.txtHeight;l.fixedSize&&(x=e.screenCoordLong2Doc(s.txtHeight)),t.setXData({type:"text",txt:s.txt,index:i});let c=t.drawText(s.txt,x,0,n,void 0,t=>{let e="";return e=s.fontStyle.length>0?`${s.fontStyle} ${t}px Arial`:`normal ${t}px Arial`});if(t.getType()==McGiWorldDrawType.kWorldDraw&&(s._txtObject=c),s.underline&&s._txtObject){const e=new THREE.Box3;e.expandByObject(s._txtObject);let i=new THREE.Vector3(e.min.x,e.min.y+.1*x,0),n=new THREE.Vector3(e.max.x,e.min.y+.1*x,0);var o=new THREE.Geometry;let g=new THREE.LineBasicMaterial({color:t.getColor(),transparent:!0,depthTest:!1});o.vertices.push(i,n);var r=new THREE.Line(o,g);t.drawEntity(r),t.getType()==McGiWorldDrawType.kWorldDraw&&(s._underLine=r)}if(s._txtAspectRatio=-1,h&&t.setColor(h),s.drawConnectingLine){let e=g.clone().sub(n);if(e.length()>x+a){e.normalize();let i=g.clone().sub(e.clone().multiplyScalar(a)),l=n.clone().add(e.clone().multiplyScalar(x));o=new THREE.Geometry;let h=new THREE.LineBasicMaterial({color:t.getColor(),transparent:!0,depthTest:!1});o.vertices.push(i,l);r=new THREE.Line(o,h);t.setXData({type:"line"}),t.drawEntity(r),t.getType()==McGiWorldDrawType.kWorldDraw&&(s._connectingLine=r)}}}}),1==t.getType()){if(this.svg)t.setXData({type:"svg"}),t.drawEntity(this.svg);else if(this.svgPath.length>0&&this.isLoadFromPath){let s=this,i=t.getMxObject();MxThreeJS.loadSVG(this.svgPath,void 0,o=>{if(o){let r=o;if(r.boxSize)s.svgBoxSize=r.boxSize.clone();else{let t=(new THREE.Box3).setFromObject(o);s.svgBoxSize||(s.svgBoxSize=new THREE.Vector3),s.svgBoxSize.x=t.max.x-t.min.x,s.svgBoxSize.y=t.max.y-t.min.y}let[n,g]=s.calcVewSize(e);s.svgBoxSize&&(o.scale.x=n/s.svgBoxSize.x,o.scale.y=g/s.svgBoxSize.y),o.scale.z=o.scale.x,s.svgReverse&&(o.scale.y*=-1),s.svgMirror&&(o.scale.x*=-1),o.rotateZ(s.svgRotate),s.isSvgDirtyLocation=!0;let a=new THREE.Color(t.getColor()),l=0;o.traverse(function(t){t.material&&(t.material=t.material.clone(),t.material.transparent=!0,t.material.depthTest=!1,s.useSvgColor||(l<s.svgChildColor.length?t.material.color=new THREE.Color(s.svgChildColor[l]):t.material.color=a),l++)}),s.svg=o,s.setNeedUpdateDisplay(),i.updateDisplay()}else console.log("mx LoadSVG:"+s.svgPath+" failed");s.isLoadFromPath=!1})}this.fixedSize||(t.drawSelectLine(i,o),t.drawSelectLine(r,n),t.drawSelectLine(i,r),t.drawSelectLine(r,o),t.drawSelectLine(o,n),t.drawSelectLine(n,i))}else t.drawLine(i,r),t.drawLine(r,o),t.drawLine(o,n),t.drawLine(n,i)}setSvgPath(t,e=!1){return __awaiter(this,void 0,void 0,function*(){this.svgPath=t,this.svg=null,this.isLoadFromPath=!0,this.svgBoxSize=null,e&&(yield MxThreeJS.loadSVG(t))})}getSvgPath(){return this.svgPath}setSvgPostion(t){this.svgPos=t.clone(),this.isSvgDirtyLocation=!0}getSvgPostion(){return this.svgPos}setSvgSize(t){this.svgSize=t,this.isSvgDirtyLocation=!0}getSvgSize(){return this.svgSize}setSvgAlignmentRatio(t){this.svgAlignmentRatio=t,this.isSvgDirtyLocation=!0}getSvgAlignmentRatio(){return this.svgAlignmentRatio}getText(t){return t<this.aryText.length?this.aryText[t]:null}addText(t){this.aryText.push(t)}getGripPoints(){let t=[];t.push(this.svgPos);let e=0;for(;e<this.aryText.length;e++){let s=this.aryText[e];if(s.move){let e=new THREE.Vector3(s.txtPos.x,s.txtPos.y,0);if(this.fixedSize){let t=MxFun.getCurrentDraw();s.txtPos.x>0?e.x=this.svgPos.x+t.screenCoordLong2Doc(s.txtPos.x):e.x=this.svgPos.x-t.screenCoordLong2Doc(s.txtPos.x),s.txtPos.y>0?e.y=this.svgPos.y+t.screenCoordLong2Doc(s.txtPos.y):e.y=this.svgPos.y-t.screenCoordLong2Doc(s.txtPos.y)}t.push(e)}}return t}moveGripPointsAt(t,e){if(0==t)this.svgPos.add(e),this.fixedSize||this.aryText.forEach(t=>{t.txtPos.add(e)});else if(t-1>=0&&t-1<this.aryText.length){let s=this.aryText[t-1];if(s.move)if(this.fixedSize){let t=MxFun.getCurrentDraw();s.txtPos.x+=t.docCoordLong2Screen(e.x),s.txtPos.y+=t.docCoordLong2Screen(e.y)}else s.txtPos.add(e)}return this.isSvgDirtyLocation=!0,!0}calcSvgPosition(t){if(!this.svg||!this.isSvgDirtyLocation)return;this.isSvgDirtyLocation=!1;let[e,s]=this.calcVewSize(t);this.svg.position.x=this.svgPos.x-e*this.svgAlignmentRatio.x-this.svgMargin.x*e,this.svg.position.y=this.svgPos.y-s*this.svgAlignmentRatio.y-this.svgMargin.y*s}dwgIn(t){this.onDwgIn(t),this.fixedSize=t.fixedSize,this.fixedSize?this.svg=null:t.type==MxType.MxCloneType.kClone&&t.svg&&(this.svg=t.svg.clone()),this.svgPos.copy(t.svgPos),this.svgPath=t.svgPath.substr(0),this.svgSize.copy(t.svgSize),this.svgAlignmentRatio.copy(t.svgAlignmentRatio),this.isSvgDirtyLocation=!0,this.svg||(this.isLoadFromPath=!0),this.svgBoxSize=null;let e=t.txts;return this.aryText=[],e.forEach(t=>{let e=new MxDbSVGText;e.txt=t.txt,e.txtHeight=t.txtHeight,e.txtPos.copy(t.txtPos),e.move=t.move,e.drawConnectingLine=t.drawConnectingLine,this.aryText.push(e)}),this.svgRotate=t.svgRotate,this.useSvgColor=t.useSvgColor,this.svgReverse=t.svgReverse,this.svgMirror=t.svgMirror,this.svgMargin=t.svgMargin,t.svgChildColor?this.svgChildColor=t.svgChildColor:this.svgChildColor=[],!0}dwgOut(t){return this.onDwgOut(t),t.type==MxType.MxCloneType.kClone&&(t.svg=this.svg),t.svgPath=this.svgPath,t.svgPos=this.svgPos,t.svgSize=this.svgSize,t.svgAlignmentRatio=this.svgAlignmentRatio,t.txts=[],this.aryText.forEach(e=>{let s={txtPos:e.txtPos,txt:e.txt,txtHeight:e.txtHeight,color:e.color,_txtAspectRatio:e._txtAspectRatio,move:e.move,drawConnectingLine:e.drawConnectingLine};t.txts.push(s)}),t.fixedSize=this.fixedSize,t.svgRotate=this.svgRotate,t.useSvgColor=this.useSvgColor,t.svgReverse=this.svgReverse,t.svgMirror=this.svgMirror,t.svgMargin=this.svgMargin,t.svgChildColor=this.svgChildColor,t}create(){return new MxDbSVG}transformBy(t){this.svgPos.applyMatrix4(t),this.isSvgDirtyLocation=!0,this.fixedSize||this.aryText.forEach(e=>{e.txtPos.applyMatrix4(t)})}getTypeName(){return"MxDbSVG"}setColor(t){if(super.setColor(t),this.svg){let t=new THREE.Color(this.color);this.svg.traverse(function(e){e.material&&(e.material.color=t)})}return this}setSvg(t){this.svg=t,this.isLoadFromPath=!1,this.svgBoxSize=null}calcSvgBoxSize(t){if(!this.svgBoxSize)if(t.boxSize)this.svgBoxSize=t.boxSize.clone();else{let e=(new THREE.Box3).setFromObject(t);this.svgBoxSize||(this.svgBoxSize=new THREE.Vector3),this.svgBoxSize.x=e.max.x-e.min.x,this.svgBoxSize.y=e.max.y-e.min.y}}reComputeSVG(){if(!this.svg)return;let t=this.getMxObject();if(!t)return;this.calcSvgBoxSize(this.svg);let[e,s]=this.calcVewSize(t);this.svgBoxSize&&(this.svg.scale.x=e/this.svgBoxSize.x,this.svg.scale.y=s/this.svgBoxSize.y),this.svg.scale.z=this.svg.scale.x,this.svgReverse&&(this.svg.scale.y*=-1),this.svgMirror&&(this.svg.scale.x*=-1),this.isSvgDirtyLocation=!0,this.calcSvgPosition(t)}onViewChange(){if(!this.fixedSize)return!1;let t=this.getMxObject();if(null==t)return!1;if(this.svg){this.calcSvgBoxSize(this.svg);let[e,s]=this.calcVewSize(t);this.svgBoxSize&&(this.svg.scale.x=e/this.svgBoxSize.x,this.svg.scale.y=s/this.svgBoxSize.y),this.svg.scale.z=this.svg.scale.x,this.svgReverse&&(this.svg.scale.y*=-1),this.svgMirror&&(this.svg.scale.x*=-1),this.isSvgDirtyLocation=!0,this.calcSvgPosition(t)}let e=this.calcSvgDrawRect(t),s=e.cenpt,i=e.sizew,o=this;return this.aryText.forEach(e=>{if(e._txtObject&&t){let n=t.screenCoordLong2Doc(e.txtHeight);if(n>1e-5){e._txtAspectRatio<=0&&(e._txtAspectRatio=e._txtObject.scale.x/e._txtObject.scale.y),e._txtObject.scale.set(e._txtAspectRatio*n*1.5,1.5*n,1),e.txtPos.x>0?e._txtObject.position.x=o.svgPos.x+t.screenCoordLong2Doc(e.txtPos.x):e._txtObject.position.x=o.svgPos.x-t.screenCoordLong2Doc(e.txtPos.x),e.txtPos.y>0?e._txtObject.position.y=o.svgPos.y+t.screenCoordLong2Doc(e.txtPos.y):e._txtObject.position.y=o.svgPos.y-t.screenCoordLong2Doc(e.txtPos.y);let g=e._txtObject.position;if(e._txtObject.updateMatrix(),e._underLine){const t=new THREE.Box3;let s=e._txtObject.parent;e._txtObject.parent=null,t.expandByObject(e._txtObject),e._txtObject.parent=s;let i=new THREE.Vector3(t.min.x,t.min.y+.1*n,0),o=new THREE.Vector3(t.max.x,t.min.y+.1*n,0);(r=new THREE.Geometry).vertices.push(i,o),e._underLine.geometry=r}if(e._connectingLine){let t=s.clone().sub(g);t.normalize();let o=s.clone().sub(t.clone().multiplyScalar(i)),a=g.clone().add(t.clone().multiplyScalar(n));var r;(r=new THREE.Geometry).vertices.push(o,a),e._connectingLine.geometry=r}}}}),!0}};
@@ -19,8 +19,12 @@ export default class MxDbSVGText {
19
19
  move: boolean;
20
20
  /** 文字移动到距图片远处,自动绘制一个连接线 */
21
21
  drawConnectingLine: boolean;
22
+ /** 连接线的临时绘制对象 */
23
+ _connectingLine: THREE.Line | null;
22
24
  /** 字体样式 */
23
25
  fontStyle: string;
24
26
  /** 下划线 */
25
27
  underline: boolean;
28
+ /** 下划线的临时绘制对象 */
29
+ _underLine: THREE.Line | null;
26
30
  }
@@ -1 +1 @@
1
- export default class MxDbSVGText{constructor(){this.txtPos=new THREE.Vector3,this.txt="",this.txtHeight=1,this.color=void 0,this._txtObject=null,this._txtAspectRatio=-1,this.move=!1,this.drawConnectingLine=!1,this.fontStyle="",this.underline=!1}};
1
+ export default class MxDbSVGText{constructor(){this.txtPos=new THREE.Vector3,this.txt="",this.txtHeight=1,this.color=void 0,this._txtObject=null,this._txtAspectRatio=-1,this.move=!1,this.drawConnectingLine=!1,this._connectingLine=null,this.fontStyle="",this.underline=!1,this._underLine=null}};
@@ -0,0 +1,62 @@
1
+ import McGiWorldDraw from "../McGiWorldDraw";
2
+ import MxDbEntity from "../MxDbEntity";
3
+ import { UnstableColor } from "../MxType";
4
+ /** 动态绘制形状
5
+ * 基于THREE.Shape计算实现的2d形状 通过extrude3dConfig 配置可挤压缓冲为3d形状
6
+ * **/
7
+ export default class MxDbShape extends MxDbEntity {
8
+ protected _paths: THREE.CurvePath<THREE.Vector3 | THREE.Vector2>;
9
+ protected points: THREE.Vector3[];
10
+ protected closedLine: THREE.Curve<THREE.Vector3>;
11
+ /** 描边颜色 */
12
+ stroke: UnstableColor;
13
+ setStroke(stroke: UnstableColor): this;
14
+ /** 描边线段的宽度 */
15
+ strokeLineWidth: number;
16
+ setStrokeLineWidth(strokeLineWidth: number): this;
17
+ /** 描边是否为虚线 */
18
+ isStrokeDashLine: boolean;
19
+ setIsStrokeDashLine(isStrokeDashLine: boolean): this;
20
+ /** 填充 */
21
+ isFill: boolean;
22
+ setIsFill(isFill: boolean): this;
23
+ /** 线段细分数值 */
24
+ curveSegments: number;
25
+ setCurveSegments(curveSegments: number): this;
26
+ /** 闭合 */
27
+ closed: boolean;
28
+ setClosed(closed: boolean): this;
29
+ /** 圆角半径 (一个向量点对应一个角的半径值)*/
30
+ cornerRadius: number[] | number;
31
+ /**
32
+ * 设置圆角 圆角的半径(如果参数为数组则一个角度对应一个圆角半径)
33
+ * @param { number | number[] } radius 圆角半径 为数组时[3, 2, 1, 4]分别对应左上角圆角半径3 右上角2 右下角1 左下角4; 或者直接设置半径值 则四个角统一半径
34
+ * */
35
+ setCornerRadius(radius: number | number[], isScreenCoord?: boolean): void;
36
+ /** 需要输入和输出的属性 */
37
+ protected _propertyDbKeys: string[];
38
+ getTypeName(): string;
39
+ /** 获取坐标集合 */
40
+ getShapePoints(paths: THREE.CurvePath<THREE.Vector3 | THREE.Vector2>): import("three").Vector3[];
41
+ /*** 创建路径 */
42
+ createPaths(shapes: THREE.Curve<THREE.Vector3 | THREE.Vector2> | THREE.Curve<THREE.Vector3 | THREE.Vector2>[]): import("three").CurvePath<import("three").Vector3 | import("three").Vector2>;
43
+ /** 动态绘制函数*/
44
+ _draw(pWorldDraw: McGiWorldDraw, vertices: THREE.Vector3[]): void;
45
+ /** 获取生成圆角后的点 */
46
+ getCornerRadiusPoints(points: THREE.Vector3[]): import("three").Vector3[];
47
+ /** 绘制描边 */
48
+ _drawStoreLine(pWorldDraw: McGiWorldDraw, points: THREE.Vector3[], draw?: (pWorldDraw: McGiWorldDraw) => void): void;
49
+ /** 获取线段闭合后的曲线点数 */
50
+ getClosedPoints(points: THREE.Vector3[]): import("three").Vector3[];
51
+ /** 获取闭合线段 */
52
+ getClosedLine(points: THREE.Vector3[]): THREE.Curve<THREE.Vector3>;
53
+ /** 获取长度 */
54
+ getTotalLength(): number;
55
+ /** 获取面积 */
56
+ getArea(): number;
57
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
58
+ getGripPoints(): THREE.Vector3[];
59
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
60
+ dwgIn(obj: any): boolean;
61
+ dwgOut(obj: any): object;
62
+ }
@@ -0,0 +1 @@
1
+ import{getToGenerateRoundedCorners}from"../../tools/three";import McGeTool from"../McGeTool";import MxDbEntity from"../MxDbEntity";import MxFun from"../MxFun";export default class MxDbShape extends MxDbEntity{constructor(){super(...arguments),this.strokeLineWidth=2,this.isStrokeDashLine=!1,this.isFill=!1,this.curveSegments=50,this.closed=!0,this.cornerRadius=[],this._propertyDbKeys=["isFill","stroke","strokeLineWidth","isStrokeDashLine","closed","cornerRadius"]}setStroke(t){return this.stroke=t,this}setStrokeLineWidth(t){return this.strokeLineWidth=t,this}setIsStrokeDashLine(t){return this.isStrokeDashLine=t,this}setIsFill(t){return this.isFill=t,this}setCurveSegments(t){return this.curveSegments=t,this}setClosed(t){return this.closed=t,this}setCornerRadius(t,e=!0){t instanceof Array?this.cornerRadius=t.map(t=>e?MxFun.screenCoordLong2Doc(t):t):this.cornerRadius=e?MxFun.screenCoordLong2Doc(t):t}getTypeName(){return"MxDbShape"}getShapePoints(t){const{curveSegments:e}=this;return this.points=t.getPoints(e).map(t=>t instanceof THREE.Vector2?new THREE.Vector3(t.x,t.y,0):t),this.points}createPaths(t){return this._paths=new THREE.CurvePath,Array.isArray(t)?t.forEach(t=>this._paths.add(t)):this._paths.add(t),this._paths}_draw(t,e){const s=t.getColor(),{isFill:i,closed:r}=this;t.setColor(this.color);const o=r?this.getClosedPoints(e):e;i?t.drawSolid(o):t.drawLines(o),t.setColor(s)}getCornerRadiusPoints(t){const{cornerRadius:e}=this;if(!e)return t;const s="number"==typeof e?t.map(()=>e):e;return s.length>0?getToGenerateRoundedCorners(t,s):t}_drawStoreLine(t,e,s){const{isFill:i,stroke:r,strokeLineWidth:o}=this,n=t.getLineWidth(),h=t.getColor(),a=t.isDashLineDisplay();r&&i&&(t.setDashLineDisplay(this.isStrokeDashLine),t.setColor(r),t.setLineWidth(o),s?s(t):t.drawLines(this.getClosedPoints(e)),t.setColor(h),t.setLineWidth(n),t.setDashLineDisplay(a))}getClosedPoints(t){let e=(this._paths||new THREE.CatmullRomCurve3(t,!1,"catmullrom",0)).getLength();this.closedLine=this.getClosedLine(t);const s=this.closedLine.getLength();let i=this.curveSegments/e,r=2.5*(e>this.curveSegments?s*i:1);if(r>20*this.curveSegments&&(r=20*this.curveSegments),r<=0)return t;const o=this.closedLine.getPoints(r);return[...t,...o]}getClosedLine(t){return new THREE.LineCurve3(t[t.length-1],t[0])}getTotalLength(){return this._paths?this._paths.getLength()+(this.closedLine?this.closedLine.getLength():0):0}getArea(){return this.points?McGeTool.calcArea(this.closed?this.getClosedPoints(this.points):this.points):0}worldDraw(t){const e=this.createPaths(new THREE.Curve),s=this.getShapePoints(e);this._draw(t,s),this._drawStoreLine(t,s)}getGripPoints(){return[]}moveGripPointsAt(t,e){return!0}dwgIn(t){return this.dwgInHelp(t,this._propertyDbKeys),!0}dwgOut(t){return this.dwgOutHelp(t,this._propertyDbKeys),t}};
@@ -0,0 +1,14 @@
1
+ import McGiWorldDraw from "../McGiWorldDraw";
2
+ import MxDbShape from "../MxDbShape";
3
+ /** 星形 */
4
+ export default class MxDbStarShape extends MxDbShape {
5
+ getTypeName(): string;
6
+ constructor();
7
+ center: import("three").Vector3;
8
+ numPoints: number;
9
+ innerRadius: number;
10
+ outerRadius: number;
11
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
12
+ getGripPoints(): THREE.Vector3[];
13
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
14
+ }
@@ -0,0 +1 @@
1
+ import MxDbShape from"../MxDbShape";export default class MxDbStarShape extends MxDbShape{constructor(){super(),this.center=new THREE.Vector3,this.numPoints=10,this.innerRadius=10,this.outerRadius=10,this._propertyDbKeys=[...this._propertyDbKeys,"center","numPoints","innerRadius","outerRadius"]}getTypeName(){return"MxDbStarShape"}worldDraw(t){const{x:e,y:s}=this.center,i=new THREE.Path;i.moveTo(e,s-this.outerRadius);for(let t=1;t<2*this.numPoints;t++){const r=t%2==0?this.outerRadius:this.innerRadius,n=r*Math.sin(t*Math.PI/this.numPoints)+e,h=-1*r*Math.cos(t*Math.PI/this.numPoints)+s;i.lineTo(n,h)}i.closePath();const r=this.createPaths(i),n=this.getShapePoints(r);this._draw(t,n),this._drawStoreLine(t,n)}getGripPoints(){return[this.center]}moveGripPointsAt(t,e){return 0===t&&this.center.add(e),!0}};
@@ -1,7 +1,7 @@
1
1
  import { Color } from "three";
2
2
  import McGiWorldDraw from "../McGiWorldDraw";
3
3
  import MxDbEntity from "../MxDbEntity";
4
- import { SpriteTextObj, SpriteTextColorType } from "./SpriteText";
4
+ import { SpriteTextObj, SpriteTextColorType, TextFontWeight } from "./SpriteText";
5
5
  /**
6
6
  * MxDbText 绘制文字
7
7
  * @describe 适用于标签标注类型的文字(永远面向相机的平面)
@@ -63,7 +63,7 @@ export declare class MxDbText extends MxDbEntity {
63
63
  set borderColor(borderColor: SpriteTextColorType);
64
64
  setBorderColor(borderColor: SpriteTextColorType): this;
65
65
  private _fontFace;
66
- /** 字体 */
66
+ /** 客户端字体 */
67
67
  get fontFace(): string;
68
68
  set fontFace(fontFace: string);
69
69
  setFontFace(fontFace: string): this;
@@ -74,9 +74,9 @@ export declare class MxDbText extends MxDbEntity {
74
74
  setFontSize(fontSize: number): this;
75
75
  private _fontWeight;
76
76
  /** 字体粗细 */
77
- get fontWeight(): string;
78
- set fontWeight(fontWeight: string);
79
- setFontWeight(fontWeight: string): this;
77
+ get fontWeight(): TextFontWeight;
78
+ set fontWeight(fontWeight: TextFontWeight);
79
+ setFontWeight(fontWeight: TextFontWeight): this;
80
80
  private _strokeWidth;
81
81
  /** 笔划宽度 */
82
82
  get strokeWidth(): number;
@@ -122,6 +122,11 @@ export declare class MxDbText extends MxDbEntity {
122
122
  get scale(): number;
123
123
  set scale(scale: number);
124
124
  setScale(scale: number): this;
125
+ private _underline;
126
+ /** 下划线 */
127
+ get underline(): boolean;
128
+ set underline(underline: boolean);
129
+ setUnderline(underline: boolean): void;
125
130
  /** SpriteText实例 */
126
131
  protected spriteText: SpriteTextObj;
127
132
  getTypeName(): string;
@@ -1 +1 @@
1
- import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import MxType from"../MxType";import{getSpriteTextClass}from"./SpriteText";const propertyDbKeys=["text","position","height","backgroundColor","padding","borderWidth","borderRadius","borderColor","fontFace","fontSize","fontWeight","strokeWidth","strokeColor","angle","textAlign","textShadowBlur","textShadowColor","textShadowOffsetX","textShadowOffsetY","scale"];export class MxDbText extends MxDbEntity{constructor(){super(...arguments),this.position=new THREE.Vector3,this._text="",this._height=16,this._angle=0,this._scale=1}setPosition(t){return this.position=t,this}get text(){return this.spriteText?this.spriteText.text:this._text}set text(t){this.spriteText?this.spriteText.text=t:this._text=t}setText(t){return this.text=t,this}get height(){return this.spriteText?this.spriteText.textHeight:this._height}set height(t){this.spriteText?this.spriteText.textHeight=t:this._height=t}setHeight(t){return this.height=t,this}get backgroundColor(){return this.spriteText?this.spriteText.backgroundColor:this._backgroundColor}set backgroundColor(t){this.spriteText?this.spriteText.backgroundColor=t:this._backgroundColor=t}setBackgroundColor(t){return this.backgroundColor=t,this}get padding(){return this.spriteText?this.spriteText.padding:this._padding}set padding(t){this.spriteText?this.spriteText.padding=t:this._padding=t}setPadding(t){return this.padding=t,this}get borderWidth(){return this.spriteText?this.spriteText.borderWidth:this._borderWidth}set borderWidth(t){this.spriteText?this.spriteText.borderWidth=t:this._borderWidth=t}setBorderWidth(t){return this.borderWidth=t,this}get borderRadius(){return this.spriteText?this.spriteText.borderRadius:this._borderRadius}set borderRadius(t){this.spriteText?this.spriteText.borderRadius=t:this._borderRadius=t}setBorderRadius(t){return this.borderRadius=t,this}get borderColor(){return this.spriteText?this.spriteText.borderColor:this._borderColor}set borderColor(t){this.spriteText?this.spriteText.borderColor=t:this._borderColor=t}setBorderColor(t){return this.borderColor=t,this}get fontFace(){return this.spriteText?this.spriteText.fontFace:this._fontFace}set fontFace(t){this.spriteText?this.spriteText.fontFace=t:this._fontFace=t}setFontFace(t){return this.fontFace=t,this}get fontSize(){return this.spriteText?this.spriteText.fontSize:this._fontSize}set fontSize(t){this.spriteText?this.spriteText.fontSize=t:this._fontSize=t}setFontSize(t){return this.fontSize=t,this}get fontWeight(){return this.spriteText?this.spriteText.fontWeight:this._fontWeight}set fontWeight(t){this.spriteText?this.spriteText.fontWeight=t:this._fontWeight=t}setFontWeight(t){return this.fontWeight=t,this}get strokeWidth(){return this.spriteText?this.spriteText.strokeWidth:this._strokeWidth}set strokeWidth(t){this.spriteText?this.spriteText.strokeWidth=t:this._strokeWidth=t}setStrokeWidth(t){return this.strokeWidth=t,this}get strokeColor(){return this.spriteText?this.spriteText.strokeColor:this._strokeColor}set strokeColor(t){this.spriteText?this.spriteText.strokeColor=t:this._strokeColor=t}setStrokeColor(t){return this.strokeColor=t,this}get textAlign(){return this.spriteText?this.spriteText.textAlign:this._textAlign}set textAlign(t){this.spriteText?this.spriteText.textAlign=t:this._textAlign=t}setTextAlign(t){return this.textAlign=t,this}get textShadowBlur(){return this.spriteText?this.spriteText.textShadowBlur:this._textShadowBlur}set textShadowBlur(t){this.spriteText?this.spriteText.textShadowBlur=t:this._textShadowBlur=t}setTextShadowBlur(t){return this.textShadowBlur=t,this}get textShadowColor(){return this.spriteText?this.spriteText.textShadowColor:this._textShadowColor}set textShadowColor(t){this.spriteText?this.spriteText.textShadowColor=t:this._textShadowColor=t}setTextShadowColor(t){return this.textShadowColor=t,this}get textShadowOffsetX(){return this.spriteText?this.spriteText.textShadowOffsetX:this._textShadowOffsetX}set textShadowOffsetX(t){this.spriteText?this.spriteText.textShadowOffsetX=t:this._textShadowOffsetX=t}setTextShadowOffsetX(t){return this.textShadowOffsetX=t,this}get textShadowOffsetY(){return this.spriteText?this.spriteText.textShadowOffsetY:this._textShadowOffsetY}set textShadowOffsetY(t){this.spriteText?this.spriteText.textShadowOffsetY=t:this._textShadowOffsetY=t}setTextShadowOffsetY(t){return this.textShadowOffsetY=t,this}get angle(){return this.spriteText?this.spriteText.angle:this._angle}set angle(t){this.spriteText?this.spriteText.angle=t:this._angle=t}setAngle(t){return this.angle=t,this}get scale(){return this.spriteText?this.spriteText.textScale:this._scale}set scale(t){this.spriteText?this.spriteText.textScale=t:this._scale=t}setScale(t){return this.scale=t,this}getTypeName(){return"MxDbTagText"}worldDraw(t){if(this.text.length>0){t.getType()!==McGiWorldDrawType.kWorldDraw||this.spriteText||this.createSpriteText(),this.color!==this.spriteText.color&&(this.spriteText.color=this.color),this.spriteText.material.setValues({opacity:this.opacity,visible:this.visible});const{x:e,y:i,z:s}=this.position;this.spriteText.position.set(e,i,s),t.drawEntity(this.spriteText)}}createSpriteText(){const t=getSpriteTextClass(),{text:e,height:i,color:s,backgroundColor:r,padding:o,borderWidth:h,borderRadius:x,borderColor:n,strokeWidth:d,strokeColor:p,fontFace:a,fontSize:T,fontWeight:l,textAlign:g,textShadowBlur:u,textShadowColor:f,textShadowOffsetX:S,textShadowOffsetY:w,angle:c,scale:b}=this;this.spriteText=new t({text:e,textHeight:i,color:s,backgroundColor:r,padding:o,borderWidth:h,borderRadius:x,borderColor:n,strokeWidth:d,strokeColor:p,fontFace:a,fontSize:T,fontWeight:l,textAlign:g,textShadowBlur:u,textShadowColor:f,textShadowOffsetX:S,textShadowOffsetY:w,angle:c,scale:b})}getGripPoints(){return[this.position]}moveGripPointsAt(t,e){return 0===t&&this.position.add(e),!0}create(){return new MxDbText}dwgIn(t){return this.onDwgIn(t),this.dwgInHelp(t,propertyDbKeys),t.type===MxType.MxCloneType.kMxFileClone?this.createSpriteText():this.spriteText=t.spriteText,!0}dwgOut(t){return this.onDwgOut(t),this.dwgOutHelp(t,propertyDbKeys),t.type===MxType.MxCloneType.kMxFileClone?t.spriteText=void 0:t.spriteText=this.spriteText,t}getGeomExtents(){return(new THREE.Box3).expandByObject(this.spriteText)}erase(){return super.erase(),this.spriteText&&this.spriteText.dispose(),!0}};
1
+ import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import MxType from"../MxType";import{getSpriteTextClass}from"./SpriteText";const propertyDbKeys=["text","position","height","backgroundColor","padding","borderWidth","borderRadius","borderColor","fontFace","fontSize","fontWeight","strokeWidth","strokeColor","angle","textAlign","textShadowBlur","textShadowColor","textShadowOffsetX","textShadowOffsetY","scale","underline"];export class MxDbText extends MxDbEntity{constructor(){super(...arguments),this.position=new THREE.Vector3,this._text="",this._height=16,this._angle=0,this._scale=1,this._underline=!1}setPosition(t){return this.position=t,this}get text(){return this.spriteText?this.spriteText.text:this._text}set text(t){this.spriteText?this.spriteText.text=t:this._text=t}setText(t){return this.text=t,this}get height(){return this.spriteText?this.spriteText.textHeight:this._height}set height(t){this.spriteText?this.spriteText.textHeight=t:this._height=t}setHeight(t){return this.height=t,this}get backgroundColor(){return this.spriteText?this.spriteText.backgroundColor:this._backgroundColor}set backgroundColor(t){this.spriteText?this.spriteText.backgroundColor=t:this._backgroundColor=t}setBackgroundColor(t){return this.backgroundColor=t,this}get padding(){return this.spriteText?this.spriteText.padding:this._padding}set padding(t){this.spriteText?this.spriteText.padding=t:this._padding=t}setPadding(t){return this.padding=t,this}get borderWidth(){return this.spriteText?this.spriteText.borderWidth:this._borderWidth}set borderWidth(t){this.spriteText?this.spriteText.borderWidth=t:this._borderWidth=t}setBorderWidth(t){return this.borderWidth=t,this}get borderRadius(){return this.spriteText?this.spriteText.borderRadius:this._borderRadius}set borderRadius(t){this.spriteText?this.spriteText.borderRadius=t:this._borderRadius=t}setBorderRadius(t){return this.borderRadius=t,this}get borderColor(){return this.spriteText?this.spriteText.borderColor:this._borderColor}set borderColor(t){this.spriteText?this.spriteText.borderColor=t:this._borderColor=t}setBorderColor(t){return this.borderColor=t,this}get fontFace(){return this.spriteText?this.spriteText.fontFace:this._fontFace}set fontFace(t){this.spriteText?this.spriteText.fontFace=t:this._fontFace=t}setFontFace(t){return this.fontFace=t,this}get fontSize(){return this.spriteText?this.spriteText.fontSize:this._fontSize}set fontSize(t){this.spriteText?this.spriteText.fontSize=t:this._fontSize=t}setFontSize(t){return this.fontSize=t,this}get fontWeight(){return this.spriteText?this.spriteText.fontWeight:this._fontWeight}set fontWeight(t){this.spriteText?this.spriteText.fontWeight=t:this._fontWeight=t}setFontWeight(t){return this.fontWeight=t,this}get strokeWidth(){return this.spriteText?this.spriteText.strokeWidth:this._strokeWidth}set strokeWidth(t){this.spriteText?this.spriteText.strokeWidth=t:this._strokeWidth=t}setStrokeWidth(t){return this.strokeWidth=t,this}get strokeColor(){return this.spriteText?this.spriteText.strokeColor:this._strokeColor}set strokeColor(t){this.spriteText?this.spriteText.strokeColor=t:this._strokeColor=t}setStrokeColor(t){return this.strokeColor=t,this}get textAlign(){return this.spriteText?this.spriteText.textAlign:this._textAlign}set textAlign(t){this.spriteText?this.spriteText.textAlign=t:this._textAlign=t}setTextAlign(t){return this.textAlign=t,this}get textShadowBlur(){return this.spriteText?this.spriteText.textShadowBlur:this._textShadowBlur}set textShadowBlur(t){this.spriteText?this.spriteText.textShadowBlur=t:this._textShadowBlur=t}setTextShadowBlur(t){return this.textShadowBlur=t,this}get textShadowColor(){return this.spriteText?this.spriteText.textShadowColor:this._textShadowColor}set textShadowColor(t){this.spriteText?this.spriteText.textShadowColor=t:this._textShadowColor=t}setTextShadowColor(t){return this.textShadowColor=t,this}get textShadowOffsetX(){return this.spriteText?this.spriteText.textShadowOffsetX:this._textShadowOffsetX}set textShadowOffsetX(t){this.spriteText?this.spriteText.textShadowOffsetX=t:this._textShadowOffsetX=t}setTextShadowOffsetX(t){return this.textShadowOffsetX=t,this}get textShadowOffsetY(){return this.spriteText?this.spriteText.textShadowOffsetY:this._textShadowOffsetY}set textShadowOffsetY(t){this.spriteText?this.spriteText.textShadowOffsetY=t:this._textShadowOffsetY=t}setTextShadowOffsetY(t){return this.textShadowOffsetY=t,this}get angle(){return this.spriteText?this.spriteText.angle:this._angle}set angle(t){this.spriteText?this.spriteText.angle=t:this._angle=t}setAngle(t){return this.angle=t,this}get scale(){return this.spriteText?this.spriteText.textScale:this._scale}set scale(t){this.spriteText?this.spriteText.textScale=t:this._scale=t}setScale(t){return this.scale=t,this}get underline(){return this.spriteText?this.spriteText.underline:this._underline}set underline(t){this.spriteText?this.spriteText.underline=t:this._underline=t}setUnderline(t){this.underline=t}getTypeName(){return"MxDbText"}worldDraw(t){if(this.text.length>0){t.getType()!==McGiWorldDrawType.kWorldDraw||this.spriteText||this.createSpriteText(),this.color!==this.spriteText.color&&(this.spriteText.color=this.color),this.spriteText.material.setValues({opacity:this.opacity,visible:this.visible});const{x:e,y:i,z:s}=this.position;this.spriteText.position.set(e,i,s),t.drawEntity(this.spriteText)}}createSpriteText(){const t=getSpriteTextClass(),{text:e,height:i,color:s,backgroundColor:r,padding:o,borderWidth:h,borderRadius:x,borderColor:n,strokeWidth:d,strokeColor:p,fontFace:a,fontSize:l,fontWeight:T,textAlign:g,textShadowBlur:u,textShadowColor:f,textShadowOffsetX:S,textShadowOffsetY:w,angle:c,scale:C,underline:b}=this;this.spriteText=new t({text:e,textHeight:i,color:s,backgroundColor:r,padding:o,borderWidth:h,borderRadius:x,borderColor:n,strokeWidth:d,strokeColor:p,fontFace:a,fontSize:l,fontWeight:T,textAlign:g,textShadowBlur:u,textShadowColor:f,textShadowOffsetX:S,textShadowOffsetY:w,angle:c,scale:C,underline:b})}getGripPoints(){return[this.position]}moveGripPointsAt(t,e){return 0===t&&this.position.add(e),!0}create(){return new MxDbText}dwgIn(t){return this.onDwgIn(t),this.dwgInHelp(t,propertyDbKeys),t.type===MxType.MxCloneType.kMxFileClone||t.type===MxType.MxCloneType.kSaveDwgClone?this.createSpriteText():this.spriteText=t.spriteText,!0}dwgOut(t){return this.onDwgOut(t),this.dwgOutHelp(t,propertyDbKeys),t.type===MxType.MxCloneType.kMxFileClone||t.type===MxType.MxCloneType.kSaveDwgClone?t.spriteText=void 0:t.spriteText=this.spriteText,t}getGeomExtents(){return(new THREE.Box3).expandByObject(this.spriteText)}erase(){return super.erase(),this.spriteText&&this.spriteText.dispose(),!0}};
@@ -1,6 +1,8 @@
1
1
  export declare type SpriteTextColorType = THREE.Color | string | number | CanvasGradient | CanvasPattern | undefined;
2
2
  export declare type SpriteTextClass = typeof SpriteText;
3
3
  export declare type SpriteTextObj = SpriteText;
4
+ export declare type TextFontWeight = 'normal' | 'bold' | 'lighter' | 'bolder' | 'inherit' | number;
5
+ export declare type TextFontStyle = 'normal' | 'italic' | 'oblique';
4
6
  declare class SpriteText extends THREE.Sprite {
5
7
  constructor(options?: SpriteTextOptions);
6
8
  text: string;
@@ -13,7 +15,7 @@ declare class SpriteText extends THREE.Sprite {
13
15
  borderColor: SpriteTextColorType;
14
16
  fontFace: string;
15
17
  fontSize: number;
16
- fontWeight: string;
18
+ fontWeight: TextFontWeight;
17
19
  strokeWidth: number;
18
20
  strokeColor: SpriteTextColorType;
19
21
  textAlign: CanvasTextAlign;
@@ -23,6 +25,9 @@ declare class SpriteText extends THREE.Sprite {
23
25
  textShadowOffsetY: number;
24
26
  angle: number;
25
27
  textScale: number;
28
+ underline: boolean;
29
+ fontStyle: TextFontStyle;
30
+ fontVariant: string;
26
31
  private _genCanvas;
27
32
  dispose(): void;
28
33
  }
@@ -39,7 +44,7 @@ export interface SpriteTextOptions {
39
44
  strokeColor?: SpriteTextColorType;
40
45
  fontFace?: string;
41
46
  fontSize?: number;
42
- fontWeight?: string;
47
+ fontWeight?: TextFontWeight;
43
48
  textAlign?: CanvasTextAlign;
44
49
  textBaseline?: CanvasTextBaseline;
45
50
  textShadowBlur?: number;
@@ -48,7 +53,11 @@ export interface SpriteTextOptions {
48
53
  textShadowOffsetY?: number;
49
54
  angle?: number;
50
55
  scale?: number;
56
+ underline?: boolean;
57
+ fontStyle?: TextFontStyle;
58
+ fontVariant?: string;
51
59
  }
52
60
  export declare function getSpriteTextColor(color: SpriteTextColorType): string | CanvasGradient | CanvasPattern;
61
+ export declare function toCSSFont(family: string, size: number | string, style: string, variant: string, weight: string): string;
53
62
  export declare function getSpriteTextClass(): SpriteTextClass;
54
63
  export {};
@@ -1 +1 @@
1
- let _SpriteText;export function getSpriteTextColor(t){return t?t instanceof THREE.Color?t.getStyle():"number"==typeof t?new THREE.Color(t).getStyle():t:"#fff"};export function getSpriteTextClass(){if(!_SpriteText){class t extends THREE.Sprite{constructor(t){super(new THREE.SpriteMaterial);const{text:e,textHeight:i,color:o,backgroundColor:s,padding:h,borderWidth:r,borderRadius:a,borderColor:n,strokeWidth:d,strokeColor:l,fontFace:g,fontSize:x,fontWeight:f,textAlign:_,textShadowBlur:c,textShadowColor:S,textShadowOffsetX:u,textShadowOffsetY:C,angle:w,scale:p}=t||{};this._text=`${e}`,this._textHeight=i||10,this._color=o,this._backgroundColor=s,this._padding=h||0,this._borderWidth=r||0,this._borderRadius=a||0,this._borderColor=n||"white",this._strokeWidth=d||0,this._strokeColor=l||"white",this._fontFace=g||"Arial",this._fontSize=x||90,this._fontWeight=f||"normal",this._textAlign=_||"start",this._textShadowBlur=c||0,this._textShadowColor=S,this._textShadowOffsetX=u||0,this._textShadowOffsetY=C||0,this._angle=w||0,this._textScale=p||1,this._canvas=document.createElement("canvas"),this._genCanvas()}get text(){return this._text}set text(t){this._text=t,this._genCanvas()}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t,this._genCanvas()}get color(){return this._color}set color(t){this._color=t,this._genCanvas()}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this._genCanvas()}get padding(){return this._padding}set padding(t){this._padding=t,this._genCanvas()}get borderWidth(){return this._borderWidth}set borderWidth(t){this._borderWidth=t,this._genCanvas()}get borderRadius(){return this._borderRadius}set borderRadius(t){this._borderRadius=t,this._genCanvas()}get borderColor(){return this._borderColor}set borderColor(t){this._borderColor=t,this._genCanvas()}get fontFace(){return this._fontFace}set fontFace(t){this._fontFace=t,this._genCanvas()}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t,this._genCanvas()}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight=t,this._genCanvas()}get strokeWidth(){return this._strokeWidth}set strokeWidth(t){this._strokeWidth=t,this._genCanvas()}get strokeColor(){return this._strokeColor}set strokeColor(t){this._strokeColor=t,this._genCanvas()}get textAlign(){return this._textAlign}set textAlign(t){this._textAlign=t,this._genCanvas()}get textShadowBlur(){return this._textShadowBlur}set textShadowBlur(t){this._textShadowBlur=t,this._genCanvas()}get textShadowColor(){return this._textShadowColor}set textShadowColor(t){this._textShadowColor=t,this._genCanvas()}get textShadowOffsetX(){return this._textShadowOffsetX}set textShadowOffsetX(t){this._textShadowOffsetX=t,this._genCanvas()}get textShadowOffsetY(){return this._textShadowOffsetY}set textShadowOffsetY(t){this._textShadowOffsetY=t,this._genCanvas()}get angle(){return this._angle}set angle(t){this._angle=t,this._genCanvas()}get textScale(){return this._textScale}set textScale(t){this._textScale=t,this._genCanvas()}_genCanvas(){const t=this._canvas,e=t.getContext("2d"),i=Array.isArray(this.borderWidth)?this.borderWidth:[this.borderWidth,this.borderWidth],o=i.map(t=>t*this.fontSize*.1),s=(Array.isArray(this.borderRadius)?this.borderRadius:[this.borderRadius,this.borderRadius,this.borderRadius,this.borderRadius]).map(t=>t*this.fontSize*.1),h=Array.isArray(this.padding)?this.padding:[this.padding,this.padding],r=h.map(t=>t*this.fontSize*.1),a=this.text.split("\n"),n=`${this.fontWeight} ${this.fontSize}px ${this.fontFace}`;e.font=n;const d=Math.max(...a.map(t=>e.measureText(t).width)),l=this.fontSize*a.length;if(t.width=d+2*o[0]+2*r[0],t.height=l+2*o[1]+2*r[1],this.borderWidth){if(e.strokeStyle=getSpriteTextColor(this.borderColor),o[0]){const i=o[0]/2;e.lineWidth=o[0],e.beginPath(),e.moveTo(i,s[0]),e.lineTo(i,t.height-s[3]),e.moveTo(t.width-i,s[1]),e.lineTo(t.width-i,t.height-s[2]),e.stroke()}if(o[1]){const i=o[1]/2;e.lineWidth=o[1],e.beginPath(),e.moveTo(Math.max(o[0],s[0]),i),e.lineTo(t.width-Math.max(o[0],s[1]),i),e.moveTo(Math.max(o[0],s[3]),t.height-i),e.lineTo(t.width-Math.max(o[0],s[2]),t.height-i),e.stroke()}if(this.borderRadius){const i=Math.max(...o),h=i/2;e.lineWidth=i,e.beginPath(),[!!s[0]&&[s[0],h,h,s[0]],!!s[1]&&[t.width-s[1],t.width-h,h,s[1]],!!s[2]&&[t.width-s[2],t.width-h,t.height-h,t.height-s[2]],!!s[3]&&[s[3],h,t.height-h,t.height-s[3]]].filter(t=>t).forEach(t=>{const[i,o,s,h]=t;e.moveTo(i,s),e.quadraticCurveTo(o,s,o,h)}),e.stroke()}}this.backgroundColor&&(e.fillStyle=getSpriteTextColor(this.backgroundColor),this.borderRadius?(e.beginPath(),e.moveTo(o[0],s[0]),[[o[0],s[0],t.width-s[1],o[1],o[1],o[1]],[t.width-o[0],t.width-o[0],t.width-o[0],o[1],s[1],t.height-s[2]],[t.width-o[0],t.width-s[2],s[3],t.height-o[1],t.height-o[1],t.height-o[1]],[o[0],o[0],o[0],t.height-o[1],t.height-s[3],s[0]]].forEach(([t,i,o,s,h,r])=>{e.quadraticCurveTo(t,s,i,h),e.lineTo(o,r)}),e.closePath(),e.fill()):e.fillRect(o[0],o[1],t.width-2*o[0],t.height-2*o[1])),e.translate(o[0],o[1]),e.translate(r[0],r[1]),e.font=n,e.fillStyle=getSpriteTextColor(this.color),e.textBaseline="bottom",e.shadowBlur=this.textShadowBlur,e.shadowColor=new THREE.Color(this.textShadowColor).getStyle(),e.shadowOffsetX=this.textShadowOffsetX,e.shadowOffsetY=this.textShadowOffsetY;const g=this.strokeWidth>0;g&&(e.lineWidth=this.strokeWidth*this.fontSize/10,e.strokeStyle=getSpriteTextColor(this.strokeColor));const x="center"===this.textAlign,f="start"===this.textAlign||"left"===this.textAlign;a.forEach((t,i)=>{let o=x?2:1;const s=f?0:(d-e.measureText(t).width)/o,h=(i+1)*this.fontSize;g&&e.strokeText(t,s,h),e.fillText(t,s,h)}),this.material.map&&this.material.map.dispose();const _=this.material.map=new THREE.Texture(t);_.minFilter=THREE.LinearFilter,_.needsUpdate=!0;const c=this.textHeight*a.length+2*i[1]+2*h[1],S=c*t.width/t.height;this.scale.set(S,c,this.scale.z),this.material.rotation=this.angle,this.scale.applyMatrix4((new THREE.Matrix4).makeScale(this.textScale,this.textScale,1))}clone(){return new(0,this.constructor)(this.text,this.textHeight,this.color).copy(this)}copy(t){return THREE.Sprite.prototype.copy.call(this,t),this.color=t.color,this.backgroundColor=t.backgroundColor,this.padding=t.padding,this.borderWidth=t.borderWidth,this.borderColor=t.borderColor,this.fontFace=t.fontFace,this.fontSize=t.fontSize,this.fontWeight=t.fontWeight,this.strokeWidth=t.strokeWidth,this.strokeColor=t.strokeColor,this.textAlign=t.textAlign,this.textShadowBlur=t.textShadowBlur,this.textShadowColor=t.textShadowColor,this.textShadowOffsetX=t.textShadowOffsetX,this.textShadowOffsetY=t.textShadowOffsetY,this.angle=t.angle,this.textScale=t.textScale,this}dispose(){var t;null===(t=this.material.map)||void 0===t||t.dispose(),this.material.dispose(),this.geometry.dispose(),this.dispatchEvent({type:"dispose"})}}_SpriteText=t}return _SpriteText};
1
+ var __awaiter=this&&this.__awaiter||function(t,e,i,o){return new(i||(i=Promise))(function(s,h){function r(t){try{a(o.next(t))}catch(t){h(t)}}function n(t){try{a(o.throw(t))}catch(t){h(t)}}function a(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(r,n)}a((o=o.apply(t,e||[])).next())})};let _SpriteText;export function getSpriteTextColor(t){return t?t instanceof THREE.Color?t.getStyle():"number"==typeof t?new THREE.Color(t).getStyle():t:"#fff"};export function toCSSFont(t,e,i,o,s){let h=document.createElement("span");return h.style.font="1px serif",h.style.fontFamily=t,h.style.fontSize=`${e}px`,h.style.fontStyle=i,h.style.fontVariant=o,h.style.fontWeight=s,h.style.font};export function getSpriteTextClass(){if(!_SpriteText){class t extends THREE.Sprite{constructor(t){super(new THREE.SpriteMaterial);const{text:e,textHeight:i,color:o,backgroundColor:s,padding:h,borderWidth:r,borderRadius:n,borderColor:a,strokeWidth:d,strokeColor:l,fontFace:g,fontSize:f,fontWeight:c,textAlign:_,textShadowBlur:u,textShadowColor:x,textShadowOffsetX:S,textShadowOffsetY:C,angle:w,scale:p,underline:b,fontStyle:v,fontVariant:m}=t||{};this._text=`${e}`,this._textHeight=i||10,this._color=o,this._backgroundColor=s,this._padding=h||0,this._borderWidth=r||0,this._borderRadius=n||0,this._borderColor=a||"white",this._strokeWidth=d||0,this._strokeColor=l||"white",this._fontFace=g||"Arial",this._fontSize=f||90,this._fontWeight=(null===c||void 0===c?void 0:c.toString())||"normal",this._textAlign=_||"start",this._fontStyle=v||"normal",this._fontVariant=m||"normal",this._textShadowBlur=u||0,this._textShadowColor=x,this._textShadowOffsetX=S||0,this._textShadowOffsetY=C||0,this._angle=w||0,this._textScale=p||1,this._underline=b||!1,this._canvas=document.createElement("canvas"),this._genCanvas()}get text(){return this._text}set text(t){this._text=t,this._genCanvas()}get textHeight(){return this._textHeight}set textHeight(t){this._textHeight=t,this._genCanvas()}get color(){return this._color}set color(t){this._color=t,this._genCanvas()}get backgroundColor(){return this._backgroundColor}set backgroundColor(t){this._backgroundColor=t,this._genCanvas()}get padding(){return this._padding}set padding(t){this._padding=t,this._genCanvas()}get borderWidth(){return this._borderWidth}set borderWidth(t){this._borderWidth=t,this._genCanvas()}get borderRadius(){return this._borderRadius}set borderRadius(t){this._borderRadius=t,this._genCanvas()}get borderColor(){return this._borderColor}set borderColor(t){this._borderColor=t,this._genCanvas()}get fontFace(){return this._fontFace}set fontFace(t){this._fontFace=t,this._genCanvas()}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize=t,this._genCanvas()}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight=t,this._genCanvas()}get strokeWidth(){return this._strokeWidth}set strokeWidth(t){this._strokeWidth=t,this._genCanvas()}get strokeColor(){return this._strokeColor}set strokeColor(t){this._strokeColor=t,this._genCanvas()}get textAlign(){return this._textAlign}set textAlign(t){this._textAlign=t,this._genCanvas()}get textShadowBlur(){return this._textShadowBlur}set textShadowBlur(t){this._textShadowBlur=t,this._genCanvas()}get textShadowColor(){return this._textShadowColor}set textShadowColor(t){this._textShadowColor=t,this._genCanvas()}get textShadowOffsetX(){return this._textShadowOffsetX}set textShadowOffsetX(t){this._textShadowOffsetX=t,this._genCanvas()}get textShadowOffsetY(){return this._textShadowOffsetY}set textShadowOffsetY(t){this._textShadowOffsetY=t,this._genCanvas()}get angle(){return this._angle}set angle(t){this._angle=t,this._genCanvas()}get textScale(){return this._textScale}set textScale(t){this._textScale=t,this._genCanvas()}get underline(){return this._underline}set underline(t){this._underline=t,this._genCanvas()}get fontStyle(){return this._fontStyle}set fontStyle(t){this._fontStyle=t,this._genCanvas()}get fontVariant(){return this._fontVariant}set fontVariant(t){this._fontVariant=t,this._genCanvas()}_genCanvas(){const t=this._canvas,e=t.getContext("2d"),i=Array.isArray(this.borderWidth)?this.borderWidth:[this.borderWidth,this.borderWidth],o=i.map(t=>t*this.fontSize*.1),s=(Array.isArray(this.borderRadius)?this.borderRadius:[this.borderRadius,this.borderRadius,this.borderRadius,this.borderRadius]).map(t=>t*this.fontSize*.1),h=Array.isArray(this.padding)?this.padding:[this.padding,this.padding],r=h.map(t=>t*this.fontSize*.1),n=this.text.split("\n"),a=this.font;e.font=a;const d=Math.max(...n.map(t=>e.measureText(t).width)),l=4*this.strokeWidth+(this.underline?this.fontSize/15*4:this.fontSize/15),g=(this.fontSize+l)*n.length;if(t.width=d+2*o[0]+2*r[0],t.height=g+2*o[1]+2*r[1],this.borderWidth){if(e.strokeStyle=getSpriteTextColor(this.borderColor),o[0]){const i=o[0]/2;e.lineWidth=o[0],e.beginPath(),e.moveTo(i,s[0]),e.lineTo(i,t.height-s[3]),e.moveTo(t.width-i,s[1]),e.lineTo(t.width-i,t.height-s[2]),e.stroke()}if(o[1]){const i=o[1]/2;e.lineWidth=o[1],e.beginPath(),e.moveTo(Math.max(o[0],s[0]),i),e.lineTo(t.width-Math.max(o[0],s[1]),i),e.moveTo(Math.max(o[0],s[3]),t.height-i),e.lineTo(t.width-Math.max(o[0],s[2]),t.height-i),e.stroke()}if(this.borderRadius){const i=Math.max(...o),h=i/2;e.lineWidth=i,e.beginPath(),[!!s[0]&&[s[0],h,h,s[0]],!!s[1]&&[t.width-s[1],t.width-h,h,s[1]],!!s[2]&&[t.width-s[2],t.width-h,t.height-h,t.height-s[2]],!!s[3]&&[s[3],h,t.height-h,t.height-s[3]]].filter(t=>t).forEach(t=>{const[i,o,s,h]=t;e.moveTo(i,s),e.quadraticCurveTo(o,s,o,h)}),e.stroke()}}this.backgroundColor&&(e.fillStyle=getSpriteTextColor(this.backgroundColor),this.borderRadius?(e.beginPath(),e.moveTo(o[0],s[0]),[[o[0],s[0],t.width-s[1],o[1],o[1],o[1]],[t.width-o[0],t.width-o[0],t.width-o[0],o[1],s[1],t.height-s[2]],[t.width-o[0],t.width-s[2],s[3],t.height-o[1],t.height-o[1],t.height-o[1]],[o[0],o[0],o[0],t.height-o[1],t.height-s[3],s[0]]].forEach(([t,i,o,s,h,r])=>{e.quadraticCurveTo(t,s,i,h),e.lineTo(o,r)}),e.closePath(),e.fill()):e.fillRect(o[0],o[1],t.width-2*o[0],t.height-2*o[1])),e.translate(o[0],o[1]),e.translate(r[0],r[1]),e.font=a,e.fillStyle=getSpriteTextColor(this.color),e.textBaseline="bottom",e.shadowBlur=this.textShadowBlur,e.shadowColor=new THREE.Color(this.textShadowColor).getStyle(),e.shadowOffsetX=this.textShadowOffsetX,e.shadowOffsetY=this.textShadowOffsetY;const f=this.strokeWidth>0;f&&(e.lineWidth=this.strokeWidth*this.fontSize/10,e.strokeStyle=getSpriteTextColor(this.strokeColor));const c="center"===this.textAlign,_="start"===this.textAlign||"left"===this.textAlign;n.forEach((t,i)=>__awaiter(this,void 0,void 0,function*(){let o=c?2:1;const s=e.measureText(t).width,h=_?0:(d-s)/o,r=(i+1)*(this.fontSize+l);f&&e.strokeText(t,h,r),e.fillText(t,h,r),this.underline&&e.fillRect(h,r,s,this.fontSize/15)})),this.material.map&&this.material.map.dispose();const u=this.material.map=new THREE.Texture(t);u.minFilter=THREE.LinearFilter,u.needsUpdate=!0;const x=this.textHeight*n.length+2*i[1]+2*h[1],S=x*t.width/t.height;this.scale.set(S,x,this.scale.z),this.material.rotation=this.angle,this.scale.applyMatrix4((new THREE.Matrix4).makeScale(this.textScale,this.textScale,1))}clone(){return new(0,this.constructor)(this.text,this.textHeight,this.color).copy(this)}copy(t){return THREE.Sprite.prototype.copy.call(this,t),this.color=t.color,this.backgroundColor=t.backgroundColor,this.padding=t.padding,this.borderWidth=t.borderWidth,this.borderColor=t.borderColor,this.fontFace=t.fontFace,this.fontSize=t.fontSize,this.fontWeight=t.fontWeight,this.strokeWidth=t.strokeWidth,this.strokeColor=t.strokeColor,this.textAlign=t.textAlign,this.textShadowBlur=t.textShadowBlur,this.textShadowColor=t.textShadowColor,this.textShadowOffsetX=t.textShadowOffsetX,this.textShadowOffsetY=t.textShadowOffsetY,this.angle=t.angle,this.textScale=t.textScale,this}get font(){return toCSSFont(this.fontFace,this.fontSize,this.fontStyle,this.fontVariant,this.fontWeight)}checkFontFace(){try{const{fontFace:t}=this;return document.fonts.check(t)}catch(t){}return!0}loadFontFace(){return __awaiter(this,void 0,void 0,function*(){try{const{fontFace:t}=this;yield document.fonts.load(t)}catch(t){}})}dispose(){var t;null===(t=this.material.map)||void 0===t||t.dispose(),this.material.dispose(),this.geometry.dispose(),this.dispatchEvent({type:"dispose"})}}_SpriteText=t}return _SpriteText};
@@ -856,4 +856,13 @@ export default class MxDrawObject {
856
856
  * ```
857
857
  */
858
858
  getMxObjectImplement(): any;
859
+ /**
860
+ * 得到所有布局名
861
+ * @example
862
+ * ```typescript
863
+ *
864
+ *
865
+ * ```
866
+ */
867
+ getAllLayoutName(): string[];
859
868
  }
@@ -1 +1 @@
1
- var __awaiter=this&&this.__awaiter||function(e,r,t,o){return new(t||(t=Promise))(function(n,a){function d(e){try{s(o.next(e))}catch(e){a(e)}}function i(e){try{s(o.throw(e))}catch(e){a(e)}}function s(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(d,i)}s((o=o.apply(e,r||[])).next())})};import MxCADObject from"../MxCADObject";import MxDbDatabase from"../MxDbDatabase";import MxThreeJS from"../MxThreeJS";export default class MxDrawObject{constructor(e){this._mxdrawObj=e}getScene(){return this._mxdrawObj.getScene()}getCamera(){return this._mxdrawObj.getCamera()}getRenderer(){return this._mxdrawObj.renderer}setMouseRightRotate(e=!0){return this._mxdrawObj.setMouseRightRotate(e)}getFullDisplayRange(){return this._mxdrawObj.getFullDisplayRange()}getCanvas(){return this._mxdrawObj.getCanvas()}updateDisplay(){return this._mxdrawObj.updateDisplay()}createCanvasImageData(e,r){return this._mxdrawObj.createCanvasImageData(e,r)}setViewColor(e){return this._mxdrawObj.setViewColor(e)}setSize(e,r){return this._mxdrawObj.setSize(e,r)}getIntersectObjects(e){return this._mxdrawObj.getIntersectObjects(e)}addObject(e,r=!0){return this._mxdrawObj.addObject(e,r)}addViewObject(e){return this._mxdrawObj.addViewObject(e)}getViewWidth(){return this._mxdrawObj.getViewWidth()}getViewHeight(){return this._mxdrawObj.getViewHeight()}removeObject(e,r=!0){return this._mxdrawObj.removeObject(e,r)}zoomInitialStates(){return this._mxdrawObj.zoomInitialStates()}zoomScale(e){return this._mxdrawObj.zoomScale(e)}zoomW(e,r,t){return this._mxdrawObj.zoomW(e,r,t)}zoomCenter(e,r){return this._mxdrawObj.zoomCenter(e,r)}initZoomW(e,r){return this._mxdrawObj.initZoomW(e,r)}addEvent(e,r){return this._mxdrawObj.addEvent(e,r)}on(e,r){return this._mxdrawObj.addEvent(e,r)}setIniset(e){return this._mxdrawObj.setIniset(e)}screenCoord2World(e,r,t){return this._mxdrawObj.screenCoord2World(e,r,t)}worldCoord2Screen(e,r,t){return this._mxdrawObj.worldCoord2Screen(e,r,t)}screenCoord2Doc(e,r){return this._mxdrawObj.screenCoord2Doc(e,r,0)}worldCoordLong2Doc(e){return this._mxdrawObj.worldCoordLong2Doc(e)}docCoordLong2World(e){return this._mxdrawObj.docCoordLong2World(e)}docCoord2World(e,r,t){return this._mxdrawObj.docCoord2World(e,r,t)}docCoord2World2(e){return this._mxdrawObj.docCoord2World(e.x,e.y,e.z)}worldCoord2Doc(e,r,t){return this._mxdrawObj.worldCoord2Doc(e,r,t)}worldCoord2Doc2(e){return this._mxdrawObj.worldCoord2Doc(e.x,e.y,e.z)}docCoord2Screen(e,r){return this._mxdrawObj.docCoord2Screen(e,r,0)}screenCoordLong2Doc(e){return this._mxdrawObj.screenCoordLong2Doc(e)}docCoordLong2Screen(e){return this._mxdrawObj.docCoordLong2Screen(e)}screenCoordLong2World(e){return this._mxdrawObj.screenCoordLong2World(e)}worldCoordLong2Screen(e){return this._mxdrawObj.worldCoordLong2Screen(e)}initRendererParam(e){return this._mxdrawObj.initRendererParam(e)}addMxEntity(e){return this._mxdrawObj.addMxEntity(e)}getMxCurrentSelect(){let e=this._mxdrawObj.getMxAllSelect();return 0==e.length&&(e=this._mxdrawObj.getPrvCommandSelect()),e}addMxCurrentSelect(e){return this._mxdrawObj.addMxCurrentSelect(e)}clearMxCurrentSelect(){return this._mxdrawObj.clearMxCurrentSelect()}getMxEntity(e){return this._mxdrawObj.getMxEntityUserObject(e)}findMxEntityAtPoint(e,r,t){return this._mxdrawObj.findMxEntityAtPoint(e,r,t)}getAllMxEntity(){return this._mxdrawObj.getAllMxEntity()}setMouseMiddlePan(e){return this._mxdrawObj.setMouseMiddlePan(e)}resetThreeJSControls(){return this._mxdrawObj.resetThreeJSControls()}enableZoom(e){return this._mxdrawObj.enableZoom(e)}enablePan(e){return this._mxdrawObj.enablePan(e)}eraseMxEntity(e){return this._mxdrawObj.eraseMxEntity(e)}removeViewObject(e){this._mxdrawObj.removeViewObject(e)}saveMxEntityToJson(e){return JSON.stringify(this._mxdrawObj.saveMxEntityToJson(e))}saveMxEntityToObject(e){return this._mxdrawObj.saveMxEntityToJson(e)}loadMxEntityFromJson(e,r=null){return __awaiter(this,void 0,void 0,function*(){if(r){let e=r.length;for(let t=0;t<e;t++)yield MxThreeJS.loadSVG(r[t])}return this.getAllMxEntity().forEach(e=>{for(let r in e)Reflect.deleteProperty(e,r)}),"string"==typeof e?this._mxdrawObj.loadMxEntityFromJson(JSON.parse(e)):this._mxdrawObj.loadMxEntityFromJson(e)})}eraseAllMxEntity(){return this._mxdrawObj.eraseAllMxEntity()}makeCurrent(){this._mxdrawObj.makeCurrent()}getViewCenterDocCoord(){return this._mxdrawObj.getViewCenterDocCoord()}updateCanvasSize(){this._mxdrawObj.updateCanvasSize()}newFile(e,r,t,o){return this._mxdrawObj.newFile(e,r,t,o)}stopAllLoading(){this._mxdrawObj.stopAllLoading()}getOrbitControls(){return this._mxdrawObj.getOrbitControls()}enableViewControls(e){return this._mxdrawObj.enableViewControls(e)}getMxDatabase(){return new MxDbDatabase(this._mxdrawObj.getMxDatabase())}setZoomSpeed(e){return this._mxdrawObj.setZoomSpeed(e)}getMxCAD(){let e=this._mxdrawObj.getMxCAD();return new MxCADObject(e)}resetRenderer(){return this._mxdrawObj.resetRenderer()}setRequestHeader(e){return this._mxdrawObj.setRequestHeader(e)}closeWebSocket(){return this._mxdrawObj.closeWebSocket()}cadCoord2Doc(e,r,t){return this._mxdrawObj.cadCoord2Doc(e,r,t)}docCoord2Cad(e,r,t){return this._mxdrawObj.docCoord2Cad(e,r,t)}setViewAngle(e){return this._mxdrawObj.setViewAngle(e)}getViewAngle(){return this._mxdrawObj.getViewAngle()}getSysVar(e){return this._mxdrawObj.sysVariable().getSysVar()}setSysVar(e,r){return this._mxdrawObj.sysVariable().setSysVar(e,r)}isMxCAD(){return this._mxdrawObj.isMxCAD()}getMxObjectImplement(){return this._mxdrawObj}};
1
+ var __awaiter=this&&this.__awaiter||function(e,r,t,o){return new(t||(t=Promise))(function(n,a){function d(e){try{s(o.next(e))}catch(e){a(e)}}function i(e){try{s(o.throw(e))}catch(e){a(e)}}function s(e){var r;e.done?n(e.value):(r=e.value,r instanceof t?r:new t(function(e){e(r)})).then(d,i)}s((o=o.apply(e,r||[])).next())})};import MxCADObject from"../MxCADObject";import MxDbDatabase from"../MxDbDatabase";import MxThreeJS from"../MxThreeJS";export default class MxDrawObject{constructor(e){this._mxdrawObj=e}getScene(){return this._mxdrawObj.getScene()}getCamera(){return this._mxdrawObj.getCamera()}getRenderer(){return this._mxdrawObj.renderer}setMouseRightRotate(e=!0){return this._mxdrawObj.setMouseRightRotate(e)}getFullDisplayRange(){return this._mxdrawObj.getFullDisplayRange()}getCanvas(){return this._mxdrawObj.getCanvas()}updateDisplay(){return this._mxdrawObj.updateDisplay()}createCanvasImageData(e,r){return this._mxdrawObj.createCanvasImageData(e,r)}setViewColor(e){return this._mxdrawObj.setViewColor(e)}setSize(e,r){return this._mxdrawObj.setSize(e,r)}getIntersectObjects(e){return this._mxdrawObj.getIntersectObjects(e)}addObject(e,r=!0){return this._mxdrawObj.addObject(e,r)}addViewObject(e){return this._mxdrawObj.addViewObject(e)}getViewWidth(){return this._mxdrawObj.getViewWidth()}getViewHeight(){return this._mxdrawObj.getViewHeight()}removeObject(e,r=!0){return this._mxdrawObj.removeObject(e,r)}zoomInitialStates(){return this._mxdrawObj.zoomInitialStates()}zoomScale(e){return this._mxdrawObj.zoomScale(e)}zoomW(e,r,t){return this._mxdrawObj.zoomW(e,r,t)}zoomCenter(e,r){return this._mxdrawObj.zoomCenter(e,r)}initZoomW(e,r){return this._mxdrawObj.initZoomW(e,r)}addEvent(e,r){return this._mxdrawObj.addEvent(e,r)}on(e,r){return this._mxdrawObj.addEvent(e,r)}setIniset(e){return this._mxdrawObj.setIniset(e)}screenCoord2World(e,r,t){return this._mxdrawObj.screenCoord2World(e,r,t)}worldCoord2Screen(e,r,t){return this._mxdrawObj.worldCoord2Screen(e,r,t)}screenCoord2Doc(e,r){return this._mxdrawObj.screenCoord2Doc(e,r,0)}worldCoordLong2Doc(e){return this._mxdrawObj.worldCoordLong2Doc(e)}docCoordLong2World(e){return this._mxdrawObj.docCoordLong2World(e)}docCoord2World(e,r,t){return this._mxdrawObj.docCoord2World(e,r,t)}docCoord2World2(e){return this._mxdrawObj.docCoord2World(e.x,e.y,e.z)}worldCoord2Doc(e,r,t){return this._mxdrawObj.worldCoord2Doc(e,r,t)}worldCoord2Doc2(e){return this._mxdrawObj.worldCoord2Doc(e.x,e.y,e.z)}docCoord2Screen(e,r){return this._mxdrawObj.docCoord2Screen(e,r,0)}screenCoordLong2Doc(e){return this._mxdrawObj.screenCoordLong2Doc(e)}docCoordLong2Screen(e){return this._mxdrawObj.docCoordLong2Screen(e)}screenCoordLong2World(e){return this._mxdrawObj.screenCoordLong2World(e)}worldCoordLong2Screen(e){return this._mxdrawObj.worldCoordLong2Screen(e)}initRendererParam(e){return this._mxdrawObj.initRendererParam(e)}addMxEntity(e){return this._mxdrawObj.addMxEntity(e)}getMxCurrentSelect(){let e=this._mxdrawObj.getMxAllSelect();return 0==e.length&&(e=this._mxdrawObj.getPrvCommandSelect()),e}addMxCurrentSelect(e){return this._mxdrawObj.addMxCurrentSelect(e)}clearMxCurrentSelect(){return this._mxdrawObj.clearMxCurrentSelect()}getMxEntity(e){return this._mxdrawObj.getMxEntityUserObject(e)}findMxEntityAtPoint(e,r,t){return this._mxdrawObj.findMxEntityAtPoint(e,r,t)}getAllMxEntity(){return this._mxdrawObj.getAllMxEntity()}setMouseMiddlePan(e){return this._mxdrawObj.setMouseMiddlePan(e)}resetThreeJSControls(){return this._mxdrawObj.resetThreeJSControls()}enableZoom(e){return this._mxdrawObj.enableZoom(e)}enablePan(e){return this._mxdrawObj.enablePan(e)}eraseMxEntity(e){return this._mxdrawObj.eraseMxEntity(e)}removeViewObject(e){this._mxdrawObj.removeViewObject(e)}saveMxEntityToJson(e){return JSON.stringify(this._mxdrawObj.saveMxEntityToJson(e))}saveMxEntityToObject(e){return this._mxdrawObj.saveMxEntityToJson(e)}loadMxEntityFromJson(e,r=null){return __awaiter(this,void 0,void 0,function*(){if(r){let e=r.length;for(let t=0;t<e;t++)yield MxThreeJS.loadSVG(r[t])}return this.getAllMxEntity().forEach(e=>{for(let r in e)Reflect.deleteProperty(e,r)}),"string"==typeof e?this._mxdrawObj.loadMxEntityFromJson(JSON.parse(e)):this._mxdrawObj.loadMxEntityFromJson(e)})}eraseAllMxEntity(){return this._mxdrawObj.eraseAllMxEntity()}makeCurrent(){this._mxdrawObj.makeCurrent()}getViewCenterDocCoord(){return this._mxdrawObj.getViewCenterDocCoord()}updateCanvasSize(){this._mxdrawObj.updateCanvasSize()}newFile(e,r,t,o){return this._mxdrawObj.newFile(e,r,t,o)}stopAllLoading(){this._mxdrawObj.stopAllLoading()}getOrbitControls(){return this._mxdrawObj.getOrbitControls()}enableViewControls(e){return this._mxdrawObj.enableViewControls(e)}getMxDatabase(){return new MxDbDatabase(this._mxdrawObj.getMxDatabase())}setZoomSpeed(e){return this._mxdrawObj.setZoomSpeed(e)}getMxCAD(){let e=this._mxdrawObj.getMxCAD();return new MxCADObject(e)}resetRenderer(){return this._mxdrawObj.resetRenderer()}setRequestHeader(e){return this._mxdrawObj.setRequestHeader(e)}closeWebSocket(){return this._mxdrawObj.closeWebSocket()}cadCoord2Doc(e,r,t){return this._mxdrawObj.cadCoord2Doc(e,r,t)}docCoord2Cad(e,r,t){return this._mxdrawObj.docCoord2Cad(e,r,t)}setViewAngle(e){return this._mxdrawObj.setViewAngle(e)}getViewAngle(){return this._mxdrawObj.getViewAngle()}getSysVar(e){return this._mxdrawObj.sysVariable().getSysVar()}setSysVar(e,r){return this._mxdrawObj.sysVariable().setSysVar(e,r)}isMxCAD(){return this._mxdrawObj.isMxCAD()}getMxObjectImplement(){return this._mxdrawObj}getAllLayoutName(){return this._mxdrawObj.getAllLayoutName()}};