public void SetBracketExpressionPosition(Position containerOrigin, BracketExpression bracketExpression)
        {
            bracketExpression.Position = containerOrigin;

            containerOrigin.X += Paths.GetBracketLength();

            SetElementPosition(containerOrigin, bracketExpression.InnerExpression);

            containerOrigin.X += Paths.GetBracketLength();
        }
        protected void ExportBracketExpression(Graphics graphics, BracketExpression bracketExpression)
        {
            ExportElement(graphics, bracketExpression.InnerExpression);

            var g1 = _fontLoader.GetGlyph("normal", "none", "(");
            var g2 = _fontLoader.GetGlyph("normal", "none", ")");

            var w = g1.Width;
            var h = bracketExpression.InnerExpression.OuterHeight;

            var x1 = (float)(bracketExpression.Position.X.Quantity);
            var y1 = (float)bracketExpression.Position.Y.Quantity;

            var x2 = (float)(bracketExpression.Position.X.Quantity + bracketExpression.InnerExpression.OuterWidth.Quantity);
            var y2 = (float)bracketExpression.Position.Y.Quantity;

            var p1 = PathConverter.ConvertPath(new Path()
            {
                Commands = g1.PathCommands
            });                                                                            // Paths.GetBracketPath(new PointF(, , (float)h.Quantity);

            var p2 = PathConverter.ConvertPath(new Path()
            {
                Commands = g2.PathCommands
            });                                                                            // Paths.GetBracketPath(new PointF(, ), (float)h.Quantity, ")");

            var m1 = new System.Drawing.Drawing2D.Matrix();
            var m2 = new System.Drawing.Drawing2D.Matrix();

            var sf = (float)h.Quantity / (1.7f * 20.0f);

            m1.Scale(sf, sf);
            m1.Translate(x1 / sf, y1 / sf + 25f);

            m2.Scale(sf, sf);
            m2.Translate(x2 / sf, y2 / sf + 25f);

            p1.Transform(m1);
            p2.Transform(m2);

            graphics.FillPath(Brushes.Black, p1);
            graphics.FillPath(Brushes.Black, p2);

            if (bracketExpression.DrawConstructionLines == true)
            {
                DrawConstructionLines(graphics, bracketExpression.Position, bracketExpression.SizeIncludingOuterMargin);
            }
        }
        public void SetBracketExpressionSize(BracketExpression bracketExpression)
        {
            SetElementSize(bracketExpression.InnerExpression);

            bracketExpression.SizeOfContent.Width = bracketExpression.InnerExpression.OuterWidth + 2 * Paths.GetBracketLength();

            bracketExpression.SizeOfContent.Height = bracketExpression.InnerExpression.OuterHeight;

            SetSizesOfElement(bracketExpression);

            var centreAlignmentPoint = new Position();

            centreAlignmentPoint.X = bracketExpression.OuterWidth / 2;
            centreAlignmentPoint.Y = bracketExpression.OuterHeight / 2;

            bracketExpression.CentreAlignmentPoint = centreAlignmentPoint;
        }