UNPKG

node-red-contrib-tak-registration

Version:

A Node-RED node to register to TAK and to help wrap files as datapackages to send to TAK

70 lines (68 loc) 1.9 kB
import Geometry from './Geometry' import { BoundaryOp } from '../operation/boundary' import Lineal from './Lineal' import GeometryCollection from './GeometryCollection' import Dimension from './Dimension' export default class MultiLineString extends GeometryCollection { getSortIndex () { return Geometry.SORTINDEX_MULTILINESTRING } equalsExact () { if (arguments.length === 2) { const other = arguments[0] const tolerance = arguments[1] if (!this.isEquivalentClass(other)) { return false } return GeometryCollection.prototype.equalsExact.call(this, other, tolerance) } else return GeometryCollection.prototype.equalsExact.apply(this, arguments) } getBoundaryDimension () { if (this.isClosed()) { return Dimension.FALSE } return 0 } isClosed () { if (this.isEmpty()) { return false } for (var i = 0; i < this._geometries.length; i++) { if (!this._geometries[i].isClosed()) { return false } } return true } getDimension () { return 1 } reverse () { var nLines = this._geometries.length var revLines = new Array(nLines).fill(null) for (var i = 0; i < this._geometries.length; i++) { revLines[nLines - 1 - i] = this._geometries[i].reverse() } return this.getFactory().createMultiLineString(revLines) } getBoundary () { return new BoundaryOp(this).getBoundary() } getGeometryType () { return 'MultiLineString' } copy () { var lineStrings = new Array(this._geometries.length).fill(null) for (var i = 0; i < lineStrings.length; i++) { lineStrings[i] = this._geometries[i].copy() } return new MultiLineString(lineStrings, this._factory) } interfaces_ () { return [Lineal] } getClass () { return MultiLineString } static get serialVersionUID () { return 8166665132445433741 } }