static public void EqualDoubledcoord(String name, DoubledCoord a, DoubledCoord b) { if (!(a.col == b.col && a.row == b.row)) { Tests.Complain(name); } }
// Start is called before the first frame update void Start() { Layout flat = new Layout(Layout.flat, new Point(10.0, 10.0), new Point(0, 0)); DoubledCoord d1 = new DoubledCoord(0, 0); DoubledCoord d2 = new DoubledCoord(1, 1); DoubledCoord d3 = new DoubledCoord(1, -1); Hex h1 = d1.QdoubledToCube(); Hex h2 = d2.QdoubledToCube(); Hex h3 = d3.QdoubledToCube(); Point points1 = flat.HexToPixel(h1); Point points2 = flat.HexToPixel(h2); Point points3 = flat.HexToPixel(h3); FractionalHex p = flat.PixelToHex(new Point(0, 1)); DoubledCoord dp = DoubledCoord.QdoubledFromCube(p.HexRound()); DoubledCoord d1n0 = DoubledCoord.QdoubledFromCube(h1.Neighbor(0)); DoubledCoord d1n1 = DoubledCoord.QdoubledFromCube(h1.Neighbor(1)); DoubledCoord d1n2 = DoubledCoord.QdoubledFromCube(h1.Neighbor(2)); DoubledCoord d1n3 = DoubledCoord.QdoubledFromCube(h1.Neighbor(3)); DoubledCoord d1n4 = DoubledCoord.QdoubledFromCube(h1.Neighbor(4)); DoubledCoord d1n5 = DoubledCoord.QdoubledFromCube(h1.Neighbor(5)); }
private static List <SpaceModel> MapLinedraw(SpaceModel start, SpaceModel end, MapModel map) { CubeCoord a = CoordinatesToCubeCoords(start); CubeCoord b = CoordinatesToCubeCoords(end); double N = CubeDistance(a, b); List <SpaceModel> results = new List <SpaceModel>(); if (Math.Abs(N) > Double.Epsilon) { for (int i = 0; i <= N; i++) { CubeCoord coord = RoundCubeCoords(CubeLerp(a, b, 1 / N * i)); DoubledCoord normalCoord = CubeCoordsToCoordinates(coord); SpaceModel newSpace; newSpace = map.GetSpace(normalCoord.Row, normalCoord.Column); if (newSpace != null) { results.Add(newSpace); } } } return(results); }
static public void TestDoubledRoundtrip() { Hex a = new Hex(3, 4, -7); DoubledCoord b = new DoubledCoord(1, -3); Tests.EqualHex("conversion_roundtrip doubled-q", a, DoubledCoord.QdoubledFromCube(a).QdoubledToCube()); Tests.EqualDoubledcoord("conversion_roundtrip doubled-q", b, DoubledCoord.QdoubledFromCube(b.QdoubledToCube())); Tests.EqualHex("conversion_roundtrip doubled-r", a, DoubledCoord.RdoubledFromCube(a).RdoubledToCube()); Tests.EqualDoubledcoord("conversion_roundtrip doubled-r", b, DoubledCoord.RdoubledFromCube(b.RdoubledToCube())); }
static public void TestDoubledFromCube() { Tests.EqualDoubledcoord("doubled_from_cube doubled-q", new DoubledCoord(1, 5), DoubledCoord.QdoubledFromCube(new Hex(1, 2, -3))); Tests.EqualDoubledcoord("doubled_from_cube doubled-r", new DoubledCoord(4, 2), DoubledCoord.RdoubledFromCube(new Hex(1, 2, -3))); }