part of "generator.dart"; // TODO: There are many more efficient ways to do this class DirectionSet { final Set directions; DirectionSet(this.directions); DirectionSet flip() { var ds2 = DirectionSet({}); for (var i in directions) { switch (i) { case Direction.up: ds2.directions.add(Direction.up); case Direction.left: ds2.directions.add(Direction.right); case Direction.down: ds2.directions.add(Direction.down); case Direction.right: ds2.directions.add(Direction.left); } } return ds2; } DirectionSet rotateLeft() { var ds2 = DirectionSet({}); for (var i in directions) { switch (i) { case Direction.up: ds2.directions.add(Direction.left); case Direction.left: ds2.directions.add(Direction.down); case Direction.down: ds2.directions.add(Direction.right); case Direction.right: ds2.directions.add(Direction.up); } } return ds2; } DirectionSet rotateRight() { var ds2 = DirectionSet({}); for (var i in directions) { switch (i) { case Direction.up: ds2.directions.add(Direction.right); case Direction.right: ds2.directions.add(Direction.down); case Direction.down: ds2.directions.add(Direction.left); case Direction.left: ds2.directions.add(Direction.up); } } return ds2; } DirectionSet clone() { var ds2 = DirectionSet({}); ds2.directions.addAll(directions); return ds2; } }