@@ -0,0 +1,739 @@
+package com.planetmayo.debrief.satc.model.states;%0A%0Aimport com.vividsolutions.jts.geom.Polygon;%0A%0A/**%0A * class representing a bounded set of locations, stored as a polygon%0A * %0A * @author ian%0A * %0A */%0Apublic class LocationRange extends BaseRange%0A%7B%0A%09/** the range of locations we allow%0A%09 * %0A%09 */%0A%09private Polygon _myArea;%0A%0A%09public LocationRange(Polygon area)%0A%09%7B%0A%09%09_myArea = area;%0A%09%7D%0A%0A%09/**%0A%09 * copy constructor%0A%09 * %0A%09 * @param range%0A%09 */%0A%09public LocationRange(LocationRange range)%0A%09%7B%0A%09%09// TODO: this should do a deep copy, not a shallow copy%0A%09%09this(range._myArea);%0A%09%7D%0A%0A%09/** trim my area to the area provided%0A%09 * %0A%09 * @param sTwo%0A%09 */%0A%09public void constrainTo(LocationRange sTwo)%0A%09%7B%0A%09%09_myArea = (Polygon) _myArea.intersection(sTwo._myArea);%0A%09%7D%0A%7D%0A

introduce the location (polygon) bounds object