mxdraw 0.1.157 → 0.1.159
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 +1 -0
- package/dist/lib/MxModule/MxDbEntity/Events.d.ts +14 -0
- package/dist/lib/MxModule/MxDbEntity/Events.js +1 -0
- package/dist/lib/MxModule/MxDbEntity/index.d.ts +15 -13
- package/dist/lib/MxModule/MxDbEntity/index.js +1 -1
- package/dist/lib/MxModule/MxDbText/MxDbText.js +1 -1
- package/dist/lib/MxModule/MxDbText/SpriteText.js +1 -1
- package/dist/lib/MxModule/MxDrawObject/index.d.ts +10 -7
- package/dist/lib/MxModule/MxFun/index.d.ts +20 -2
- package/dist/lib/MxModule/MxFun/index.js +1 -1
- package/dist/lib/MxModule/MxFun/initEvents.d.ts +2 -0
- package/dist/lib/MxModule/MxFun/initEvents.js +1 -0
- package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +1 -1
- package/dist/lib/MxModule/store/Pubsub.d.ts +7 -5
- package/dist/lib/MxModule/store/Pubsub.js +1 -1
- package/dist/lib/MxModule.d.ts +1245 -1209
- package/dist/lib/mxdraw.d.ts +5 -5
- package/dist/mxdraw.es.js +1 -1
- package/dist/mxdraw.umd.js +1 -1
- package/package.json +6 -12
package/README.md
CHANGED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import PubSub, { EventType } from "../store/Pubsub";
|
|
2
|
+
export declare class Events<T extends Record<EventType, unknown>> extends PubSub<T> {
|
|
3
|
+
/**
|
|
4
|
+
* 添加一个事件处理
|
|
5
|
+
* @returns void
|
|
6
|
+
*/
|
|
7
|
+
addEvent: <Key extends keyof T>(event: Key, callback: import("../store/Pubsub").Handler<T[keyof T]>) => void;
|
|
8
|
+
/**
|
|
9
|
+
* 删除一个事件处理
|
|
10
|
+
* @returns void
|
|
11
|
+
*/
|
|
12
|
+
removeEvent: <Key extends keyof T>(event: Key, callback?: import("../store/Pubsub").Handler<T[keyof T]> | undefined) => void;
|
|
13
|
+
protected callEvent: <Key extends keyof T>(event: number | Key, data?: T[Key] | undefined) => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import PubSub from"../store/Pubsub";export class Events extends PubSub{constructor(){super(...arguments),this.addEvent=this.on,this.removeEvent=this.off,this.callEvent=this.emit}};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import McGiWorldDraw from '../McGiWorldDraw';
|
|
2
2
|
import MxDrawObject from '../MxDrawObject';
|
|
3
3
|
import MxType, { MxColorType, UnstableColor } from '../MxType';
|
|
4
|
+
import { Events } from './Events';
|
|
4
5
|
export declare enum DataType {
|
|
5
6
|
Default = 0,
|
|
6
7
|
Color = 1,
|
|
@@ -11,6 +12,19 @@ export declare enum DataType {
|
|
|
11
12
|
Matrix4 = 6
|
|
12
13
|
}
|
|
13
14
|
export declare const MXDBDATATYPE = "datatype";
|
|
15
|
+
export declare type MxDbEntityEventsType = {
|
|
16
|
+
"onStartGripEidt": void;
|
|
17
|
+
"onEndGripEidt": void;
|
|
18
|
+
};
|
|
19
|
+
export declare type DOMEventsType = {
|
|
20
|
+
"click": void;
|
|
21
|
+
"hover": void;
|
|
22
|
+
"mousemove": void;
|
|
23
|
+
"mouseout": void;
|
|
24
|
+
"mouseover": void;
|
|
25
|
+
"mousedown": void;
|
|
26
|
+
"mouseup": void;
|
|
27
|
+
};
|
|
14
28
|
/**
|
|
15
29
|
* MxDbEntity 用于构建一个自定义对象的抽象类(该类无法实例化 请通过继承的方式对其抽象方法进行实现)
|
|
16
30
|
* @description MxDbEntity 属于 abstract class(抽象类) 主要用途是通过继承这个类实现一个用于动态绘制的图形对象
|
|
@@ -31,7 +45,7 @@ export declare const MXDBDATATYPE = "datatype";
|
|
|
31
45
|
* }
|
|
32
46
|
* ```
|
|
33
47
|
*/
|
|
34
|
-
export default abstract class MxDbEntity {
|
|
48
|
+
export default abstract class MxDbEntity extends Events<MxDbEntityEventsType & DOMEventsType> {
|
|
35
49
|
constructor();
|
|
36
50
|
/** 该类注册的cmd命令名称 */
|
|
37
51
|
static cmd: string;
|
|
@@ -71,7 +85,6 @@ export default abstract class MxDbEntity {
|
|
|
71
85
|
dDashArray: number;
|
|
72
86
|
dDashRatio: number;
|
|
73
87
|
layer: string;
|
|
74
|
-
private _event;
|
|
75
88
|
abstract getTypeName(): string;
|
|
76
89
|
initGuid(guid: string): void;
|
|
77
90
|
/**
|
|
@@ -134,7 +147,6 @@ export default abstract class MxDbEntity {
|
|
|
134
147
|
key: string;
|
|
135
148
|
default: any;
|
|
136
149
|
})[]): any;
|
|
137
|
-
protected callEvent(sEventName: string, param?: any): any;
|
|
138
150
|
/**
|
|
139
151
|
* 新创建一个自定义对象 (默认调用该对象的构造函数来创建新的对象)
|
|
140
152
|
* @param { T } options
|
|
@@ -353,16 +365,6 @@ export default abstract class MxDbEntity {
|
|
|
353
365
|
* @returns string
|
|
354
366
|
*/
|
|
355
367
|
onStartGripEidt(): any;
|
|
356
|
-
/**
|
|
357
|
-
* 添加一个事件处理
|
|
358
|
-
* @returns void
|
|
359
|
-
*/
|
|
360
|
-
addEvent(name: string, fun: object): void;
|
|
361
|
-
/**
|
|
362
|
-
* 删除一个事件处理
|
|
363
|
-
* @returns void
|
|
364
|
-
*/
|
|
365
|
-
removeEvent(name: string): void;
|
|
366
368
|
/**
|
|
367
369
|
* 把一个对象变成一个json字体串.
|
|
368
370
|
* @returns void
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(t,e,i,r){return new(i||(i=Promise))(function(s,a){function n(t){try{h(r.next(t))}catch(t){a(t)}}function o(t){try{h(r.throw(t))}catch(t){a(t)}}function h(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(n,o)}h((r=r.apply(t,e||[])).next())})};import _ from"lodash";import MxFun from"../MxFun";import MxPaintBrush from"../MxPaintBrush";import MxType from"../MxType";import store from"../store";export var DataType;!function(t){t[t.Default=0]="Default",t[t.Color=1]="Color",t[t.Vector2=2]="Vector2",t[t.Vector3=3]="Vector3",t[t.Vector4=4]="Vector4",t[t.Matrix3=5]="Matrix3",t[t.Matrix4=6]="Matrix4"}(DataType||(DataType={}));export const MXDBDATATYPE="datatype";const propertyDbKeys=["color","renderOrder","opacity","visible","userData","sGuid","dLineWidth","lineWidthByPixels","dDashArray","dDashRatio","layer"];function getDwgKeyVal(t,e){let i,r="";return _.isObject(e)?(i=e.default,r=e.key):"string"==typeof e&&(r=e),[r,void 0===t[r]?i:t[r]]}export default class MxDbEntity{constructor(){this.color=16777215,this.renderOrder=30,this.opacity=1,this.visible=!0,this.userData={},this.sGuid="",this.dLineWidth=0,this.lineWidthByPixels=!0,this.dDashArray=0,this.dDashRatio=0,this.layer=""
|
|
1
|
+
var __awaiter=this&&this.__awaiter||function(t,e,i,r){return new(i||(i=Promise))(function(s,a){function n(t){try{h(r.next(t))}catch(t){a(t)}}function o(t){try{h(r.throw(t))}catch(t){a(t)}}function h(t){var e;t.done?s(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(n,o)}h((r=r.apply(t,e||[])).next())})};import _ from"lodash";import MxFun from"../MxFun";import MxPaintBrush from"../MxPaintBrush";import MxType from"../MxType";import store from"../store";import{Events}from"./Events";export var DataType;!function(t){t[t.Default=0]="Default",t[t.Color=1]="Color",t[t.Vector2=2]="Vector2",t[t.Vector3=3]="Vector3",t[t.Vector4=4]="Vector4",t[t.Matrix3=5]="Matrix3",t[t.Matrix4=6]="Matrix4"}(DataType||(DataType={}));export const MXDBDATATYPE="datatype";const propertyDbKeys=["color","renderOrder","opacity","visible","userData","sGuid","dLineWidth","lineWidthByPixels","dDashArray","dDashRatio","layer"];function getDwgKeyVal(t,e){let i,r="";return _.isObject(e)?(i=e.default,r=e.key):"string"==typeof e&&(r=e),[r,void 0===t[r]?i:t[r]]}export default class MxDbEntity extends Events{constructor(){super(),this.color=16777215,this.renderOrder=30,this.opacity=1,this.visible=!0,this.userData={},this.sGuid="",this.dLineWidth=0,this.lineWidthByPixels=!0,this.dDashArray=0,this.dDashRatio=0,this.layer="";const t=this.constructor;t.isPaintBrushDraw&&(MxPaintBrush.use(this),t.isPaintBrushDraw=!1)}static register(){const t=this;t.isRegister||(t.cmd&&t.draw&&MxFun.addCommand(t.cmd,t.draw),(new t).rxInit(),t.isRegister=!0)}static use(){return __awaiter(this,void 0,void 0,function*(){this.register(),this.isPaintBrushDraw=!0,this.cmd&&MxFun.sendStringToExecute(this.cmd)})}initGuid(t){this.sGuid.length>0?console.log("mx: init guid error"):this.sGuid=t}dwgInHelp(t,e,i){let r=this;const s=t.type===MxType.MxCloneType.kMxFileClone||t.type===MxType.MxCloneType.kSaveDwgClone,a=t=>{if(!t)return;const{value:e,[MXDBDATATYPE]:r}=t;switch(r){case DataType.Color:return new THREE.Color(...e);case DataType.Vector2:return new THREE.Vector2(...e);case DataType.Vector3:return new THREE.Vector3(...e);case DataType.Vector4:return new THREE.Vector4(...e);case DataType.Matrix3:return(new THREE.Matrix3).fromArray(e);case DataType.Matrix4:return(new THREE.Matrix4).fromArray(e)}return i&&i.getCacheVal?i.getCacheVal(t):void 0};function n(t){return t instanceof THREE.Color||t instanceof THREE.Vector2||t instanceof THREE.Vector3||t instanceof THREE.Vector4||t instanceof THREE.Matrix3||t instanceof THREE.Matrix4?t.clone():i&&i.getVal?i.getVal(t):void 0}return e.forEach(e=>{const[i,o]=getDwgKeyVal(t,e);r[i]=_.cloneDeepWith(o,s?a:n)}),!0}dwgOutHelp(t,e){const i=t=>t instanceof THREE.Color?{[MXDBDATATYPE]:DataType.Color,value:t.toArray()}:t instanceof THREE.Vector2?{[MXDBDATATYPE]:DataType.Vector2,value:t.toArray()}:t instanceof THREE.Vector3?{[MXDBDATATYPE]:DataType.Vector3,value:t.toArray()}:t instanceof THREE.Vector4?{[MXDBDATATYPE]:DataType.Vector4,value:t.toArray()}:t instanceof THREE.Matrix3?{[MXDBDATATYPE]:DataType.Matrix3,value:t.toArray()}:t instanceof THREE.Matrix4?{[MXDBDATATYPE]:DataType.Matrix4,value:t.toArray()}:void 0;let r=this;const s=t.type===MxType.MxCloneType.kMxFileClone||t.type===MxType.MxCloneType.kSaveDwgClone;return e.forEach(e=>{const[a,n]=getDwgKeyVal(r,e);t[a]=s?_.cloneDeepWith(n,i):n}),t}create(t){return new(0,this.constructor)(t)}transformBy(t){}getGeomExtents(){return null}getClosestPointTo(t,e=0){return null}getImp(){return this.MxDbEntityImp}setNeedUpdateDisplay(t){let e=this.getImp();return!!e&&(t?e.upDisplay():e.setDirtyDisplay(!0),!0)}getMxObject(){let t=this.getImp();return t?t.getMxObject():null}onViewChange(){return!1}objectId(){let t=this.getImp();return t?t.objectId():0}erase(){let t=this.getImp();return!!t&&t.erase()}setLayer(t){let e=this.getImp();e&&e.nodifySetLayer(),this.layer=t}getLayer(){return this.layer}setColor(t){return this.color=t,this}getColor(){return this.color||16777215}clone(t){let e=this.create(),i={type:t||MxType.MxCloneType.kClone};return this.dwgOut(i),e.dwgIn(i),e.sGuid="",e}onDwgIn(t){this.color=t.color,this.renderOrder=t.renderOrder,this.opacity=t.opacity,this.visible=t.visible,t.userData?this.userData=JSON.parse(JSON.stringify(t.userData)):this.userData={},this.dLineWidth=t.lineWidth,this.lineWidthByPixels=t.lineWidthByPixels,this.dDashArray=t.dashArray,this.dDashRatio=t.dashRatio,this.layer=t.layer,t.guid&&(this.sGuid=t.guid)}onDwgOut(t){t.color=this.color,t.renderOrder=this.renderOrder,t.opacity=this.opacity,t.visible=this.visible,t.lineWidth=this.dLineWidth,t.lineWidthByPixels=this.lineWidthByPixels,t.dashArray=this.dDashArray,t.dashRatio=this.dDashRatio,t.layer=this.layer,t.guid=this.sGuid,Object.keys(this.userData).length>0&&(t.userData=this.userData)}rxInit(){store.state.MxFun.initMxDbEntityType(this)}setRenderOrder(t){this.renderOrder=t}getRenderOrder(){return this.renderOrder}setLineWidthByPixels(t){return this.lineWidthByPixels=t,this}getLineWidthByPixels(){return this.lineWidthByPixels}setLineWidth(t){return this.dLineWidth=t,this}getLineWidth(){return this.dLineWidth}getGetLength(){return 0}setDashLen(t){let e=this.getGetLength();if(e<1e-6||t<1e-6)return this;let i=Math.floor(e/t);return i<1e-6&&(this.dDashRatio=0),this.dDashArray=1/i,this}setDashRatio(t){return this.dDashRatio=t,this}setDashArray(t){return this.dDashArray=t,this}setDash(t,e){return this.dDashArray=t,this.dDashRatio=e,0==this.dLineWidth&&(this.dLineWidth=6,this.lineWidthByPixels=!0),this}getDash(){return{dDashArray:this.dDashArray,dDashRatio:this.dDashRatio}}setDashLineDisplay(t){return t?(this.dDashArray<1e-5&&(this.dDashArray=.03),this.dDashRatio<1e-5&&(this.dDashRatio=.1),0==this.dLineWidth&&(this.dLineWidth=6,this.lineWidthByPixels=!0)):(this.dDashArray=0,this.dDashRatio=0),this}isDashLineDisplay(){return this.dDashArray>0&&this.dDashRatio>0}guid(){return this.sGuid}onEndGripEidt(){this.callEvent("onEndGripEidt")}onStartGripEidt(){return this.callEvent("onStartGripEidt")}toJsonString(t=MxType.MxCloneType.kMxFileClone){let e={type:t};return this.dwgOut(e),e.TypeName=this.getTypeName(),JSON.stringify(e)}fromJsonString(t){let e=JSON.parse(t);return(e.type==MxType.MxCloneType.kMxFileClone||e.type==MxType.MxCloneType.kClone)&&this.dwgIn(e)}};MxDbEntity.isRegister=!1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import MxType from"../MxType";import drawMxDbText from"./draw";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:b,underline:C}=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:b,underline:C})}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}};MxDbText.cmd="Mx_Text",MxDbText.draw=drawMxDbText;
|
|
1
|
+
import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import MxType from"../MxType";import drawMxDbText from"./draw";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:b,underline:C}=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:b,underline:C})}getGripPoints(){return[this.position]}moveGripPointsAt(t,e){return 0===t&&this.position.add(e),!0}create(){return new MxDbText}dwgIn(t){var e,i;return this.onDwgIn(t),this.dwgInHelp(t,propertyDbKeys),"string"==typeof t.path&&(t.path=JSON.parse(t.path)),"Curve.toJSON"===(null===(i=null===(e=null===t||void 0===t?void 0:t.path)||void 0===e?void 0:e.metadata)||void 0===i?void 0:i.generator)&&(t.path=(new THREE.Path).fromJSON(t.path)),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}};MxDbText.cmd="Mx_Text",MxDbText.draw=drawMxDbText;
|
|
@@ -1 +1 @@
|
|
|
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((i,o)=>__awaiter(this,void 0,void 0,function*(){let s=c?2:1;const h=e.measureText(i).width,r=_?0:(d-h)/s,n=(o+1)*(this.fontSize+l);f&&e.strokeText(i,r,n),e.fillText(i,r,n),this.underline&&e.fillRect(r,t.height-this.fontSize/25,h,this.fontSize/25)})),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};
|
|
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((i,o)=>__awaiter(this,void 0,void 0,function*(){let s=c?2:1;const h=e.measureText(i).width,r=_?0:(d-h)/s,n=(o+1)*(this.fontSize+l);f&&e.strokeText(i,r,n),e.fillText(i,r,n),this.underline&&e.fillRect(r,t.height-this.fontSize/25,h,this.fontSize/25)})),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(THREE.Sprite.prototype.clone.call(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};
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
import MxCADObject from '../MxCADObject';
|
|
3
3
|
import MxDbDatabase from '../MxDbDatabase';
|
|
4
4
|
import MxDbEntity from '../MxDbEntity';
|
|
5
|
+
import type { iniConfig } from '../MxFun';
|
|
5
6
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
|
|
6
7
|
export interface MxDrawObjectType {
|
|
7
8
|
renderer: THREE.WebGLRenderer;
|
|
8
9
|
addEvent(arg0: string, arg1: (...parmes: any) => any): void;
|
|
9
|
-
setIniset(arg0:
|
|
10
|
-
EnableOsnapFunction: boolean;
|
|
11
|
-
}): void;
|
|
10
|
+
setIniset(arg0: iniConfig): void;
|
|
12
11
|
getScene(): THREE.Scene;
|
|
13
12
|
getCamera(): THREE.Camera;
|
|
14
13
|
setMouseRightRotate(isRotate: boolean): void;
|
|
@@ -62,6 +61,11 @@ export interface MxDrawObjectType {
|
|
|
62
61
|
getViewCenterDocCoord(): THREE.Vector3;
|
|
63
62
|
updateCanvasSize(): void;
|
|
64
63
|
}
|
|
64
|
+
declare type Events = {
|
|
65
|
+
"loadComplete": [void];
|
|
66
|
+
"render": [void];
|
|
67
|
+
"addResizeEvent": [void];
|
|
68
|
+
};
|
|
65
69
|
/**
|
|
66
70
|
* 引入mxdraw库不会挂载MxDrawObject 只能在以下特定函数中获取
|
|
67
71
|
* @function
|
|
@@ -298,7 +302,7 @@ export default class MxDrawObject {
|
|
|
298
302
|
* Mx.MxFun.getCurrentDraw().addEvent("MxEntitySelectChange", (aryId:Array<number>)=> {})
|
|
299
303
|
* ```
|
|
300
304
|
*/
|
|
301
|
-
addEvent(eventNaem:
|
|
305
|
+
addEvent(eventNaem: keyof Events, fun: (...parmes: Events[keyof Events]) => any): void;
|
|
302
306
|
/**
|
|
303
307
|
* 移除事件函数。
|
|
304
308
|
* @param options { eventNaem: string, fun:any; }
|
|
@@ -337,9 +341,7 @@ export default class MxDrawObject {
|
|
|
337
341
|
*
|
|
338
342
|
* ```
|
|
339
343
|
*/
|
|
340
|
-
setIniset(options:
|
|
341
|
-
EnableOsnapFunction: boolean;
|
|
342
|
-
}): void;
|
|
344
|
+
setIniset(options: iniConfig): void;
|
|
343
345
|
/**
|
|
344
346
|
* 屏幕坐标到ThreeJS坐标
|
|
345
347
|
* @returns THREE.Vector3
|
|
@@ -935,3 +937,4 @@ export default class MxDrawObject {
|
|
|
935
937
|
*/
|
|
936
938
|
addControlsEvent(type: string, call: (event: any) => number, isFront?: boolean): number;
|
|
937
939
|
}
|
|
940
|
+
export {};
|
|
@@ -12,6 +12,25 @@ export interface CmdMangerType {
|
|
|
12
12
|
McEdGetPointWorldDrawObjectClass(): any;
|
|
13
13
|
getMrxDbgUiPrPointClass(): any;
|
|
14
14
|
}
|
|
15
|
+
/** 控件配置 **/
|
|
16
|
+
export interface iniConfig {
|
|
17
|
+
/** 启用智能选择 */
|
|
18
|
+
EnableIntelliSelect?: boolean;
|
|
19
|
+
/** 启动O 捕捉功能 */
|
|
20
|
+
EnableOsnapFunction?: boolean;
|
|
21
|
+
/** 启动夹点编辑 */
|
|
22
|
+
EnableGripEidt?: boolean;
|
|
23
|
+
/** 多选 */
|
|
24
|
+
multipleSelect?: boolean;
|
|
25
|
+
/**自动重置渲染器 */
|
|
26
|
+
autoResetRenderer?: boolean;
|
|
27
|
+
/** 更正大坐标 */
|
|
28
|
+
correctLargeCoordinates?: boolean;
|
|
29
|
+
/** 请求标头缓存控制 */
|
|
30
|
+
requestHeaderCacheControl?: boolean;
|
|
31
|
+
/** 选择方式控制 */
|
|
32
|
+
IntelliSelectType?: number;
|
|
33
|
+
}
|
|
15
34
|
export interface MxFunType {
|
|
16
35
|
createMxObject(canvasId: string, arg1: string | string[], arg2: (mxDraw: MxDrawObjectType) => void, is2d: boolean | undefined, isNewCreate?: boolean, isStaticLoad?: boolean, mapBox?: any, isCPPMxCAD?: boolean): void;
|
|
17
36
|
setMxServer(MXSERVER: string): void;
|
|
@@ -423,7 +442,7 @@ export declare class MxFunClass {
|
|
|
423
442
|
* })
|
|
424
443
|
* ```
|
|
425
444
|
*/
|
|
426
|
-
setIniset(iniObj:
|
|
445
|
+
setIniset(iniObj: iniConfig): void;
|
|
427
446
|
/**
|
|
428
447
|
* 更新图纸图层数据
|
|
429
448
|
* @param dataLayers
|
|
@@ -584,7 +603,6 @@ export declare class MxFunClass {
|
|
|
584
603
|
getMxEntity(id: number): MxDbEntity | undefined;
|
|
585
604
|
/**
|
|
586
605
|
* 得到当前鼠标位置,返回的是屏幕坐标 。
|
|
587
|
-
* @returns 返MxDbEntity
|
|
588
606
|
* @example
|
|
589
607
|
* ```typescript
|
|
590
608
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createReandomId}from"../../tools/algorithm/random";import{createCanvas,createCanvasParent}from"../../tools/dom/create";import MxDrawObject from"../MxDrawObject";import store from"../store";import useCanvasResizeListener from"../useCanvasResizeListener";import MrxDbgUiPrPoint from"../MrxDbgUiPrPoint";import mxDefaultUiData from"../loadCoreCode/mxUiData";import MxDbDatabase from"../MxDbDatabase";import MxCADObject from"../MxCADObject";let mxUiData=mxDefaultUiData;export class MxFunClass{constructor(){this.listenForUpdateCursor=(e=>{mxUiData.mountUpdateCursorFun(e)})}createMxObject({canvasId:e=createReandomId(),cadFile:t="",callback:r,isNewFile:
|
|
1
|
+
import{createReandomId}from"../../tools/algorithm/random";import{createCanvas,createCanvasParent}from"../../tools/dom/create";import MxDrawObject from"../MxDrawObject";import store from"../store";import useCanvasResizeListener from"../useCanvasResizeListener";import MrxDbgUiPrPoint from"../MrxDbgUiPrPoint";import mxDefaultUiData from"../loadCoreCode/mxUiData";import MxDbDatabase from"../MxDbDatabase";import MxCADObject from"../MxCADObject";import{initEvents}from"./initEvents";let mxUiData=mxDefaultUiData;export class MxFunClass{constructor(){this.listenForUpdateCursor=(e=>{mxUiData.mountUpdateCursorFun(e)})}createMxObject({canvasId:e=createReandomId(),cadFile:t="",callback:r,isNewFile:n=!1,useWebsocket:o=!1,isAutoResize:a=!0,mapBox:s,isMxCAD:i=!1,userIdentitySign:d="emptyUserIdentity",isCPPMxCAD:u=!1}){if(this.initUiDataObject(mxUiData),!o&&n&&(n=!1),s){const e=s.canvas;store.state.MxFun.createMxObject(e,t,t=>{let n=new MxDrawObject(t);t.setIniset({EnableOsnapFunction:!0}),r&&r(n,{canvas:e,canvasParent:void 0})},void 0,n,o,s)}else if(u){const t=createCanvas(e),n=createCanvasParent(t);n.parentNode&&11!=n.parentNode.nodeType||document.body.appendChild(n);let o=!0;store.state.MxFun.createMxObject(e,"",e=>{let o=new MxDrawObject(e);e.setMouseRightRotate(!1),e.setIniset({EnableOsnapFunction:!0}),e.addEvent("onResize",()=>(n.tabindex=3,{width:n.clientWidth,height:n.clientHeight})),a&&useCanvasResizeListener(o,t),r&&r(o,{canvas:t,canvasParent:n})},o,!1,!1,void 0,u)}else{const s=createCanvas(e),u=createCanvasParent(s);u.parentNode&&11!=u.parentNode.nodeType||document.body.appendChild(u);let c=void 0;i&&(c=!0,o=!0),store.state.MxFun.createMxObject(e,t,e=>{let t=new MxDrawObject(e);if(i){const t=2;0==d.length&&(d="invalidUserIdentity"),e.initRunMode(t),e.initUserLoginData(d,"")}e.setMouseRightRotate(!1),e.setIniset({EnableOsnapFunction:!0}),e.addEvent("onResize",()=>(u.tabindex=3,{width:u.clientWidth,height:u.clientHeight})),a&&useCanvasResizeListener(t,s),initEvents(s),r&&r(t,{canvas:s,canvasParent:u})},c,n,o,void 0)}}setMxServer(e="ws://localhost:5090"){store.state.MxFun.setMxServer(e)}enablStaticLoad(e){store.state.MxFun.enablStaticLoad(e)}setStaticServer(e){store.state.MxFun.setStaticServer(e)}addCommand(e,t){store.state.MxFun.addCommand(e,t)}sendStringToExecute(e,...t){return store.state.MxFun.sendStringToExecute(e,...t)}call(e,t,r){return store.state.MxFun.call(e,t,r)}getCurrentDraw(){return new MxDrawObject(store.state.MxFun.getCurrentDraw())}getCurrentDatabase(){let e=store.state.MxFun.getCurrentDraw();return new MxDbDatabase(e.getMxDatabase())}screenCoordLong2World(e){return store.state.MxFun.screenCoordLong2World(e)}screenCoordLong2Doc(e){return store.state.MxFun.screenCoordLong2Doc(e)}docCoordLong2Screen(e){return store.state.MxFun.docCoordLong2Screen(e)}worldCoordLong2Doc(e){return store.state.MxFun.worldCoordLong2Doc(e)}docCoordLong2World(e){return store.state.MxFun.docCoordLong2World(e)}screenCoord2World(e,t,r){return store.state.MxFun.screenCoord2World(e,t,r)}worldCoord2Screen(e,t,r){return store.state.MxFun.worldCoord2Screen(e,t,r)}docCoord2World(e,t,r){return store.state.MxFun.docCoord2World(e,t,r)}worldCoord2Doc(e,t,r){return store.state.MxFun.worldCoord2Doc(e,t,r)}screenCoord2Doc(e,t){return store.state.MxFun.screenCoord2Doc(e,t,0)}docCoord2Screen(e,t){return store.state.MxFun.docCoord2Screen(e,t,0)}updateDisplay(){return store.state.MxFun.updateDisplay()}addWindowsEvent(e){return store.state.MxFun.addWindowsEvent(e)}isRunningCommand(){return store.state.MxFun.isRunningCommand()}zoomW(e,t,r,n,o){return store.state.MxFun.zoomW(e,t,r,n,o)}showLayer(e,t,r){return store.state.MxFun.showLayer(e,t,r)}getCurrentMxCAD(){let e=store.state.MxFun.getCurrentMxCAD();return new MxCADObject(e)}getQueryString(e){return store.state.MxFun.getQueryString(e)}setIniset(e){return store.state.MxFun.setIniset(e)}upDisplayForLayerData(e){return store.state.MxFun.upDisplayForLayerData(e)}initUiDataObject(e){return mxUiData=e,store.state.MxFun.initUiDataObject(e)}getUIData(){return mxUiData}testMX(e){return 11}loadImageMaterial(e,t){return t?(store.state.MxFun.loadImageMaterial(e,t),new Promise((e,t)=>{e(null)})):new Promise((t,r)=>{store.state.MxFun.loadImageMaterial(e,e=>{t(e||null)})})}openFile(e,t=!1){return store.state.MxFun.openFile(e,t)}addToCurrentSpace(e){return this.getCurrentDraw().addMxEntity(e)}selectEnt(e,t=null){return new Promise((r,n)=>{const o=new MrxDbgUiPrPoint;o.setMessage(e),o.go(e=>{if(0!=e)return void r(0);const n=o.value();let a=this.getCurrentDraw().findMxEntityAtPoint(n),s=0;for(;0!=a.length;){let e=a.length;for(let r=0;r<e;r++){let e=a[r];if(!t||!t.type||t.type==e.getTypeName()){s=e.objectId();break}}break}r(s)})})}listenForCommandLineInput(e){mxUiData.getCmdLine().mountUpDisplayFun(e)}setCommandLineInputData(e,t){mxUiData.getCmdLine().setCmdText(e),mxUiData.onKeydown(t)}listenForCoordTip(e){mxUiData.mountSetCoordFun(e)}getMxFunTHREE(){return store.state.MxFun.getTHREE()}getMxFunThreeTool(){return store.state.MxFun.getMxThreeJS()}ceneratecursor(e=128,t=10,r=!0,n){return store.state.MxFun.ceneratecursor(e,t,r,n)}callCommand(e,t,r){return store.state.MxFun.callCommand(e,t,r)}cadCoord2Doc(e,t,r){return store.state.MxFun.cadCoord2Doc(e,t,r)}docCoord2Cad(e,t,r){return store.state.MxFun.docCoord2Cad(e,t,r)}getMxEntity(e){return store.state.MxFun.getMxEntity(e)}getCurrentMousePostion(){let e=store.state.MxFun.getCurrentMousePostion();return new THREE.Vector3(e.x,e.y,0)}stopRunCommand(){return store.state.MxFun.stopRunCommand()}initMxCpp(e){return store.state.MxFun.initMxCpp(e)}docCoordLong2Cad(e){return store.state.MxFun.docCoordLong2Cad(e)}cadCoordLong2Doc(e){return store.state.MxFun.cadCoordLong2Doc(e)}viewCoordLong2Cad(e){return store.state.MxFun.viewCoordLong2Cad(e)}cadCoordLong2View(e){return store.state.MxFun.cadCoordLong2View(e)}};const MxFun=new MxFunClass;export default MxFun;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import MxFun from".";export const initEvents=e=>{let t=[];["click","mousedown","mouseup"].forEach(o=>{e.addEventListener(o,()=>{t.forEach(e=>{e.emit(o)})})}),e.addEventListener("mousemove",()=>{const e=(()=>MxFun.getCurrentDraw().findMxEntityAtPoint(MxFun.getCurrentMousePostion(),!1))();e.forEach(e=>{e.emit("mousemove")}),0===e.length&&(t.length>0&&t.forEach(e=>{e.emit("mouseout")}),t=[]),0===t.length&&(t=e).forEach(e=>{e.emit("mouseover"),e.emit("hover")})})};
|