void Awake() { _allRooms = new Dictionary <Vector3, Room>(); Debug.Assert(_roomPrefab != null); Debug.Assert(_roomPrefab.GetComponent <RoomDimensions>() != null); _roomDimensions = _roomPrefab.GetComponent <RoomDimensions>(); }
public void TestStartingPointOutsideRoom() { RoomDimensions room = new RoomDimensions(1, 1); Point point = new Point(1, 0); Exception ex = Assert .Throws <IllegalStartingPointException>(() => new Robot(room, point, 'W')); }
public void TestOneByOneRoom() { RoomDimensions room = new RoomDimensions(1, 1); Point point = new Point(0, 0); Robot robot = new Robot(room, point, 'W'); Assert.Equal("0 0 E", robot.Move("RRFFFFFFFF")); }
public void TestTouchingUpperBoundaries() { RoomDimensions room = new RoomDimensions(4, 4); Point point = new Point(1, 1); Robot robot = new Robot(room, point, 'W'); Assert.Equal("3 1 E", robot.Move("RRFFFFFFFF")); }
public void TestCirclingExample() { RoomDimensions room = new RoomDimensions(10, 10); Point point = new Point(0, 0); Robot robot = new Robot(room, point, 'N'); Assert.Equal("0 0 N", robot.Move("FRFRFRFRFRFRFRFRF")); }
public void TestGivenExample2() { RoomDimensions room = new RoomDimensions(5, 5); Point point = new Point(0, 0); Robot robot = new Robot(room, point, 'E'); Assert.Equal("3 1 E", robot.Move("RFLFFLRF")); }
public void TestGivenExample1() { RoomDimensions room = new RoomDimensions(5, 5); Point point = new Point(1, 2); Robot robot = new Robot(room, point, 'N'); Assert.Equal("1 3 N", robot.Move("RFRFFRFRF")); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { var uiapp = commandData.Application; var uidoc = uiapp.ActiveUIDocument; var doc = uidoc.Document; var handler = new GridInstallEvent(); var exEvent = ExternalEvent.Create(handler); var grid = new GridSetup(exEvent, handler); var window = WindowSetup(grid); //---------------------------------------------------------------------------------------- var selection = uidoc.Selection; Room newRoom = null; //-----User select existing Room first----- if (selection.GetElementIds().Count > 0) { foreach (var item in selection.GetElementIds()) { var elementType = doc.GetElement(item); if (elementType.ToString() == typeof(Room).ToString()) { newRoom = elementType as Room; } } } using (var transaction = new Transaction(doc, "Get room parameters")) { transaction.Start(); var view = doc.ActiveView; if (newRoom == null) { try { if (uidoc.ActiveView.SketchPlane == null || view.GenLevel == null) { TaskDialog.Show("Section View", "Please switch to level view."); return(Result.Cancelled); } var point = selection.PickPoint("Point to create a room"); newRoom = doc.Create.NewRoom(view.GenLevel, new UV(point.X, point.Y)); } catch (OperationCanceledException) { return(Result.Cancelled); } } //---------------------------------------------------------------------------------------- var box = newRoom.get_BoundingBox(view); if (box == null) { return(Result.Failed); } PointF roomMin = new PointF(); roomMin.X = (float)(box.Min.X * FeetToMil); roomMin.Y = (float)(box.Min.Y * FeetToMil); PointF roomMax = new PointF(); roomMax.X = (float)(box.Max.X * FeetToMil); roomMax.Y = (float)(box.Max.Y * FeetToMil); var roomDimensions = new RoomDimensions(); grid.Scale = roomDimensions.GetScale(roomMin, roomMax, grid.CanvasSize); grid.RevitWalls = roomDimensions.GetWalls(newRoom); if (grid.RevitWalls.Count == 0) { TaskDialog.Show("Error", "Room not detected"); return(Result.Cancelled); } grid.Derrivation = GetDerrivation(box, grid); var bBox = new WpfCoordinates(); grid.BoundingBoxLines = bBox.GetBoundingBox(roomMin, roomMax, grid); SymbolPreselectCheck(window); grid.DrawWalls(); transaction.RollBack(); } grid.TextBoxScale.Text = "Scale 1: " + grid.Scale; return(Result.Succeeded); }