--- /dev/null
+package tim.prune.save;
+
+import java.awt.image.BufferedImage;
+
+import tim.prune.data.DoubleRange;
+
+
+/**
+ * Class to represent the result of the MapGrouter's assembly of map tiles
+ * into a single image. Includes information about how complete the result is.
+ */
+public class GroutedImage
+{
+ private BufferedImage _image = null;
+ private int _numTilesFound = 0;
+ private int _numTilesMissing = 0;
+ private DoubleRange _xRange = null;
+ private DoubleRange _yRange = null;
+
+ /**
+ * Constructor
+ * @param inImage image, or null if no image possible
+ * @param inTilesUsed number of tiles used
+ * @param inTilesMissing number of tiles which could not be found
+ */
+ public GroutedImage(BufferedImage inImage, int inTilesUsed, int inTilesMissing)
+ {
+ _image = inImage;
+ _numTilesFound = inTilesUsed;
+ _numTilesMissing = inTilesMissing;
+ }
+
+ /**
+ * @return true if any content at all was found
+ */
+ public boolean isValid() {
+ return _image != null && _numTilesFound > 0;
+ }
+
+ /**
+ * @return the pixel dimensions of the result image
+ */
+ public int getImageSize()
+ {
+ if (_image == null) {return -1;}
+ return _image.getWidth();
+ }
+
+ /**
+ * @return the image object
+ */
+ public BufferedImage getImage() {
+ return _image;
+ }
+
+ /**
+ * @return the number of tiles used in the image
+ */
+ public int getNumTilesUsed() {
+ return _numTilesFound;
+ }
+
+ /**
+ * @return the number of tiles which could not be found, leaving gaps in the image
+ */
+ public int getNumTilesMissing() {
+ return _numTilesMissing;
+ }
+
+ /**
+ * @return the total number of tiles
+ */
+ public int getNumTilesTotal() {
+ return _numTilesFound + _numTilesMissing;
+ }
+
+ /**
+ * @param inRange x range of data
+ */
+ public void setXRange(DoubleRange inRange) {
+ _xRange = inRange;
+ }
+
+ /**
+ * @return x range of data
+ */
+ public DoubleRange getXRange() {
+ return _xRange;
+ }
+
+ /**
+ * @param inRange y range of data
+ */
+ public void setYRange(DoubleRange inRange) {
+ _yRange = inRange;
+ }
+
+ /**
+ * @return y range of data
+ */
+ public DoubleRange getYRange() {
+ return _yRange;
+ }
+}