001package fr.aumgn.bukkitutils.geom.vector; 002 003import java.util.Iterator; 004import java.util.NoSuchElementException; 005 006import fr.aumgn.bukkitutils.geom.Vector2D; 007 008public class Vector2DIterator implements Iterator<Vector2D> { 009 010 private Vector2D min; 011 private Vector2D max; 012 private boolean hasNext; 013 private double nextX; 014 private double nextZ; 015 016 public Vector2DIterator(Vector2D min, Vector2D max) { 017 this.min = min; 018 this.max = max; 019 this.hasNext = true; 020 this.nextX = min.getX(); 021 this.nextZ = min.getZ(); 022 } 023 024 public boolean hasNext() { 025 return hasNext; 026 } 027 028 public Vector2D next() { 029 if (!hasNext) { 030 throw new NoSuchElementException(); 031 } 032 033 Vector2D answer = new Vector2D(nextX, nextZ); 034 if (++nextX <= max.getX()) { 035 return answer; 036 } 037 038 nextX = min.getX(); 039 if (++nextZ <= max.getZ()) { 040 return answer; 041 } 042 043 hasNext = false; 044 return answer; 045 } 046 047 @Override 048 public void remove() { 049 throw new UnsupportedOperationException(); 050 } 051}