import{computeBounding}from"../../tools/three/index";import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import{addRegisterMxDbEntity}from"../../tools/registerMxDbEntity";class MxDbHatch extends MxDbEntity{constructor(){super(...arguments),this.points=[]}worldDraw(t){t.getType()===McGiWorldDrawType.kWorldDraw?t.drawSolid(this.points):t.drawLines([...this.points,this.points[0]])}getTypeName(){return"MxDbHatch"}moveGripPointsAt(t,i){return 0===t?this.points.forEach(t=>{t.add(i)}):this.points[t-1]&&this.points[t-1].add(i),!0}setPoints(t){this.points=t.map(t=>t.clone())}getGripPoints(){if(this.points.length>0){const{centerPoint:t}=computeBounding(this.points);return[t,...this.points]}return[]}dwgIn(t){this.onDwgIn(t);const i=t.points;return this.points=i.map(({x:t,y:i,z:o})=>new THREE.Vector3(t,i,o)),!0}dwgOut(t){return this.onDwgOut(t),t.points=this.points,t}}addRegisterMxDbEntity(MxDbHatch);export default MxDbHatch;