public Set<Piece> getVision() {
		double circleX1 = (getX() - visionRadius);
		double circleY1 = (getY() - visionRadius);

		Ellipse2D circle = new Ellipse2D.Double(circleX1, circleY1,
				visionRadius * 2, visionRadius * 2);

		Set<Piece> piecesSet = new HashSet<Piece>();

		for (Piece piece : TDGame.getInstance().getPiecesManager().getPieces()) {
			if (piece == this)
				continue;
			if (!(circle.contains(piece.getPosition().asPoint())))
				continue;

			Vector2D temp = getPosition().subtract(piece.getPosition())
					.normalize();
			double targetAngle = temp.angleBetween(getDirection());

			if (targetAngle > this.visionAngle)
				continue;

			piecesSet.add(piece);
		}

		return piecesSet;
	}