Exemple #1
0
    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;
    }
Exemple #3
0
    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;
    }
Exemple #4
0
 public void DrawElement(GElement ge)
 {
     screen.Draw(ge);
 }
Exemple #5
0
        //输出画图图元列表
        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);
        }
Exemple #6
0
    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);
            }
        }
Exemple #8
0
        //输出画图图元列表
        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);
        }