void GrabObject() { grabbing = true; RaycastHit[] hits; hits = Physics.SphereCastAll(transform.position, grabRadius, transform.forward, 0f, grabMask); if (hits.Length > 0) { menu.SetActive(true); int closestHit = 0; for (int i = 0; i < hits.Length; i++) { if (hits[i].distance < hits[closestHit].distance) { closestHit = i; } } // Debug.LogFormat("You are trying to grab something."); CreateLine grabbed = gameObject.GetComponent <CreateLine>(); grabbed.grabbed = true; grabbedObject = hits[closestHit].transform.gameObject.transform.root.gameObject; currchicken = grabbedObject; GameObject.Find(grabbedObject.name).GetComponent <HerdSimCore>().enabled = false; grabbedObject.GetComponent <Rigidbody>().isKinematic = true; grabbedObject.transform.position = transform.position + transform.forward * 3; grabbedObject.transform.parent = transform; } else { // Debug.LogFormat("nothing was close enough."); } }
private void OnMouseDown(object sender, MouseEventArgs e) { CreateLine newLine = new CreateLine(modelSpace.Project.CreateNewOperationId()); float value = modelSpace.Project.Environment.GridSize.Value * 2; Vector3 point1 = modelSpace.SceneRender.DisplayedGridPoint; newLine.StartPoint = new Vector3WithUnit(point1, modelSpace.Project.Environment.DefaultLengthUnit); switch (modelSpace.Project.Environment.GridPlane) { case GridPlane.XY: newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(value, 0, 0), modelSpace.Project.Environment.DefaultLengthUnit); break; case GridPlane.XZ: newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(0, 0, value), modelSpace.Project.Environment.DefaultLengthUnit); break; case GridPlane.YZ: newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(0, value, 0), modelSpace.Project.Environment.DefaultLengthUnit); break; default: newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(value, 0, 0), modelSpace.Project.Environment.DefaultLengthUnit); break; } //Create the new single modelSpace.Project.CreateNewSingle(newLine); workspace.SelectTool(); }
static void Main(string[] args) { ICanvas canvas = null; ICommand command; while (true) { Console.Write("enter command : "); var userInput = Console.ReadLine(); var input = InputParser.ParseInput(userInput); switch (input.Command.ToUpper()) { case "C": command = new CreateCanvas(); ExecuteCommandAndDrawCanvas(); break; case "L": command = new CreateLine(canvas); ExecuteCommandAndDrawCanvas(); break; case "R": command = new CreateRectangle(canvas); ExecuteCommandAndDrawCanvas(); break; case "B": command = new FillBucket(canvas); ExecuteCommandAndDrawCanvas(); break; case "Q": command = new ExitCommand(); command.ExecuteCommand(input.Args); break; default: break; void ExecuteCommandAndDrawCanvas() { try { canvas = command.ExecuteCommand(input.Args); Console.WriteLine(canvas.ToString()); //canvas.DrawCanvas(); } catch (Exception e) { Console.WriteLine($"Error: {e.Message}"); } } } } }
public void ExecuteCommand_Canvas_Not_Exists() { string[] args = new string[] { "1", "2", "6", "2" }; CreateLine createLine = new CreateLine(null); var exception = Record.Exception(() => createLine.ExecuteCommand(args)); Assert.NotNull(exception); Assert.IsType <ArgumentException>(exception); Assert.Equal($"{Constants.Command_Canvas_Not_Exists}", exception.Message); }
public void ExecuteCommand_Invalid_Argument(string CommandName, string[] args) { CreateLine createLine = new CreateLine(_canvas.Object); var exception = Record.Exception(() => createLine.ExecuteCommand(args)); Assert.NotNull(exception); Assert.IsType <ArgumentException>(exception); Assert.Equal($"{Constants.Command_Expect_Four_Positive_Arguments}", exception.Message); Assert.Equal("L", CommandName); }
// Use this for initialization void Start() { //try to make a dict with scripts inheriting from same base createLine = GetComponent <CreateLine> (); pointCreation = GetComponent <PointCreation> (); shipControl = GetComponent <ShipControl> (); squadronControl = GetComponent <SquadronControl> (); //shipControl.enabled = false; //createLine.Disable (); //pointCreation.Disable (); SetState("Main"); }
void Start() { line = FindObjectOfType <CreateLine>(); for (int i = 0; i < dots.Length; i++) { dots[i] = GameObject.Find("Dots").transform.GetChild(i); } for (int i = 0; i < distanceTexts.Length; i++) { distanceTexts[i] = GameObject.Find("DistanceTexts").transform.GetChild(i).gameObject; } }
public void CreateALine() { var mock = new Mock <ICanvas>(); mock.Setup(canvas => canvas.Draw(0, 0, 1)); mock.Setup(canvas => canvas.Draw(1, 0, 1)); mock.Setup(canvas => canvas.Draw(2, 0, 1)); CreateLine line = new CreateLine(mock.Object, 0, 0, 2, 0, 1); line.Execute(); mock.Verify(canvas => canvas.Draw(0, 0, 1), Times.Once()); mock.Verify(canvas => canvas.Draw(1, 0, 1), Times.Once()); mock.Verify(canvas => canvas.Draw(2, 0, 1), Times.Once()); }
public void ExecuteCommand_Create_Line_Success() { CreateCanvas createCanvas = new CreateCanvas(); string[] args1 = new string[] { "20", "4" }; var canvas = createCanvas.ExecuteCommand(args1); string[] args = new string[] { "1", "2", "6", "2" }; CreateLine createLine = new CreateLine(canvas); var result = createLine.ExecuteCommand(args); Assert.NotNull(result); for (int i = 1; i <= 6; i++) { Assert.Equal('x', canvas.Cells[i, 2]); } }
void DropObject() { grabbing = false; menu.SetActive(false); CreateLine grabbed = gameObject.GetComponent <CreateLine>(); grabbed.grabbed = false; if (grabbedObject != null) { grabbedObject.transform.parent = null; HerdSimCore sim = GameObject.Find(grabbedObject.name).GetComponent <HerdSimCore>(); sim._startPosition = transform.position + transform.forward * 3; Vector3 pos = transform.position + transform.forward * 3; sim._ground = new Vector3(pos.x, 10.0f, pos.z); if (mode.GetComponent <Gameplay>().sickness) { sim.Death(); GameObject.Find(grabbedObject.name).GetComponent <HerdSimCore>().enabled = true; grabbedObject.GetComponent <AudioSource>().Stop(); } grabbedObject.GetComponent <Rigidbody>().isKinematic = false; grabbedObject = null; } }
// Use this for initialization void Start() { GameObject cart = GameObject.Find("Cart"); // cart GameObject slot = GameObject.Find("CartSlot"); // slot for cart to fit into on first graph GameObject slot2 = GameObject.Find("CartSlot1"); // slot for cart to fit into on second graph GameObject slot3 = GameObject.Find("CartSlot2"); // slot for cart to fit into on third graph // grab necessary billboard graph elements line2DPrefab = Resources.Load ("prefabs/UI LineRenderer") as GameObject; graphCanvas = GameObject.Find ("GraphCanvas"); createLine = cart.GetComponent<CreateLine>(); for (int i = 0; i < 3; i++) { createLine.createLine (i, CSVReader.topThreeCandidates [i]); } //createLine.createLine(2, "Palin"); // create 1st graph that cart can ride on //createLine.createLine(0, "Gingrich"); // create 2nd graph that cart can ride on //createLine.createLine(1, "Romney"); // create 3rd graph that cart can ride on GameObject line1 = Instantiate (line2DPrefab); GameObject line2 = Instantiate (line2DPrefab); GameObject line3 = Instantiate (line2DPrefab); line1.GetComponent<Make2DLine> ().Initialize (createLine.Positions2, CSVReader.topThreeCandidates [0]); line2.GetComponent<Make2DLine> ().Initialize (createLine.Positions1, CSVReader.topThreeCandidates [1]); line3.GetComponent<Make2DLine> ().Initialize (createLine.Positions3, CSVReader.topThreeCandidates [2]); Make2DLine.followParent (line1, graphCanvas); Make2DLine.followParent (line2, graphCanvas); Make2DLine.followParent (line3, graphCanvas); // load timeline prefab if (timelinePrefab == null) { timelinePrefab = (GameObject)Resources.Load ("prefabs/TimelineCanvas"); } // create a timeline GameObject midTimelineR = (GameObject)Instantiate( timelinePrefab, // positions this 1/10 between the left and center line new Vector3(Mathf.Lerp(createLine.Positions1[0].x, createLine.Positions3[0].x, 0.1f), 0f, 0f), Quaternion.AngleAxis(270f, Vector3.up)); midTimelineR.GetComponent<CoasterTimeline> ().Initialize(createLine.Positions1); slot.transform.position = createLine.Positions1[0];//initiate camera location to first point slot.transform.LookAt(createLine.Positions1[1]);//initiate camera aim to second point currentPercent = createLine.Positions1[0][1]; nextPercent = createLine.Positions1[1][1]; Debug.Log(currentPercent); slot2.transform.position = createLine.Positions2[0];//initiate camera location to first point slot2.transform.LookAt(createLine.Positions2[1]);//initiate camera aim to second point currentPercent = createLine.Positions2[0][1]; nextPercent = createLine.Positions2[1][1]; Debug.Log(currentPercent); slot3.transform.position = createLine.Positions3[0];//initiate camera location to first point slot3.transform.LookAt(createLine.Positions3[1]);//initiate camera aim to second point currentPercent = createLine.Positions3[0][1]; nextPercent = createLine.Positions3[1][1]; Debug.Log(currentPercent); waypointCart = createLine.Positions1[1]; //initiate travel-to point to second point candPositions = createLine.Positions1; waypointCart1 = createLine.Positions2[1]; //initiate travel-to point to second point candPositions1 = createLine.Positions2; waypointCart2 = createLine.Positions3[1]; //initiate travel-to point to second point candPositions2 = createLine.Positions3; //boost = createLine.boost; currentDate = createLine.Position1Dates[0].Date.ToString("d"); nextDate = createLine.Position1Dates[1].Date.ToString("d"); currentCandidate = createLine.Position1Candidate; pause = 1; }
private void CreateLineMesh() { var meshCreator = new CreateLine(spline); GUILayout.Space(5); EditorGUI.BeginChangeCheck(); float widht = EditorGUILayout.FloatField("Width", master.radius1); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(master, "Variable change"); EditorUtility.SetDirty(master); master.radius1 = widht; } GUILayout.Space(5); EditorGUI.BeginChangeCheck(); int lenghtSegmentsCount = EditorGUILayout.IntField("Lenght Segments", master.LenghtSegmentsCount); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(master, "Variable change"); EditorUtility.SetDirty(master); master.LenghtSegmentsCount = lenghtSegmentsCount; } EditorGUI.BeginChangeCheck(); int widthSegmentsCount = EditorGUILayout.IntField("Width Segments", master.WidthSegmentsCount); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(master, "Variable change"); EditorUtility.SetDirty(master); master.WidthSegmentsCount = widthSegmentsCount; } GUILayout.Space(5); EditorGUI.BeginChangeCheck(); bool twoSided = EditorGUILayout.Toggle("Two Sided", master.twoSided); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(master, "Variable change"); EditorUtility.SetDirty(master); master.twoSided = twoSided; } EditorGUI.BeginChangeCheck(); bool textureOrientation = EditorGUILayout.Toggle("Texture Orientation X/Y", master.textureOrientation); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(master, "Variable change"); EditorUtility.SetDirty(master); master.textureOrientation = textureOrientation; } meshCreator.LenghtSegmentsCount = master.LenghtSegmentsCount; meshCreator.WidthSegmentsCount = master.WidthSegmentsCount; meshCreator.radius1 = master.radius1; meshCreator.twoSided = master.twoSided; meshCreator.textureOrientation = textureOrientation; master.meshCreator = meshCreator; }
public void CanvasApp_Test() { List <string> commands = new List <string> { new string("C 20 4"), new string("L 1 2 6 2"), new string("L 6 3 6 4"), new string("R 14 1 18 3"), new string("B 10 3 o"), }; ICanvas canvas = null; ICommand command; foreach (string com in commands) { var input = InputParser.ParseInput(com); switch (input.Command.ToUpper()) { case "C": command = new CreateCanvas(); ExecuteCommandAndDrawCanvas(); break; case "L": command = new CreateLine(canvas); ExecuteCommandAndDrawCanvas(); break; case "R": command = new CreateRectangle(canvas); ExecuteCommandAndDrawCanvas(); break; case "B": command = new FillBucket(canvas); ExecuteCommandAndDrawCanvas(); break; case "Q": command = new ExitCommand(); command.ExecuteCommand(input.Args); break; default: break; void ExecuteCommandAndDrawCanvas() { try { canvas = command.ExecuteCommand(input.Args); } catch (Exception e) { Console.WriteLine($"Error: {e.Message}"); } } } } string[] expected = new string[6] { "----------------------", "|oooooooooooooxxxxxoo|", "|xxxxxxooooooox xoo|", "| xoooooooxxxxxoo|", "| xoooooooooooooo|", "----------------------" }; for (int i = 0; i < 6; i++) { StringBuilder sb = new StringBuilder(); for (int j = 0; j < 22; j++) { sb.Append(canvas.Cells[j, i]); } sb.Replace('\0', ' '); Assert.Equal(expected[i], sb.ToString()); } }
// Use this for initialization void Start() { GameObject cart = GameObject.Find("Cart"); // cart GameObject slot = GameObject.Find("CartSlot"); // slot for cart to fit into on first graph GameObject slot2 = GameObject.Find("CartSlot1"); // slot for cart to fit into on second graph GameObject slot3 = GameObject.Find("CartSlot2"); // slot for cart to fit into on third graph // grab necessary billboard graph elements line2DPrefab = Resources.Load("prefabs/UI LineRenderer") as GameObject; graphCanvas = GameObject.Find("GraphCanvas"); createLine = cart.GetComponent <CreateLine>(); for (int i = 0; i < 3; i++) { createLine.createLine(i, CSVReader.topThreeCandidates [i]); } //createLine.createLine(2, "Palin"); // create 1st graph that cart can ride on //createLine.createLine(0, "Gingrich"); // create 2nd graph that cart can ride on //createLine.createLine(1, "Romney"); // create 3rd graph that cart can ride on GameObject line1 = Instantiate(line2DPrefab); GameObject line2 = Instantiate(line2DPrefab); GameObject line3 = Instantiate(line2DPrefab); line1.GetComponent <Make2DLine> ().Initialize(createLine.Positions2, CSVReader.topThreeCandidates [0]); line2.GetComponent <Make2DLine> ().Initialize(createLine.Positions1, CSVReader.topThreeCandidates [1]); line3.GetComponent <Make2DLine> ().Initialize(createLine.Positions3, CSVReader.topThreeCandidates [2]); Make2DLine.followParent(line1, graphCanvas); Make2DLine.followParent(line2, graphCanvas); Make2DLine.followParent(line3, graphCanvas); // load timeline prefab if (timelinePrefab == null) { timelinePrefab = (GameObject)Resources.Load("prefabs/TimelineCanvas"); } // create a timeline GameObject midTimelineR = (GameObject)Instantiate( timelinePrefab, // positions this 1/10 between the left and center line new Vector3(Mathf.Lerp(createLine.Positions1[0].x, createLine.Positions3[0].x, 0.1f), 0f, 0f), Quaternion.AngleAxis(270f, Vector3.up)); midTimelineR.GetComponent <CoasterTimeline> ().Initialize(createLine.Positions1); slot.transform.position = createLine.Positions1[0]; //initiate camera location to first point slot.transform.LookAt(createLine.Positions1[1]); //initiate camera aim to second point currentPercent = createLine.Positions1[0][1]; nextPercent = createLine.Positions1[1][1]; Debug.Log(currentPercent); slot2.transform.position = createLine.Positions2[0]; //initiate camera location to first point slot2.transform.LookAt(createLine.Positions2[1]); //initiate camera aim to second point currentPercent = createLine.Positions2[0][1]; nextPercent = createLine.Positions2[1][1]; Debug.Log(currentPercent); slot3.transform.position = createLine.Positions3[0]; //initiate camera location to first point slot3.transform.LookAt(createLine.Positions3[1]); //initiate camera aim to second point currentPercent = createLine.Positions3[0][1]; nextPercent = createLine.Positions3[1][1]; Debug.Log(currentPercent); waypointCart = createLine.Positions1[1]; //initiate travel-to point to second point candPositions = createLine.Positions1; waypointCart1 = createLine.Positions2[1]; //initiate travel-to point to second point candPositions1 = createLine.Positions2; waypointCart2 = createLine.Positions3[1]; //initiate travel-to point to second point candPositions2 = createLine.Positions3; //boost = createLine.boost; currentDate = createLine.Position1Dates[0].Date.ToString("d"); nextDate = createLine.Position1Dates[1].Date.ToString("d"); currentCandidate = createLine.Position1Candidate; pause = 1; }