import{addRegisterMxDbEntity}from"../../tools/registerMxDbEntity";import MxDbEntity from"../MxDbEntity";import draw from"./draw";class MxDbLine extends MxDbEntity{constructor(){super(...arguments),this.pt1=new THREE.Vector3,this.pt2=new THREE.Vector3}getTypeName(){return"MxDbLine"}worldDraw(t){t.drawLine(this.pt1,this.pt2)}setPoint1(t){this.pt1=t}getPoint1(){return this.pt1}setPoint2(t){this.pt2=t}getPoint2(){return this.pt2}getGripPoints(){let t=[];t.push(this.pt1),t.push(this.pt2);let i=new THREE.Vector3(this.pt1.x+.5*(this.pt2.x-this.pt1.x),this.pt1.y+.5*(this.pt2.y-this.pt1.y),0);return t.push(i),t}moveGripPointsAt(t,i){return 0==t?this.pt1.add(i):1==t?this.pt2.add(i):2==t&&(this.pt1.add(i),this.pt2.add(i)),!0}dwgIn(t){return this.onDwgIn(t),this.pt1.copy(t.pt1),this.pt2.copy(t.pt2),!0}dwgOut(t){return this.onDwgOut(t),t.pt1=this.pt1,t.pt2=this.pt2,t}create(){return new MxDbLine}getGeomExtents(){return new THREE.Box3(this.pt1,this.pt2)}getGetLength(){return this.pt1.distanceTo(this.pt2)}}MxDbLine.cmd="Mx_Line",MxDbLine.draw=draw,addRegisterMxDbEntity(MxDbLine);export default MxDbLine;