1 line
1.1 KiB
JavaScript
1 line
1.1 KiB
JavaScript
import{addRegisterMxDbEntity}from"../../tools/registerMxDbEntity";import{calculateArcAngle}from"../../tools/three";import MxDbEllipseShape from"../MxDbEllipseShape";import drawMxDbEllipseArc from"./draw";class MxDbEllipseArc extends MxDbEllipseShape{constructor(){super(),this._propertyDbKeys=[...this._propertyDbKeys,"startPoint","endPoint"]}getTypeName(){return"MxDbEllipseArc"}setStartPoint(t){return this.startPoint=t,this}setEndPoint(t){return this.endPoint=t,this}worldDraw(t){let{center:e,startPoint:i,endPoint:s}=this;i&&(this.xRadius=e.distanceTo(i),this.startAngle=THREE.MathUtils.degToRad(calculateArcAngle(i,e,this.xRadius).angle)),s&&(this.yRadius=e.distanceTo(s),this.endAngle=THREE.MathUtils.degToRad(calculateArcAngle(s,e,this.yRadius).angle)),this.drawEllipseShape(t)}getGripPoints(){return[this.center,this.startPoint,this.endPoint]}moveGripPointsAt(t,e){return 0===t&&(this.center.add(e),this.startPoint.add(e),this.endPoint.add(e)),1===t&&this.startPoint.add(e),2===t&&this.endPoint.add(e),!0}}MxDbEllipseArc.cmd="Mx_MxDbEllipseArc",MxDbEllipseArc.draw=drawMxDbEllipseArc,addRegisterMxDbEntity(MxDbEllipseArc);export default MxDbEllipseArc; |