private void MirrorAllShapes(NodeBuilder liveShape)
        {
            var bounding = ComputeEnclosingBoundingBox();

            if (liveShape.LastExecute)
            {
                bounding = CombineBoundingBoxWithShape(liveShape, bounding);
            }

            _mirrorDocument.Undo();
            _mirrorDocument.Transact();
            var floorRectangle = BuildFloor(bounding);

            var plane           = ShapeUtils.ExtractPlaneFromFaceShape(floorRectangle.Shape);
            var mirrorTransform = ShapeUtils.ExtractPlaneMirrorTransform(plane);

            ClearMirrors();
            if (liveShape.LastExecute)
            {
                MirrorBuilder(liveShape, mirrorTransform);
            }
            foreach (var shapeNode in _document.Root.Children.Values)
            {
                GetCacheItem(shapeNode.Index, mirrorTransform);
            }

            ViewRedraw();
        }