public Triangle(TriangleOrientation orientation, SubTriangles id, int resolution) { Resolution = resolution; Orientation = orientation; Children = new Dictionary <SubTriangles, Triangle>(); Cells = new Dictionary <TriangleCells, Cell>(); Id = id; if (resolution == 0) { return; } var nextResolution = resolution - 1; Children.Add(SubTriangles.TriTopBot, new Triangle(orientation, SubTriangles.TriTopBot, nextResolution)); Children.Add(SubTriangles.TriLeft, new Triangle(orientation, SubTriangles.TriLeft, nextResolution)); Children.Add(SubTriangles.TriRight, new Triangle(orientation, SubTriangles.TriRight, nextResolution)); Children.Add(SubTriangles.HexBot, new Triangle(TriangleOrientation.Up, SubTriangles.HexBot, nextResolution)); Children.Add(SubTriangles.HexBotLeft, new Triangle(TriangleOrientation.Down, SubTriangles.HexBotLeft, nextResolution)); Children.Add(SubTriangles.HexBotRight, new Triangle(TriangleOrientation.Down, SubTriangles.HexBotRight, nextResolution)); Children.Add(SubTriangles.HexTop, new Triangle(TriangleOrientation.Down, SubTriangles.HexTop, nextResolution)); Children.Add(SubTriangles.HexTopLeft, new Triangle(TriangleOrientation.Up, SubTriangles.HexTopLeft, nextResolution)); Children.Add(SubTriangles.HexTopRight, new Triangle(TriangleOrientation.Up, SubTriangles.HexTopRight, nextResolution)); }
private int GetCtrVert(SubTriangles tri, bool isUp) { switch (tri) { case SubTriangles.None: return(0); case SubTriangles.HexBot: return(2); case SubTriangles.HexBotLeft: return(2); case SubTriangles.HexBotRight: return(0); case SubTriangles.HexTop: return(1); case SubTriangles.HexTopLeft: return(1); case SubTriangles.HexTopRight: return(0); case SubTriangles.TriLeft: return(0); case SubTriangles.TriRight: return(isUp ? 1 : 2); case SubTriangles.TriTopBot: return(isUp ? 2 : 1); } return(0); }