public ExplicitShape1 Union(ExplicitShape1 shape)
            {
                var newRect  = GridInterval.UnionBoundingBox(storageBounds, shape.storageBounds);
                var newShape = ImplicitShape.Union(implicitShape, shape.implicitShape);

                return(new ExplicitShape1(newShape, newRect));
            }
            public ExplicitShape3 Union(ExplicitShape3 shape2)
            {
                var newRect  = GridBounds.UnionBoundingBox(storageBounds, shape2.storageBounds);
                var newShape = ImplicitShape.Union(implicitShape, shape2.implicitShape);

                return(new ExplicitShape3(newShape, newRect));
            }