--- /dev/null
+package tim.prune.threedee;
+
+/**
+ * Holds the definition of the terrain to use
+ * (whether or not to use a terrain, and the resolution)
+ */
+public class TerrainDefinition
+{
+ private boolean _useTerrain = false;
+ private int _gridSize = 0;
+
+ /**
+ * Empty constructor specifying no terrain
+ */
+ public TerrainDefinition()
+ {
+ this(false, 0);
+ }
+
+ /**
+ * Constructor
+ * @param inUse true to use a terrain
+ * @param inGridSize size of grid
+ */
+ public TerrainDefinition(boolean inUse, int inGridSize)
+ {
+ setUseTerrain(inUse, inGridSize);
+ }
+
+ /**
+ * Set the parameters
+ * @param inUse true to use a terrain
+ * @param inGridSize size of grid
+ */
+ public void setUseTerrain(boolean inUse, int inGridSize)
+ {
+ _useTerrain = inUse;
+ _gridSize = inGridSize;
+ }
+
+ /**
+ * @return true if terrain should be used, false otherwise
+ */
+ public boolean getUseTerrain() {
+ return _useTerrain && _gridSize > 2;
+ }
+
+ /**
+ * @return grid size
+ */
+ public int getGridSize() {
+ return _gridSize;
+ }
+
+ @Override
+ /**
+ * Compare two TerrainDefinitions to see if they're equal
+ */
+ public boolean equals(Object obj)
+ {
+ if (obj == null || !(obj instanceof TerrainDefinition)) {
+ return false;
+ }
+ TerrainDefinition other = (TerrainDefinition) obj;
+ return _useTerrain == other._useTerrain
+ && _gridSize == other._gridSize;
+ }
+}