public void AssignBuildingList() { //It seems you can serialise a specification of a generic class. //Arrange TestBuildingList buildings = new TestBuildingList(FilePath); //Act var building = new GElement(); buildings.Value.Add(building); buildings.Save(false); Assert.True(buildings.Load()); //Assert Assert.AreEqual(buildings.Value[0], building); }
public void Draw(GElement ge) { Vector3 zero = Vector3.zero; Vector3 b = screenRight * ((ge.bounds.x + ge.parentInterface.bounds.x) / screenResolution.x) * 2f; Vector3 b2 = screenDown * ((ge.bounds.y + ge.parentInterface.bounds.y) / screenResolution.y) * 2f; zero = screenOrigin + -base.transform.forward * ge.zLayer + b + b2; ge.transform.parent = null; Transform transform = ge.transform; float x = ge.bounds.width / pixelsPerUnit; float y = ge.bounds.height / pixelsPerUnit; Vector3 localScale = ge.transform.localScale; transform.localScale = new Vector3(x, y, localScale.z); ge.CalculatePositioning(); ge.transform.parent = ge.parentInterface.transform; ge.transform.position = zero - ge.up + ge.left; }
private void Init() { for (int i = 0; i <= 4; i++) { if (i < 3) { tables[i] = screen.CreateInterface(16f + (float)i * 158f, 5f, 0.186f, 0.78f); tables[i].backgroundColor = Color.white; GElement gElement = tables[i].CreateElement(-1f, -1f, 1.02f, 0.16f, string.Empty + (i + 1), store: false); gElement.textSize = 60; gElement.textColor = Color.white; if (SceneManager.GetSceneAt(0).buildIndex == 2) { tables[i].zLayer = 0.07f; gElement.color = Color.blue; gElement.zLayer = 0.085f; } else { tables[i].zLayer = 0.01f; gElement.color = new Color(0, 0.5f, 1); gElement.zLayer = 0.016f; } for (int j = 0; j < 2; j++) { GElement gElement2 = tables[i].CreateButton(15f, 70 + j % 2 * 140, 0.8f, 0.35f, string.Empty); if (SceneManager.GetSceneAt(0).buildIndex == 2) { gElement2.zLayer = 0.09f; } else { gElement2.zLayer = 0.016f; } gElement2.SetColor(new Color(1f, 0.85f, 0.85f, 0.05f), "highlight"); gElement2.SetColor(new Color(1f, 0.7f, 0.7f, 0.5f), "pressed"); gElement2.SetUseable(active: false); } } else if (i == 3) { tables[i] = screen.CreateInterface(16f + (float)i * 158f, 5f, 0.372f, 0.78f); tables[i].backgroundColor = Color.white; tables[i].zLayer = 0.01f; GElement gElement3 = tables[i].CreateElement(-1f, -1f, 1.01f, 0.16f, string.Empty + (i + 1), store: false); gElement3.textSize = 60; gElement3.color = new Color(0, 0.6f, 1); gElement3.textColor = Color.white; gElement3.zLayer = 0.016f; if (SceneManager.GetSceneAt(0).buildIndex == 2) { tables[i].zLayer = 0.07f; gElement3.color = Color.blue; gElement3.zLayer = 0.085f; } else { tables[i].zLayer = 0.01f; gElement3.color = new Color(0, 0.5f, 1); gElement3.zLayer = 0.016f; } for (int k = 0; k < 4; k++) { GElement gElement2 = tables[i].CreateButton(15 + ((k >= 2) ? 1 : 0) * 140, 70 + k % 2 * 140, 0.4f, 0.35f, string.Empty); if (SceneManager.GetSceneAt(0).buildIndex == 2) { gElement2.zLayer = 0.09f; } else { gElement2.zLayer = 0.016f; } gElement2.SetColor(new Color(1f, 0.85f, 0.85f, 0.05f), "highlight"); gElement2.SetColor(new Color(1f, 0.7f, 0.7f, 0.5f), "pressed"); gElement2.SetUseable(active: false); } } } menus[0] = screen.CreateInterface(5f, 5f, 0.9875f, 0.8f); menus[1] = screen.CreateInterface(5f, 5f, 0.9875f, 0.8f); for (int l = 0; l < 3; l++) { string empty = string.Empty; Color black = Color.black; switch (l) { default: empty = "Meat!"; black = Color.red; break; case 1: empty = "Bread!"; black = new Color(32f / 51f, 32f / 45f, 0f); break; case 2: empty = "Produce! Cheese‽"; black = new Color(0f, 32f / 51f, 0f); break; } GElement gElement2 = menus[1].CreateElement(28 * (l + 1) + 221 * l, 25f, 0.28f, 0.7f, empty); gElement2.SetColor(new Color(1f, 1f, 1f), string.Empty); gElement2.textSize = 30; gElement2.textColor = black; gElement2.transform.GetChild(0).transform.localScale += new Vector3(-0.6f, -0.6f, 0f); gElement2.transform.GetChild(0).transform.position += new Vector3(0f, -0.07f, 0f); gElement2.zLayer = 0.06f; } for (int m = 0; m < 3; m++) { GElement gElement2 = menus[1].CreateElement(28 * (m + 1) + 221 * m, 60f, 0.28f, 0.6f, string.Empty); switch (m) { default: gElement2.gameObject.GetComponent <MeshRenderer>().material = mPat; break; case 1: gElement2.gameObject.GetComponent <MeshRenderer>().material = mCedric; break; case 2: gElement2.gameObject.GetComponent <MeshRenderer>().material = mGrace; break; } gElement2.SetColor(new Color(1f, 1f, 1f), string.Empty); gElement2.zLayer = 0.11f; } for (int n = 0; n < 3; n++) { string empty2 = string.Empty; switch (n) { default: empty2 = "Patt Paddington"; break; case 1: empty2 = "Seedy Cedric"; break; case 2: empty2 = "Green Grace"; break; } GElement gElement2 = menus[1].CreateButton(28 * (n + 1) + 221 * n, 280f, 0.28f, 0.2f, empty2); gElement2.SetColor(new Color(1f, 1f, 1f, 1f), string.Empty); gElement2.SetColor(new Color(0.5f, 1f, 0.5f, 0.98f), "highlight"); gElement2.textColor = new Color(0f, 128f / 225f, 1f); gElement2.textSize = 60; gElement2.transform.GetChild(0).transform.localScale += new Vector3(-0.8f, 0f, 0f); gElement2.transform.GetChild(0).transform.position += new Vector3(0f, -0.15f, 0f); gElement2.zLayer = 0.08f; } menus[1].gameObject.SetActive(value: false); navBar[0] = screen.CreateNavigation(5f, 370f, 0.9875f, 0.16f); for (int num = 0; num <= 1; num++) { string text = string.Empty; switch (num) { case 0: text = "ORDERS"; break; case 1: text = "DELIVERY"; break; } GElement gElement2 = navBar[0].CreateButton(45 + num * 380, 5f, 0.38f, 0.8f, text); gElement2.transform.GetChild(0).transform.localScale += new Vector3(-0.3f, 1.6f, 0f); gElement2.textColor = Color.black; gElement2.textSize = 26; } if (computers == null) { computers = new List <Computer>(); } computers.Add(this); initDone = true; }
public void DrawElement(GElement ge) { screen.Draw(ge); }
//输出画图图元列表 private List <GElement> OutputGraphics() { List <GElement> gList = new List <GElement>(); // 图元列表 string outputInfo = ""; int n = mTraverseLine.Lines.Count; GElement tempGe = null; //临时图元变量 PointF startPt, endPt; //直线端点 //获得线图元 for (int i = 0; i <= n - 2; i++) { if (i == 0)//开头已知边 { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mTraverseLine.Lines[i].StartPt.X; startPt.Y = (float)mTraverseLine.Lines[i].StartPt.Y; endPt.X = (float)mTraverseLine.Lines[i].EndPt.X; endPt.Y = (float)mTraverseLine.Lines[i].EndPt.Y; tempGe = new Line2(null, startPt, endPt, Color.Red); } else//中间量测边 { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mTraverseLine.Lines[i].StartPt.X; startPt.Y = (float)mTraverseLine.Lines[i].StartPt.Y; endPt.X = (float)mTraverseLine.Lines[i].EndPt.X; endPt.Y = (float)mTraverseLine.Lines[i].EndPt.Y; tempGe = new Line1(null, startPt, endPt, Color.White); }//endelse gList.Add(tempGe); }//endfor if (mTraverseLine.NetType == 1)//附和导线,最后一条已知边 { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mTraverseLine.Lines[n - 1].StartPt.X; startPt.Y = (float)mTraverseLine.Lines[n - 1].StartPt.Y; endPt.X = (float)mTraverseLine.Lines[n - 1].EndPt.X; endPt.Y = (float)mTraverseLine.Lines[n - 1].EndPt.Y; tempGe = new Line2(null, startPt, endPt, Color.Red); gList.Add(tempGe); }//endif //获得点图元 for (int i = 0; i <= n - 3; i++) { if (i == 0)//开头已知边端点 { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mTraverseLine.Lines[i].StartPt.X; startPt.Y = (float)mTraverseLine.Lines[i].StartPt.Y; endPt.X = (float)mTraverseLine.Lines[i].EndPt.X; endPt.Y = (float)mTraverseLine.Lines[i].EndPt.Y; tempGe = new PointN(mTraverseLine.Lines[i].StartPt.Name, startPt, Color.Red); gList.Add(tempGe); tempGe = new PointN(mTraverseLine.Lines[i].EndPt.Name, endPt, Color.Red); gList.Add(tempGe); } else//中间量测边端点 { endPt = new PointF(); endPt.X = (float)mTraverseLine.Lines[i].EndPt.X; endPt.Y = (float)mTraverseLine.Lines[i].EndPt.Y; tempGe = new PointUn(mTraverseLine.Lines[i].EndPt.Name, endPt, Color.White); gList.Add(tempGe); } //endelse } //endfor if (mTraverseLine.NetType == 1)//附和导线,最后一条已知边端点 { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mTraverseLine.Lines[n - 1].StartPt.X; startPt.Y = (float)mTraverseLine.Lines[n - 1].StartPt.Y; endPt.X = (float)mTraverseLine.Lines[n - 1].EndPt.X; endPt.Y = (float)mTraverseLine.Lines[n - 1].EndPt.Y; tempGe = new PointN(mTraverseLine.Lines[n - 1].StartPt.Name, startPt, Color.Red); gList.Add(tempGe); tempGe = new PointN(mTraverseLine.Lines[n - 1].EndPt.Name, endPt, Color.Red); gList.Add(tempGe); }//endif return(gList); }
protected void RemoveGElement(GElement a_gElement) { int elementIndex = m_lGElements.FindIndex(x => x == a_gElement); RemoveGElement(elementIndex); }
/// <summary> /// Returns the SvgElement object converted from given XElement /// </summary> /// <param name="element"></param> /// <returns></returns> public static ISvgElement GetSvgElement(XElement element) { switch (element.Name.LocalName) { case "path": { var pathElement = new PathElement(element); AddAttributesToElement(pathElement, element); return(pathElement); } case "text": { var textElement = new TextElement(element); AddAttributesToElement(textElement, element); return(textElement); } case "circle": case "ellipse": { var ellipseElement = new EllipseElement(element); AddAttributesToElement(ellipseElement, element); return(ellipseElement); } case "rect": { var rectElement = new RectElement(element); AddAttributesToElement(rectElement, element); return(rectElement); } case "line": { var lineElement = new LineElement(element); AddAttributesToElement(lineElement, element); return(lineElement); } case "polyline": { var polyLineElement = new PolyLineElement(element, false); AddAttributesToElement(polyLineElement, element); return(polyLineElement); } case "polygon": { var polyLineElement = new PolyLineElement(element, true); AddAttributesToElement(polyLineElement, element); return(polyLineElement); } case "g": { var gElement = new GElement(element); AddAttributesToElement(gElement, element); return(gElement); } case "defs": { AddDefinitions(element); return(null); } default: return(null); } }
//输出画图图元列表 private List <GElement> OutputGraphics() { List <GElement> gList = new List <GElement>(); // 图元列表 int n = mX.Length; GElement tempGe = null; //临时图元变量 PointF startPt, endPt; //直线端点 //获得线图元 //第1条已知边 startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mX0[0]; startPt.Y = (float)mY0[0]; endPt.X = (float)mX0[1]; endPt.Y = (float)mY0[1]; tempGe = new Line2(null, startPt, endPt, Color.Red); gList.Add(tempGe); //中间量测边 for (int i = 0; i < n - 1; i++) { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mX[i]; startPt.Y = (float)mY[i]; endPt.X = (float)mX[i + 1]; endPt.Y = (float)mY[i + 1]; tempGe = new Line1(null, startPt, endPt, Color.White); gList.Add(tempGe); }//endfor if (mNetType == 1)//附和导线,最后一条已知边 { startPt = new PointF(); endPt = new PointF(); startPt.X = (float)mX0[2]; startPt.Y = (float)mY0[2]; endPt.X = (float)mX0[3]; endPt.Y = (float)mY0[3]; tempGe = new Line2(null, startPt, endPt, Color.Red); gList.Add(tempGe); }//endif //获得点图元 //获得已知点 PointF thePt = new PointF(); thePt.X = (float)mX0[0]; thePt.Y = (float)mY0[0]; tempGe = new PointN(mPname[0], thePt, Color.Red); gList.Add(tempGe); thePt = new PointF(); thePt.X = (float)mX0[1]; thePt.Y = (float)mY0[1]; tempGe = new PointN(mPname[1], thePt, Color.Red); gList.Add(tempGe); for (int i = 1; i < n - 1; i++) { thePt = new PointF(); thePt.X = (float)mX[i]; thePt.Y = (float)mY[i]; tempGe = new PointUn(mPname[i + 1], thePt, Color.White); gList.Add(tempGe); }//endif if (mNetType == 1)//附和导线,最后一条已知边上2个已知点 { thePt = new PointF(); thePt.X = (float)mX0[2]; thePt.Y = (float)mY0[2]; tempGe = new PointN(mPname[mPname.Length - 2], thePt, Color.Red); gList.Add(tempGe); thePt = new PointF(); thePt.X = (float)mX0[3]; thePt.Y = (float)mY0[3]; tempGe = new PointN(mPname[mPname.Length - 1], thePt, Color.Red); gList.Add(tempGe); }//endif return(gList); }