public PrimitiveRect(Level pointer, Point createPoint)
            : base(pointer)
        {
            shape = new Rectangle();
            x = createPoint.X;
            y = createPoint.Y;
            w = 0;
            h = 0;
            shape.RenderTransform = new RotateTransform();
            shape.Stroke = new SolidColorBrush((Color)MainWindow.window.lineColorSelect.SelectedColor);
            shape.StrokeThickness = MainWindow.window.lineThickness.SelectedIndex;
            shape.Fill = new SolidColorBrush((Color)MainWindow.window.fillColorSelect.SelectedColor);
            shape.ContextMenu = new ContextMenu();

            MenuItem menuItem1 = new MenuItem();
            menuItem1.Header = "Bring to front";
            menuItem1.Click += delegate { pointer.MovePrimToFront(this); };

            MenuItem menuItem2 = new MenuItem();
            menuItem2.Header = "Bring forward";
            menuItem2.Click += delegate { pointer.MovePrimForward(this); };

            MenuItem menuItem3 = new MenuItem();
            menuItem3.Header = "Bring backward";
            menuItem3.Click += delegate { pointer.MovePrimBackward(this); };

            MenuItem menuItem4 = new MenuItem();
            menuItem4.Header = "Bring to back";
            menuItem4.Click += delegate { pointer.MovePrimToBack(this); };

            shape.ContextMenu.Items.Add(menuItem1);
            shape.ContextMenu.Items.Add(menuItem2);
            shape.ContextMenu.Items.Add(menuItem3);
            shape.ContextMenu.Items.Add(menuItem4);

            //Vertices
            topLeftVS = new VertexSelector(canvas, x, y);
            topRightVS = new VertexSelector(canvas, x, y);
            botLeftVS = new VertexSelector(canvas, x, y);
            botRightVS = new VertexSelector(canvas, x, y);

            topLeftVS.rect.Cursor = Cursors.SizeNWSE;
            topRightVS.rect.Cursor = Cursors.SizeNESW;
            botLeftVS.rect.Cursor = Cursors.SizeNESW;
            botRightVS.rect.Cursor = Cursors.SizeNWSE;

            vertexSelectors.Add(topLeftVS);
            vertexSelectors.Add(topRightVS);
            vertexSelectors.Add(botLeftVS);
            vertexSelectors.Add(botRightVS);

            //Edges
            topES = new EdgeSelector(canvas, 0, 0);
            botES = new EdgeSelector(canvas, 0, 0);
            leftES = new EdgeSelector(canvas, 0, 0);
            rightES = new EdgeSelector(canvas, 0, 0);

            topES.line.Cursor = Cursors.SizeNS;
            botES.line.Cursor = Cursors.SizeNS;
            leftES.line.Cursor = Cursors.SizeWE;
            rightES.line.Cursor = Cursors.SizeWE;

            edgeSelectors.Add(topES);
            edgeSelectors.Add(botES);
            edgeSelectors.Add(leftES);
            edgeSelectors.Add(rightES);

            canvas.Children.Add(shape);
        }