| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import Coordinate from '../geom/Coordinate'
- import SegmentPointComparator from './SegmentPointComparator'
- import Comparable from '../../../../java/lang/Comparable'
- export default class SegmentNode {
- constructor() {
- SegmentNode.constructor_.apply(this, arguments)
- }
- static constructor_() {
- this._segString = null
- this.coord = null
- this.segmentIndex = null
- this._segmentOctant = null
- this._isInterior = null
- const segString = arguments[0], coord = arguments[1], segmentIndex = arguments[2], segmentOctant = arguments[3]
- this._segString = segString
- this.coord = new Coordinate(coord)
- this.segmentIndex = segmentIndex
- this._segmentOctant = segmentOctant
- this._isInterior = !coord.equals2D(segString.getCoordinate(segmentIndex))
- }
- getCoordinate() {
- return this.coord
- }
- print(out) {
- out.print(this.coord)
- out.print(' seg # = ' + this.segmentIndex)
- }
- compareTo(obj) {
- const other = obj
- if (this.segmentIndex < other.segmentIndex) return -1
- if (this.segmentIndex > other.segmentIndex) return 1
- if (this.coord.equals2D(other.coord)) return 0
- if (!this._isInterior) return -1
- if (!other._isInterior) return 1
- return SegmentPointComparator.compare(this._segmentOctant, this.coord, other.coord)
- }
- isEndPoint(maxSegmentIndex) {
- if (this.segmentIndex === 0 && !this._isInterior) return true
- if (this.segmentIndex === maxSegmentIndex) return true
- return false
- }
- toString() {
- return this.segmentIndex + ':' + this.coord.toString()
- }
- isInterior() {
- return this._isInterior
- }
- get interfaces_() {
- return [Comparable]
- }
- }
|