import GeometryType from"./GeometryType.js";import SimpleGeometry from"./SimpleGeometry.js";import{containsXY,createOrUpdateFromCoordinate}from"../extent.js";import{deflateCoordinate}from"./flat/deflate.js";import{squaredDistance as squaredDx}from"../math.js";class Point extends SimpleGeometry{constructor(t,e){super(),this.setCoordinates(t,e)}clone(){const t=new Point(this.flatCoordinates.slice(),this.layout);return t.applyProperties(this),t}closestPointXY(t,e,o,r){var s=this.flatCoordinates,t=squaredDx(t,e,s[0],s[1]);if(t<r){var i=this.stride;for(let t=0;t<i;++t)o[t]=s[t];return o.length=i,t}return r}getCoordinates(){return this.flatCoordinates?this.flatCoordinates.slice():[]}computeExtent(t){return createOrUpdateFromCoordinate(this.flatCoordinates,t)}getType(){return GeometryType.POINT}intersectsExtent(t){return containsXY(t,this.flatCoordinates[0],this.flatCoordinates[1])}setCoordinates(t,e){this.setLayout(e,t,0),this.flatCoordinates||(this.flatCoordinates=[]),this.flatCoordinates.length=deflateCoordinate(this.flatCoordinates,0,t,this.stride),this.changed()}}export default Point;