import{addRegisterMxDbEntity}from"../../tools/registerMxDbEntity";import McGeTool from"../McGeTool";import McGiWorldDrawType from"../McGiWorldDrawType";import MxDbEntity from"../MxDbEntity";import MxDbHatch from"../MxDbHatch";import MxFun from"../MxFun";import MxThreeJS from"../MxThreeJS";import drawMxDbArea from"./draw";class MxDbArea extends MxDbEntity{constructor(){super(...arguments),this.points=[],this.isFill=!1,this.fillColor=6697540,this.fillOpacity=.7}getTypeName(){return"MxDbArea"}create(){return new MxDbArea}getDimText(){return McGeTool.calcArea(this.points).toFixed(2)}worldDraw(t){if(this.points.length<3)return void(2==this.points.length&&t.drawLine(this.points[0],this.points[1]));let i=this.points[0],r=i.clone(),e=i.clone(),o=this.points.length;for(let s=1;so.x&&(r.x=o.x),r.y>o.y&&(r.y=o.y),e.x=this.points.length)&&(this.points[t].add(i),!0)}dwgIn(t){this.onDwgIn(t);let i=t.points;return this.points=[],i.forEach(t=>{this.points.push(new THREE.Vector3(t.x,t.y,t.z))}),this.dwgInHelp(t,["isFill","fillColor","fillOpacity"]),!0}dwgOut(t){return this.onDwgOut(t),t.points=this.points,this.dwgOutHelp(t,["isFill","fillColor","fillOpacity"]),t}addPoint(t){this.points.push(t.clone())}getPoints(){return this.points}clearPoint(){this.points=[]}}MxDbArea.cmd="Mx_Area",MxDbArea.draw=drawMxDbArea,addRegisterMxDbEntity(MxDbArea);export default MxDbArea;