package com.revolsys.geometry.model.vertex;
import java.util.NoSuchElementException;
import com.revolsys.geometry.model.Point;
public class PointVertex extends AbstractVertex {
private static final long serialVersionUID = 1L;
private int vertexIndex;
public PointVertex(final Point geometry, final int... vertexId) {
super(geometry);
setVertexId(vertexId);
}
@Override
public double getCoordinate(final int axisIndex) {
final Point point = getPoint();
return point.getCoordinate(axisIndex);
}
@Override
public double getOrientaton() {
return 0;
}
@Override
public Point getPoint() {
return (Point)getGeometry();
}
@Override
public int[] getVertexId() {
return new int[] {
0
};
}
@Override
public int getVertexIndex() {
return 0;
}
@Override
public double getX() {
final Point point = getPoint();
return point.getX();
}
@Override
public double getY() {
final Point point = getPoint();
return point.getY();
}
@Override
public boolean hasNext() {
final Point point = getPoint();
if (point == null || point.isEmpty()) {
return false;
} else if (this.vertexIndex == -1) {
return true;
} else {
return false;
}
}
@Override
public boolean isFrom() {
return true;
}
@Override
public Vertex next() {
if (hasNext()) {
this.vertexIndex++;
return this;
} else {
throw new NoSuchElementException();
}
}
@Override
public void remove() {
throw new UnsupportedOperationException("Removing vertices not supported");
}
public void setVertexId(final int... vertexId) {
if (vertexId.length == 1) {
this.vertexIndex = vertexId[0];
} else {
this.vertexIndex = 1;
}
}
}