Exemple #1
0
        public static void TopRFT(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            TopRFTLines = new GLine[SpanVals.Length + 1];
            //Case Of Cantilever Start Span
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                TopRFTLines[0] = new GLine(gCanvas, new Point(StartPointTopArr[0].X, StartPointTopArr[0].Y + 0.07 * scale),
                                           new Point(StartPointTopArr[0].X + 0.20 * (EndPointTopArr[0].X - StartPointTopArr[0].X), StartPointTopArr[0].Y + 0.07 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(TopRFTLines[0]);
            }


            for (int i = 1; i < TopRFTLines.Length - 1; i++)
            {
                TopRFTLines[i] = new GLine(gCanvas, new Point(EndPointTopArr[i - 1].X - 0.20 * (EndPointTopArr[i - 1].X - StartPointTopArr[i - 1].X), EndPointTopArr[i - 1].Y + 0.07 * scale),
                                           new Point(StartPointTopArr[i].X + 0.20 * (EndPointTopArr[i].X - StartPointTopArr[i].X), StartPointTopArr[i].Y + 0.07 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(TopRFTLines[i]);
            }

            //Case of Cantilever end Span
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                TopRFTLines[TopRFTLines.Length - 1] = new GLine(gCanvas, new Point(StartPointTopArr[TopRFTLines.Length - 2].X + 0.80 * (EndPointTopArr[TopRFTLines.Length - 2].X - StartPointTopArr[TopRFTLines.Length - 2].X), StartPointTopArr[TopRFTLines.Length - 2].Y + 0.07 * scale),
                                                                new Point(EndPointTopArr[TopRFTLines.Length - 2].X, EndPointTopArr[TopRFTLines.Length - 2].Y + 0.07 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(TopRFTLines[TopRFTLines.Length - 1]);
            }
        }
Exemple #2
0
        public static void RightSecStirrups(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            StirrupsRightSec = new GLine[SpanVals.Length, 3];

            double spacingRight = 0;

            for (int i = 0; i < StirrupsRightSec.GetLength(0) - 1; i++)
            {
                spacingRight = 0;
                for (int j = 0; j < StirrupsRightSec.GetLength(1); j++)
                {
                    StirrupsRightSec[i, j] = new GLine(gCanvas, new Point(EndPointTopArr[i].X - (0.05 + spacingRight / 1000) * scale, EndPointTopArr[i].Y + 0.07 * scale)
                                                       , new Point(EndPointBotArr[i].X - (0.05 + spacingRight / 1000) * scale, EndPointBotArr[i].Y /* -  0.07 * scale*/));
                    spacingRight += 150;

                    //add to the CANVAS
                    GeometryEngineRFT.Shapes["RFT"].Add(StirrupsRightSec[i, j]);
                }
            }

            //For cantilever at End
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                spacingRight = 0;
                for (int j = 0; j < StirrupsRightSec.GetLength(1); j++)
                {
                    StirrupsRightSec[StirrupsRightSec.GetLength(0) - 1, j] = new GLine(gCanvas, new Point(EndPointTopArr[StirrupsRightSec.GetLength(0) - 1].X - (0.05 + spacingRight / 1000) * scale, EndPointTopArr[StirrupsRightSec.GetLength(0) - 1].Y + 0.07 * scale)
                                                                                       , new Point(EndPointBotArr[StirrupsRightSec.GetLength(0) - 1].X - (0.05 + spacingRight / 1000) * scale, EndPointBotArr[StirrupsRightSec.GetLength(0) - 1].Y /* -  0.07 * scale*/));
                    spacingRight += 150;

                    //add to the CANVAS
                    GeometryEngineRFT.Shapes["RFT"].Add(StirrupsRightSec[StirrupsRightSec.GetLength(0) - 1, j]);
                }
            }
        }
Exemple #3
0
    public void ShowCanvas(GCanvas canvas)
    {
        if (showingCanvasIdx < 0 || showingCanvasIdx == (int)canvas)
        {
            return;
        }

        // 最後一次顯示的canvas隱藏
        CanvasObjs[showingCanvasIdx].SetActive(false);

        // 更新目前顯示的canvas index
        showingCanvasIdx = (int)canvas;

        // 顯示canvas
        CanvasObjs[(int)canvas].SetActive(true);

        if (canvas == GCanvas.BattleHistory ||
            canvas == GCanvas.Market ||
            canvas == GCanvas.NormalStage ||
            canvas == GCanvas.Setting ||
            canvas == GCanvas.TeamInfo)
        {
            GeneralUIManager.instance.ShowBackButton();
        }
        else
        {
            GeneralUIManager.instance.HideBackButton();
        }
    }
Exemple #4
0
        /// <summary>
        /// Initialize the base controls
        /// </summary>
        public void init()
        {
            _Form              = new GForm();
            _Form.owner        = _Owner;
            _Form.caller       = _Caller;
            _Form.ecs_instance = _ECSInstance;
            _Form.bounds       = new Rectangle(_Position.X, _Position.Y, _Dimensions.X, _Dimensions.Y);

            _Canvas              = new GCanvas();
            _Canvas.owner        = _Owner;
            _Canvas.caller       = _Caller;
            _Canvas.ecs_instance = _ECSInstance;
            _Canvas.bounds       = new Rectangle(_Position.X, _Position.Y, _Dimensions.X, _Dimensions.Y);

            _Frame              = new GFrame();
            _Frame.owner        = _Owner;
            _Frame.caller       = _Caller;
            _Frame.ecs_instance = _ECSInstance;
            _Frame.bounds       = new Rectangle(_Position.X, _Position.Y, _Dimensions.X, _Dimensions.Y);

            _Button              = new GButton();
            _Button.owner        = _Owner;
            _Button.caller       = _Caller;
            _Button.ecs_instance = _ECSInstance;
            _Button.bounds       = new Rectangle(_Position.X, _Position.Y, _Dimensions.X, _ButtonHeight);
        }
Exemple #5
0
 public static void BotRFT(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
 {
     BotRFTLines = new GLine[SpanVals.Length];
     //Case of Cantilever at start
     if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
     {
         BotRFTLines[0] = new GLine(gCanvas, new Point(StartPointBotArr[0].X + 0.15 * (EndPointBotArr[0].X - StartPointBotArr[0].X), StartPointBotArr[0].Y - 0.07 * scale),
                                    new Point(StartPointBotArr[0].X + 0.85 * (EndPointBotArr[0].X - StartPointBotArr[0].X), StartPointBotArr[0].Y - 0.07 * scale));
         GeometryEngineRFT.Shapes["RFT"].Add(BotRFTLines[0]);
     }
     for (int i = 1; i < BotRFTLines.Length - 1; i++)
     {
         BotRFTLines[i] = new GLine(gCanvas, new Point(StartPointBotArr[i].X + 0.15 * (EndPointBotArr[i].X - StartPointBotArr[i].X), StartPointBotArr[i].Y - 0.07 * scale),
                                    new Point(StartPointBotArr[i].X + 0.85 * (EndPointBotArr[i].X - StartPointBotArr[i].X), StartPointBotArr[i].Y - 0.07 * scale));
         //add to the CANVAS
         GeometryEngineRFT.Shapes["RFT"].Add(BotRFTLines[i]);
     }
     //Case of Cantilever End
     if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
     {
         BotRFTLines[BotRFTLines.Length - 1] = new GLine(gCanvas, new Point(StartPointBotArr[BotRFTLines.Length - 1].X + 0.15 * (EndPointBotArr[BotRFTLines.Length - 1].X - StartPointBotArr[BotRFTLines.Length - 1].X), StartPointBotArr[BotRFTLines.Length - 1].Y - 0.07 * scale),
                                                         new Point(StartPointBotArr[BotRFTLines.Length - 1].X + 0.85 * (EndPointBotArr[BotRFTLines.Length - 1].X - StartPointBotArr[BotRFTLines.Length - 1].X), StartPointBotArr[BotRFTLines.Length - 1].Y - 0.07 * scale));
         GeometryEngineRFT.Shapes["RFT"].Add(BotRFTLines[BotRFTLines.Length - 1]);
     }
 }
Exemple #6
0
        public static void LeftSecStirrups(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            StirrupsLeftSec = new GLine[SpanVals.Length, 3];
            double spacingLeft = 0;

            //For Cantilever At Start:
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                spacingLeft = 0;
                for (int j = 0; j < StirrupsLeftSec.GetLength(1); j++)
                {
                    StirrupsLeftSec[0, j] = new GLine(gCanvas, new Point(StartPointTopArr[0].X + 0.05 * scale + (spacingLeft / 1000) * scale, StartPointTopArr[0].Y + 0.07 * scale)
                                                      , new Point(StartPointBotArr[0].X + 0.05 * scale + (spacingLeft / 1000) * scale, StartPointBotArr[0].Y /* - 0.07 * scale*/));
                    spacingLeft += 150;

                    //add to the CANVAS
                    GeometryEngineRFT.Shapes["RFT"].Add(StirrupsLeftSec[0, j]);
                }
            }

            for (int i = 1; i < StirrupsLeftSec.GetLength(0); i++)
            {
                spacingLeft = 0;
                for (int j = 0; j < StirrupsLeftSec.GetLength(1); j++)
                {
                    StirrupsLeftSec[i, j] = new GLine(gCanvas, new Point(StartPointTopArr[i].X + 0.05 * scale + (spacingLeft / 1000) * scale, StartPointTopArr[i].Y + 0.07 * scale)
                                                      , new Point(StartPointBotArr[i].X + 0.05 * scale + (spacingLeft / 1000) * scale, StartPointBotArr[i].Y /* - 0.07 * scale*/));
                    spacingLeft += 150;

                    //add to the CANVAS
                    GeometryEngineRFT.Shapes["RFT"].Add(StirrupsLeftSec[i, j]);
                }
            }
        }
 /*--------------------------Bottom Lines-------------------------*/
 public static void ConstructBotLines(GCanvas gCanvas, GeometryEngine GeometryEngineRFT)
 {
     for (int i = 0; i < SpanVals.Length; i++)
     {
         BotLineArr[i] = new GLine(gCanvas, StartPointBotArr[i], EndPointBotArr[i]);
         //add to the CANVAS
         GeometryEngineRFT.Shapes["RFT"].Add(BotLineArr[i]);
     }
 }
        public static void CreateTopRFTTxt(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            TopRFTTxt = new GText[SpanVals.Length + 1];
            //Top Support RFT/*------------------*/

            //Case Of Cantilever Start Span
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                if (nRebarTopSupport[0] > 0)
                {
                    TopRFTTxt[0] = new GText(gCanvas, new Point(RFTCanvas.TopRFTLines[0].EndPoint.X /*+ 0.30 * SpanVals[0] * scale*/
                                                                , RFTCanvas.TopRFTLines[0].EndPoint.Y + 0.07 * scale), $"{nRebarTopSupport[0]}T{TopChosenDiameterArr[0]}");
                    GeometryEngineRFT.Shapes["Text"].Add(TopRFTTxt[0]);
                }
                else
                {
                    TopRFTTxt[0] = new GText(gCanvas, new Point(RFTCanvas.TopRFTLines[0].EndPoint.X /*+ 0.30 * SpanVals[0] * scale*/
                                                                , RFTCanvas.TopRFTLines[0].EndPoint.Y + 0.07 * scale), $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(TopRFTTxt[0]);
                }
            }


            for (int i = 1; i < TopRFTTxt.Length - 1; i++)
            {
                if (nRebarTopSupport[i] > 0)
                {
                    TopRFTTxt[i] = new GText(gCanvas, new Point(RFTCanvas.TopRFTLines[i].EndPoint.X /*+ 0.30 * SpanVals[i] * scale*/
                                                                , RFTCanvas.TopRFTLines[i].EndPoint.Y + 0.07 * scale), $"{nRebarTopSupport[i]}T{TopChosenDiameterArr[i]}");
                    GeometryEngineRFT.Shapes["Text"].Add(TopRFTTxt[i]);
                }
                else
                {
                    TopRFTTxt[i] = new GText(gCanvas, new Point(RFTCanvas.TopRFTLines[i].EndPoint.X /*+ 0.30 * SpanVals[i] * scale*/
                                                                , RFTCanvas.TopRFTLines[i].EndPoint.Y + 0.07 * scale), $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(TopRFTTxt[i]);
                }
            }

            //Case of Cantilever end Span
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                if (nRebarTopSupport[TopRFTTxt.Length - 1] > 0)
                {
                    TopRFTTxt[TopRFTTxt.Length - 1] = new GText(gCanvas, new Point(RFTCanvas.TopRFTLines[TopRFTTxt.Length - 1].EndPoint.X /*+ 0.30 * SpanVals[TopRFTTxt.Length - 1] * scale*/
                                                                                   , RFTCanvas.TopRFTLines[TopRFTTxt.Length - 1].EndPoint.Y + 0.07 * scale), $"{nRebarTopSupport[TopRFTTxt.Length - 1]}T{TopChosenDiameterArr[TopRFTTxt.Length - 1]}");
                    GeometryEngineRFT.Shapes["Text"].Add(TopRFTTxt[TopRFTTxt.Length - 1]);
                }
                else
                {
                    TopRFTTxt[TopRFTTxt.Length - 1] = new GText(gCanvas, new Point(RFTCanvas.TopRFTLines[TopRFTTxt.Length - 1].EndPoint.X /*+ 0.30 * SpanVals[TopRFTTxt.Length - 1] * scale*/
                                                                                   , RFTCanvas.TopRFTLines[TopRFTTxt.Length - 1].EndPoint.Y + 0.07 * scale), $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(TopRFTTxt[TopRFTTxt.Length - 1]);
                }
            }
        }
 public static void BotRFT(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
 {
     for (int i = 0; i < BotRFTLines.Length; i++)
     {
         BotRFTLines[i] = new GLine(gCanvas, new Point(StartPointBotArr[i].X + 0.15 * (EndPointBotArr[i].X - StartPointBotArr[i].X), StartPointBotArr[i].Y - 0.07 * scale),
                                    new Point(StartPointBotArr[i].X + 0.85 * (EndPointBotArr[i].X - StartPointBotArr[i].X), StartPointBotArr[i].Y - 0.07 * scale));
         //add to the CANVAS
         GeometryEngineRFT.Shapes["RFT"].Add(BotRFTLines[i]);
     }
 }
Exemple #10
0
        public static void createConsole()
        {
            Entity e = UIFactory.ecs_instance.create();

            GForm form = new GForm();

            GCanvas canvas = new GCanvas();

            GTextBox textBox = new GTextBox();
        }
 public static void CreateBottomRFTTxt(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
 {
     BotRFTTxt = new GText[SpanVals.Length];
     //Case of Cantilever at start
     if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
     {
         if (nRebarBot[0] > 0)
         {
             BotRFTTxt[0] = new GText(gCanvas, new Point(RFTCanvas.StartPointBotArr[0].X + 0.30 * SpanVals[0] * scale
                                                         , RFTCanvas.StartPointBotArr[0].Y - 0.30 * scale), $"{nRebarBot[0]}T{BotChosenDiameterArr[0]}");
             GeometryEngineRFT.Shapes["Text"].Add(BotRFTTxt[0]);
         }
         else
         {
             BotRFTTxt[0] = new GText(gCanvas, new Point(RFTCanvas.StartPointBotArr[0].X + 0.30 * SpanVals[0] * scale
                                                         , RFTCanvas.StartPointBotArr[0].Y - 0.30 * scale), $"Increase Dims");
             GeometryEngineRFT.Shapes["Text"].Add(BotRFTTxt[0]);
         }
     }
     //Bottom Rft Text/*------------------*/
     for (int i = 1; i < BotRFTTxt.Length - 1; i++)
     {
         if (nRebarBot[i] > 0)
         {
             BotRFTTxt[i] = new GText(gCanvas, new Point(RFTCanvas.StartPointBotArr[i].X + 0.30 * SpanVals[i] * scale
                                                         , RFTCanvas.StartPointBotArr[i].Y - 0.30 * scale), $"{nRebarBot[i]}T{BotChosenDiameterArr[i]}");
             GeometryEngineRFT.Shapes["Text"].Add(BotRFTTxt[i]);
         }
         else
         {
             BotRFTTxt[i] = new GText(gCanvas, new Point(RFTCanvas.StartPointBotArr[i].X + 0.30 * SpanVals[i] * scale
                                                         , RFTCanvas.StartPointBotArr[i].Y - 0.30 * scale), $"Increase Dims");
             GeometryEngineRFT.Shapes["Text"].Add(BotRFTTxt[i]);
         }
     }
     //Case of Cantilever End
     if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
     {
         if (nRebarBot[BotRFTTxt.Length - 1] > 0)
         {
             BotRFTTxt[BotRFTTxt.Length - 1] = new GText(gCanvas, new Point(RFTCanvas.StartPointBotArr[BotRFTTxt.Length - 1].X + 0.30 * SpanVals[BotRFTTxt.Length - 1] * scale
                                                                            , RFTCanvas.StartPointBotArr[BotRFTTxt.Length - 1].Y - 0.30 * scale), $"{nRebarBot[BotRFTTxt.Length - 1]}T{BotChosenDiameterArr[BotRFTTxt.Length - 1]}");
             GeometryEngineRFT.Shapes["Text"].Add(BotRFTTxt[BotRFTTxt.Length - 1]);
         }
         else
         {
             BotRFTTxt[BotRFTTxt.Length - 1] = new GText(gCanvas, new Point(RFTCanvas.StartPointBotArr[BotRFTTxt.Length - 1].X + 0.30 * SpanVals[BotRFTTxt.Length - 1] * scale
                                                                            , RFTCanvas.StartPointBotArr[BotRFTTxt.Length - 1].Y - 0.30 * scale), $"Increase Dims");
             GeometryEngineRFT.Shapes["Text"].Add(BotRFTTxt[BotRFTTxt.Length - 1]);
         }
     }
 }
Exemple #12
0
        /// <summary>
        /// creates a timed dialog
        /// </summary>
        /// <param name="caller"></param>
        /// <param name="dialog"></param>
        /// <param name="origin"></param>
        /// <param name="name"></param>
        /// <param name="duration"></param>
        public static void createTimedDialogWindow(Entity caller, String dialog, Vector2 origin, String name, int duration)
        {
            Entity e = ecs_instance.create();

            DialogTimer timer = new DialogTimer(duration, ecs_instance);

            GForm form = new GForm();

            form.caller       = caller;
            form.owner        = e;
            form.ecs_instance = ecs_instance;
            form.bounds       = new Rectangle((int)origin.X, (int)origin.Y, 100, 50);

            GCanvas canvas = new GCanvas();

            canvas.caller       = caller;
            canvas.owner        = e;
            canvas.ecs_instance = ecs_instance;
            canvas.bounds       = new Rectangle((int)origin.X, (int)origin.Y, 200, 200);

            GTextBox textBox = new GTextBox();

            textBox.caller           = caller;
            textBox.owner            = e;
            textBox.ecs_instance     = ecs_instance;
            textBox.bounds           = new Rectangle((int)origin.X, (int)origin.Y, 100, 10);
            textBox.font_name        = "StartScreen";
            textBox.background_name  = "frame";
            textBox.border           = 10;
            textBox.text             = dialog;
            textBox.text_color       = Color.White;
            textBox.autosize         = true;
            textBox.center_text      = true;
            textBox.background_color = Color.Black;
            textBox.transparency     = 0.75f;

            textBox.updating += timer.updateHandler;

            canvas.controls.Add(textBox);

            form.canvas_controls.Add(canvas);

            UserInterface ui = new UserInterface(form);

            //assign component and issue refresh
            ecs_instance.add_component(e, ui);
            ecs_instance.resolve(e);
        }
        public static List <GCircle> ToCircles(this List <Point2D> points, GCanvas gCanvas, Brush fill = null, double radius = 5)
        {
            fill = fill ?? Brushes.Red;

            var result = new List <GCircle>();

            foreach (var p in points)
            {
                result.Add(new GCircle(gCanvas, new Point(p.X, p.Y), radius)
                {
                    Fill   = fill,
                    Stroke = Brushes.Black
                });
            }
            return(result);
        }
Exemple #14
0
        public static void createHitPointLabel(Entity entity, int width, int height, Point position)
        {
            Entity e = ecs_instance.create();

            HpLabelUpdater updater = new HpLabelUpdater(ecs_instance);

            GForm form = new GForm();

            form.owner        = e;
            form.ecs_instance = ecs_instance;
            form.bounds       = new Rectangle(position.X, position.Y, width, height);

            GCanvas canvas = new GCanvas();

            canvas.owner        = e;
            canvas.ecs_instance = ecs_instance;
            canvas.bounds       = new Rectangle(position.X, position.Y, width, height);

            GLabel label = new GLabel();

            label.owner            = e;
            label.caller           = entity;
            label.ecs_instance     = ecs_instance;
            label.bounds           = new Rectangle(position.X, position.Y, width, height);
            label.font_name        = "General";
            label.border           = 5;
            label.background_name  = "frame";
            label.background_color = Color.Gray;
            label.transparency     = 1f;
            label.autosize         = true;
            label.center_text      = true;
            label.text             = "XXX / XXX";
            label.text_color       = Color.Red;
            label.updating        += updater.updateHandler;


            canvas.controls.Add(label);
            form.canvas_controls.Add(canvas);

            UserInterface ui = new UserInterface(form);

            ecs_instance.component_manager.add_component(e, ui);

            ecs_instance.resolve(e);
        }
        public static void ConstructColLines(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            /*----------------------Bottom Start Lines----------------------*/
            for (int i = 0; i < ColLinesBotStart.Length; i++)
            {
                ColLinesBotStart[i] = new GLine(gCanvas, StartPointBotArr[i], new Point(StartPointBotArr[i].X, StartPointBotArr[i].Y + 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesBotStart[i]);
            }
            /*----------------------Bottom End Lines----------------------*/
            for (int i = 0; i < ColLinesBotEnd.Length; i++)
            {
                ColLinesBotEnd[i] = new GLine(gCanvas, EndPointBotArr[i], new Point(EndPointBotArr[i].X, EndPointBotArr[i].Y + 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesBotEnd[i]);
            }

            /*-----------------Top Start Lines---------------*/
            for (int i = 0; i < ColLinesTopStart.Length; i++)
            {
                ColLinesTopStart[i] = new GLine(gCanvas, StartPointTopArr[i], new Point(StartPointTopArr[i].X, StartPointTopArr[i].Y - 0.40 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesTopStart[i]);
            }
            //Top End Lines
            for (int i = 0; i < ColLinesTopEnd.Length; i++)
            {
                ColLinesTopEnd[i] = new GLine(gCanvas, EndPointTopArr[i], new Point(EndPointTopArr[i].X, EndPointTopArr[i].Y - 0.40 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesTopEnd[i]);
            }

            /*-------------Start and End Column Lines-------------*/
            GLine startColLine = new GLine(gCanvas, new Point(StartPointTopArr[0].X - 0.15 * scale, StartPointTopArr[0].Y - 0.40 * scale)
                                           , new Point(StartPointBotArr[0].X - 0.15 * scale, StartPointBotArr[0].Y + 0.40 * scale));

            //add to the CANVAS
            GeometryEngineRFT.Shapes["RFT"].Add(startColLine);

            GLine endColLine = new GLine(gCanvas, new Point(EndPointTopArr[SpanVals.Length - 1].X + 0.15 * scale, EndPointTopArr[SpanVals.Length - 1].Y - 0.40 * scale)
                                         , new Point(EndPointBotArr[SpanVals.Length - 1].X + 0.15 * scale, EndPointBotArr[SpanVals.Length - 1].Y + 0.40 * scale));

            //add to the CANVAS
            GeometryEngineRFT.Shapes["RFT"].Add(endColLine);
        }
        public static void RightSecStirrups(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            double spacingRight = 0;

            for (int i = 0; i < StirrupsRightSec.GetLength(0); i++)
            {
                spacingRight = 0;
                for (int j = 0; j < StirrupsRightSec.GetLength(1); j++)
                {
                    StirrupsRightSec[i, j] = new GLine(gCanvas, new Point(EndPointTopArr[i].X - (0.05 + spacingRight / 1000) * scale, EndPointTopArr[i].Y + 0.07 * scale)
                                                       , new Point(EndPointBotArr[i].X - (0.05 + spacingRight / 1000) * scale, EndPointBotArr[i].Y /* -  0.07 * scale*/));
                    spacingRight += 150;

                    //add to the CANVAS
                    GeometryEngineRFT.Shapes["RFT"].Add(StirrupsRightSec[i, j]);
                }
            }
        }
        public static List <GLine> ToLines(this List <Point2D> points, GCanvas gCanvas)
        {
            var result = new List <GLine>();

            for (int i = 0; i < points.Count - 1; i += 2)
            {
                if (i == points.Count - 1)
                {
                    return(result);
                }

                result.Add(new GLine(gCanvas, new Point2D(points[i].X, points[i].Y), new Point2D(points[i + 1].X, points[i + 1].Y))
                {
                    Fill   = Brushes.Red,
                    Stroke = Brushes.Red
                });
            }
            return(result);
        }
        public static void TopRFT(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            TopRFTLines[0] = new GLine(gCanvas, new Point(StartPointTopArr[0].X, StartPointTopArr[0].Y + 0.07 * scale),
                                       new Point(StartPointTopArr[0].X + 0.20 * (EndPointTopArr[0].X - StartPointTopArr[0].X), StartPointTopArr[0].Y + 0.07 * scale));
            //add to the CANVAS
            GeometryEngineRFT.Shapes["RFT"].Add(TopRFTLines[0]);

            for (int i = 1; i < TopRFTLines.Length - 1; i++)
            {
                TopRFTLines[i] = new GLine(gCanvas, new Point(EndPointTopArr[i - 1].X - 0.20 * (EndPointTopArr[i - 1].X - StartPointTopArr[i - 1].X), EndPointTopArr[i - 1].Y + 0.07 * scale),
                                           new Point(StartPointTopArr[i].X + 0.20 * (EndPointTopArr[i].X - StartPointTopArr[i].X), StartPointTopArr[i].Y + 0.07 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(TopRFTLines[i]);
            }

            TopRFTLines[TopRFTLines.Length - 1] = new GLine(gCanvas, new Point(StartPointTopArr[TopRFTLines.Length - 2].X + 0.80 * (EndPointTopArr[TopRFTLines.Length - 2].X - StartPointTopArr[TopRFTLines.Length - 2].X), StartPointTopArr[TopRFTLines.Length - 2].Y + 0.07 * scale),
                                                            new Point(EndPointTopArr[TopRFTLines.Length - 2].X, EndPointTopArr[TopRFTLines.Length - 2].Y + 0.07 * scale));
            //add to the CANVAS
            GeometryEngineRFT.Shapes["RFT"].Add(TopRFTLines[TopRFTLines.Length - 1]);
        }
Exemple #19
0
        /// <summary>
        /// initialize menu
        /// </summary>
        public void init()
        {
            //setup form
            _Form              = new GForm();
            _Form.owner        = _Owner;
            _Form.caller       = _Caller;
            _Form.ecs_instance = _ECSInstance;
            _Form.bounds       = new Rectangle(_Position.X, _Position.Y, _Width + 2 * _border, (_Height + _Spacing) * _ButtonCount + 2 * _border);

            //setup canvas
            _Canvas              = new GCanvas();
            _Canvas.owner        = _Owner;
            _Canvas.caller       = _Caller;
            _Canvas.ecs_instance = _ECSInstance;
            _Canvas.bounds       = new Rectangle(_Position.X, _Position.Y, _Width + 2 * _border, (_Height + _Spacing) * _ButtonCount + 2 * _border);

            //setup frame
            _Frame              = new GFrame();
            _Frame.owner        = _Owner;
            _Frame.caller       = _Caller;
            _Frame.ecs_instance = _ECSInstance;
            _Frame.bounds       = new Rectangle(_Position.X, _Position.Y, _Width + 2 * _border, (_Height + _Spacing) * _ButtonCount + 2 * _border);

            //_Canvas.Controls.Add(_Frame);

            for (int i = 0; i < _ButtonCount; i++)
            {
                GButton button = new GButton();
                button.owner        = _Owner;
                button.caller       = _Caller;
                button.ecs_instance = _ECSInstance;
                button.bounds       = new Rectangle(_Position.X + _border, _Position.Y + _border + i * (_Height + _Spacing), _Width, _Height);

                //_Canvas.Controls.Add(button);
                _Buttons.Add(button);
            }

            //_Form.CanvasControls.Add(_Canvas);
        }
Exemple #20
0
        public static GFrame createMousePointer(Point position, int width, int height, string textureName, InterfaceHandler handler)
        {
            Entity e = ecs_instance.create();

            GForm form = new GForm();

            form.owner        = e;
            form.ecs_instance = ecs_instance;
            form.bounds       = new Rectangle(position.X, position.Y, width, height);

            GCanvas canvas = new GCanvas();

            canvas.owner        = e;
            canvas.ecs_instance = ecs_instance;
            canvas.bounds       = new Rectangle(position.X, position.Y, width, height);

            GFrame frame = new GFrame();

            frame.owner           = e;
            frame.ecs_instance    = ecs_instance;
            frame.bounds          = new Rectangle(position.X, position.Y, width, height);
            frame.background_name = textureName;

            frame.updating += handler;

            canvas.controls.Add(frame);

            form.canvas_controls.Add(canvas);

            UserInterface ui = new UserInterface(form);

            ecs_instance.component_manager.add_component(e, ui);

            ecs_instance.resolve(e);

            return(frame);
        }
Exemple #21
0
        public static void createFrame(Entity caller, Point Position, int height, int width, string textureName)
        {
            Entity e = ecs_instance.create();

            GForm form = new GForm();

            form.caller       = caller;
            form.owner        = e;
            form.ecs_instance = ecs_instance;
            form.bounds       = new Rectangle(Position.X, Position.Y, width, height);

            GCanvas canvas = new GCanvas();

            canvas.caller       = caller;
            canvas.owner        = e;
            canvas.ecs_instance = ecs_instance;
            canvas.bounds       = new Rectangle(Position.X, Position.Y, width, height);

            GFrame frame = new GFrame();

            frame.caller          = caller;
            frame.owner           = e;
            frame.ecs_instance    = ecs_instance;
            frame.bounds          = new Rectangle(Position.X, Position.Y, width, height);
            frame.background_name = textureName;

            canvas.controls.Add(frame);

            form.canvas_controls.Add(canvas);

            UserInterface ui = new UserInterface(form);

            ecs_instance.component_manager.add_component(e, ui);

            ecs_instance.resolve(e);
        }
        public static void StirrupRightTxt(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            stirRightTxt = new GText[SpanVals.Length];
            //Stirrups Text Left/*------------------*/
            double fystr = -1;



            for (int i = 0; i < stirRightTxt.Length - 1; i++)
            {
                if (indexesRight[i] != -2)
                {
                    if (indexesRight[i] < stirDiaArr240.Length)
                    {
                        fystr           = 240;
                        stirRightTxt[i] = new GText(gCanvas
                                                    , new Point(RFTCanvas.StirrupsRightSec[i, 2].StartPoint.X - 0.7 * scale, RFTCanvas.StirrupsRightSec[i, 2].StartPoint.Y - 0.30 * scale)
                                                    , $"Y{stirDiaArr240[indexesRight[i]]}@{spacingRightSec[i]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[i]);
                    }
                    else if (indexesRight[i] < stirDiaArr240.Length + stirDiaArr360.Length)
                    {
                        fystr           = 360;
                        stirRightTxt[i] = new GText(gCanvas
                                                    , new Point(RFTCanvas.StirrupsRightSec[i, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[i, 2].StartPoint.Y - 0.30 * scale)
                                                    , $"T{stirDiaArr360[indexesRight[i] - stirDiaArr240.Length]}@{spacingRightSec[i]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[i]);
                    }
                    else if (indexesRight[i] < stirDiaArr240.Length + stirDiaArr360.Length + stirDiaArr400.Length)
                    {
                        fystr           = 400;
                        stirRightTxt[i] = new GText(gCanvas
                                                    , new Point(RFTCanvas.StirrupsRightSec[i, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[i, 2].StartPoint.Y - 0.30 * scale)
                                                    , $"T{stirDiaArr400[indexesRight[i] - stirDiaArr360.Length - stirDiaArr240.Length]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[i]);
                    }
                }
                else
                {
                    stirRightTxt[i] = new GText(gCanvas
                                                , new Point(RFTCanvas.StirrupsRightSec[i, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[i, 2].StartPoint.Y - 0.30 * scale)
                                                , $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[i]);
                }
            }

            //Case Of Cantilever at right End
            #region Case of Cantilever at right end
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                if (indexesRight[stirRightTxt.Length - 1] != -2)
                {
                    if (indexesRight[stirRightTxt.Length - 1] < stirDiaArr240.Length)
                    {
                        fystr = 240;
                        stirRightTxt[stirRightTxt.Length - 1] = new GText(gCanvas
                                                                          , new Point(RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.Y - 0.30 * scale)
                                                                          , $"Y{stirDiaArr240[indexesRight[stirRightTxt.Length - 1]]}@{spacingRightSec[stirRightTxt.Length - 1]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[stirRightTxt.Length - 1]);
                    }
                    else if (indexesRight[stirRightTxt.Length - 1] < stirDiaArr240.Length + stirDiaArr360.Length)
                    {
                        fystr = 360;
                        stirRightTxt[stirRightTxt.Length - 1] = new GText(gCanvas
                                                                          , new Point(RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.Y - 0.30 * scale)
                                                                          , $"T{stirDiaArr360[indexesRight[stirRightTxt.Length - 1] - stirDiaArr240.Length]}@{spacingRightSec[stirRightTxt.Length - 1]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[stirRightTxt.Length - 1]);
                    }
                    else if (indexesRight[stirRightTxt.Length - 1] < stirDiaArr240.Length + stirDiaArr360.Length + stirDiaArr400.Length)
                    {
                        fystr = 400;
                        stirRightTxt[stirRightTxt.Length - 1] = new GText(gCanvas
                                                                          , new Point(RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.Y - 0.30 * scale)
                                                                          , $"T{stirDiaArr400[indexesRight[stirRightTxt.Length - 1] - stirDiaArr360.Length - stirDiaArr240.Length]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[stirRightTxt.Length - 1]);
                    }
                }
                else
                {
                    stirRightTxt[stirRightTxt.Length - 1] = new GText(gCanvas
                                                                      , new Point(RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.X - 0.70 * scale, RFTCanvas.StirrupsRightSec[stirRightTxt.Length - 1, 2].StartPoint.Y - 0.30 * scale)
                                                                      , $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(stirRightTxt[stirRightTxt.Length - 1]);
                }
            }
            #endregion
        }
        public static void StirrupLeftTxt(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            stirLeftTxt = new GText[SpanVals.Length];
            //Stirrups Text Left/*------------------*/
            double fystr = -1;

            /*Case Of Cantilever at left End*/
            #region Case of Cantilever at start
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                if (indexesLeft[0] != -2)
                {
                    if (indexesLeft[0] < stirDiaArr240.Length)
                    {
                        fystr          = 240;
                        stirLeftTxt[0] = new GText(gCanvas
                                                   , new Point(RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.Y - 0.40 * scale)
                                                   , $"Y{stirDiaArr240[indexesLeft[0]]}@{spacingLeftSec[0]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[0]);
                    }
                    else if (indexesLeft[0] < stirDiaArr240.Length + stirDiaArr360.Length)
                    {
                        fystr          = 360;
                        stirLeftTxt[0] = new GText(gCanvas
                                                   , new Point(RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.Y - 0.40 * scale)
                                                   , $"T{stirDiaArr360[indexesLeft[0] - stirDiaArr240.Length]}@{spacingLeftSec[0]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[0]);
                    }
                    else if (indexesLeft[0] < stirDiaArr240.Length + stirDiaArr360.Length + stirDiaArr400.Length)
                    {
                        fystr          = 400;
                        stirLeftTxt[0] = new GText(gCanvas
                                                   , new Point(RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.Y - 0.40 * scale)
                                                   , $"T{stirDiaArr400[indexesLeft[0] - stirDiaArr360.Length - stirDiaArr240.Length]}@{spacingLeftSec[0]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[0]);
                    }
                }
                else
                {
                    stirLeftTxt[0] = new GText(gCanvas
                                               , new Point(RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[0, 2].StartPoint.Y - 0.40 * scale)
                                               , $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[0]);
                }
            }
            #endregion


            for (int i = 1; i < stirLeftTxt.Length; i++)
            {
                if (indexesLeft[i] != -2)
                {
                    if (indexesLeft[i] < stirDiaArr240.Length)
                    {
                        fystr          = 240;
                        stirLeftTxt[i] = new GText(gCanvas
                                                   , new Point(RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.Y - 0.40 * scale)
                                                   , $"Y{stirDiaArr240[indexesLeft[i]]}@{spacingLeftSec[i]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[i]);
                    }
                    else if (indexesLeft[i] < stirDiaArr240.Length + stirDiaArr360.Length)
                    {
                        fystr          = 360;
                        stirLeftTxt[i] = new GText(gCanvas
                                                   , new Point(RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.Y - 0.40 * scale)
                                                   , $"T{stirDiaArr360[indexesLeft[i] - stirDiaArr240.Length]}@{spacingLeftSec[i]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[i]);
                    }
                    else if (indexesLeft[i] < stirDiaArr240.Length + stirDiaArr360.Length + stirDiaArr400.Length)
                    {
                        fystr          = 400;
                        stirLeftTxt[i] = new GText(gCanvas
                                                   , new Point(RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.Y - 0.40 * scale)
                                                   , $"T{stirDiaArr400[indexesLeft[i] - stirDiaArr360.Length - stirDiaArr240.Length]}@{spacingLeftSec[i]}");
                        GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[i]);
                    }
                }
                else
                {
                    stirLeftTxt[i] = new GText(gCanvas
                                               , new Point(RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.X, RFTCanvas.StirrupsLeftSec[i, 2].StartPoint.Y - 0.40 * scale)
                                               , $"Increase Dims");
                    GeometryEngineRFT.Shapes["Text"].Add(stirLeftTxt[i]);
                }
            }
        }
Exemple #24
0
        public static void ConstructColLines(GCanvas gCanvas, GeometryEngine GeometryEngineRFT, double scale)
        {
            ColLinesTopStart = new GLine[SpanVals.Length];
            ColLinesTopEnd   = new GLine[SpanVals.Length];
            ColLinesBotStart = new GLine[SpanVals.Length];
            ColLinesBotEnd   = new GLine[SpanVals.Length];
            /*----------------------Bottom Start Lines----------------------*/
            //Case Of Cantilever at start
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                ColLinesBotStart[0] = new GLine(gCanvas, StartPointBotArr[0], new Point(StartPointBotArr[0].X, StartPointBotArr[0].Y + 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesBotStart[0]);
            }
            else
            {
                GLine comLineBotStart = new GLine(gCanvas, StartPointBotArr[0], new Point(StartPointBotArr[0].X - 0.15 * scale, StartPointBotArr[0].Y));
                GeometryEngineRFT.Shapes["RFT"].Add(comLineBotStart);
            }
            for (int i = 1; i < ColLinesBotStart.Length; i++)
            {
                ColLinesBotStart[i] = new GLine(gCanvas, StartPointBotArr[i], new Point(StartPointBotArr[i].X, StartPointBotArr[i].Y + 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesBotStart[i]);
            }
            /*----------------------Bottom End Lines----------------------*/
            for (int i = 0; i < ColLinesBotEnd.Length - 1; i++)
            {
                ColLinesBotEnd[i] = new GLine(gCanvas, EndPointBotArr[i], new Point(EndPointBotArr[i].X, EndPointBotArr[i].Y + 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesBotEnd[i]);
            }
            //Case Of Cantilever at End
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                ColLinesBotEnd[ColLinesBotEnd.Length - 1] = new GLine(gCanvas, EndPointBotArr[ColLinesBotEnd.Length - 1], new Point(EndPointBotArr[ColLinesBotEnd.Length - 1].X, EndPointBotArr[ColLinesBotEnd.Length - 1].Y + 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesBotEnd[ColLinesBotEnd.Length - 1]);
            }
            else
            {
                GLine comLineBotEnd = new GLine(gCanvas, EndPointBotArr[ColLinesBotEnd.Length - 1], new Point(EndPointBotArr[ColLinesBotEnd.Length - 1].X + 0.15 * scale, EndPointBotArr[ColLinesBotEnd.Length - 1].Y));
                GeometryEngineRFT.Shapes["RFT"].Add(comLineBotEnd);
            }

            /*-----------------Top Start Lines---------------*/
            //Case Of Cantilever at start
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                ColLinesTopStart[0] = new GLine(gCanvas, StartPointTopArr[0], new Point(StartPointTopArr[0].X, StartPointTopArr[0].Y - 0.4 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesTopStart[0]);
            }
            else
            {
                GLine comLineTopStart = new GLine(gCanvas, StartPointTopArr[0], new Point(StartPointTopArr[0].X - 0.15 * scale, StartPointTopArr[0].Y));
                GeometryEngineRFT.Shapes["RFT"].Add(comLineTopStart);
            }

            for (int i = 1; i < ColLinesTopStart.Length; i++)
            {
                ColLinesTopStart[i] = new GLine(gCanvas, StartPointTopArr[i], new Point(StartPointTopArr[i].X, StartPointTopArr[i].Y - 0.40 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesTopStart[i]);
            }

            /*-----------------Top End Lines---------------*/
            for (int i = 0; i < ColLinesTopEnd.Length - 1; i++)
            {
                ColLinesTopEnd[i] = new GLine(gCanvas, EndPointTopArr[i], new Point(EndPointTopArr[i].X, EndPointTopArr[i].Y - 0.40 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesTopEnd[i]);
            }

            //Case Of Cantilever at End
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                ColLinesTopEnd[ColLinesTopEnd.Length - 1] = new GLine(gCanvas, EndPointTopArr[ColLinesBotEnd.Length - 1], new Point(EndPointTopArr[ColLinesBotEnd.Length - 1].X, EndPointTopArr[ColLinesBotEnd.Length - 1].Y - 0.4 * scale));//---
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(ColLinesTopEnd[ColLinesTopEnd.Length - 1]);
            }
            else
            {
                GLine comLineTopEnd = new GLine(gCanvas, EndPointTopArr[ColLinesBotEnd.Length - 1], new Point(EndPointTopArr[ColLinesBotEnd.Length - 1].X + 0.15 * scale, EndPointTopArr[ColLinesBotEnd.Length - 1].Y));
                GeometryEngineRFT.Shapes["RFT"].Add(comLineTopEnd);
            }

            /*-------------Start and End Column Lines-------------*/
            //Start Column Line
            //Case of Cantilever at start:
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[0].SelectedRestraint != Restraints.NoRestraints)
            {
                GLine startColLine = new GLine(gCanvas, new Point(StartPointTopArr[0].X - 0.15 * scale, StartPointTopArr[0].Y - 0.40 * scale)
                                               , new Point(StartPointBotArr[0].X - 0.15 * scale, StartPointBotArr[0].Y + 0.40 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(startColLine);
            }
            else
            {
                GLine startColLine = new GLine(gCanvas, new Point(StartPointTopArr[0].X - 0.15 * scale, StartPointTopArr[0].Y)
                                               , new Point(StartPointBotArr[0].X - 0.15 * scale, StartPointBotArr[0].Y));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(startColLine);
            }

            //End Colimn Line
            //Case of Cantilever at end
            if (GeometryEditorVM.GeometryEditor.RestraintsCollection[SpanVals.Length].SelectedRestraint != Restraints.NoRestraints)
            {
                GLine endColLine = new GLine(gCanvas, new Point(EndPointTopArr[SpanVals.Length - 1].X + 0.15 * scale, EndPointTopArr[SpanVals.Length - 1].Y - 0.40 * scale)
                                             , new Point(EndPointBotArr[SpanVals.Length - 1].X + 0.15 * scale, EndPointBotArr[SpanVals.Length - 1].Y + 0.40 * scale));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(endColLine);
            }
            else
            {
                GLine endColLine = new GLine(gCanvas, new Point(EndPointTopArr[SpanVals.Length - 1].X + 0.15 * scale, EndPointTopArr[SpanVals.Length - 1].Y)
                                             , new Point(EndPointBotArr[SpanVals.Length - 1].X + 0.15 * scale, EndPointBotArr[SpanVals.Length - 1].Y));
                //add to the CANVAS
                GeometryEngineRFT.Shapes["RFT"].Add(endColLine);
            }
        }