IntervalRTreeBranchNode.js 818 B

1234567891011121314151617181920212223242526
  1. import IntervalRTreeNode from './IntervalRTreeNode'
  2. export default class IntervalRTreeBranchNode extends IntervalRTreeNode {
  3. constructor() {
  4. super()
  5. IntervalRTreeBranchNode.constructor_.apply(this, arguments)
  6. }
  7. static constructor_() {
  8. this._node1 = null
  9. this._node2 = null
  10. const n1 = arguments[0], n2 = arguments[1]
  11. this._node1 = n1
  12. this._node2 = n2
  13. this.buildExtent(this._node1, this._node2)
  14. }
  15. buildExtent(n1, n2) {
  16. this._min = Math.min(n1._min, n2._min)
  17. this._max = Math.max(n1._max, n2._max)
  18. }
  19. query(queryMin, queryMax, visitor) {
  20. if (!this.intersects(queryMin, queryMax))
  21. return null
  22. if (this._node1 !== null) this._node1.query(queryMin, queryMax, visitor)
  23. if (this._node2 !== null) this._node2.query(queryMin, queryMax, visitor)
  24. }
  25. }