X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Fmisc%2FCartesian.java;h=23e588412024a2e16ad261d4a1ce5020f9aab919;hp=676a4cf3f597def00bcaf4ac18260f8cc8faad4e;hb=82f9b8d4a2fadb14cb004e5cc9f14944458f2e6c;hpb=189d68c64f7aaec90b7cdef0fb2c358fe4f0dd21 diff --git a/src/edu/berkeley/sbp/misc/Cartesian.java b/src/edu/berkeley/sbp/misc/Cartesian.java index 676a4cf..23e5884 100644 --- a/src/edu/berkeley/sbp/misc/Cartesian.java +++ b/src/edu/berkeley/sbp/misc/Cartesian.java @@ -59,5 +59,24 @@ public class Cartesian { if (col > c.col) return 1; return 0; } + public Input.Region createRegion(Input.Location loc) { + return new Region(this, (Cartesian.Location)loc); } + } + + public static class Region implements Input.Region { + public final Location start; + public final Location end; + public String toString() { + if (start.row==end.row) return start.row+":"+(start.col+"-"+end.col); + return start+"-"+end; + } + public Region(Location a, Location b) { + switch(a.compareTo(b)) { + case -1: + case 0: start=a; end=b; return; + case 1: start=b; end=a; return; + default: throw new Error("impossible"); + } + } } }