public void Execute()
            {
                var currentExpanded = CurrentOuter.SizeX > 0 && CurrentOuter.SizeY > 0 ? CurrentOuter.GetExpanded(2) : default(SgtLongRect);
                var pendingExpanded = PendingOuter.GetExpanded(2);
                var expandedStep    = (int)currentExpanded.SizeX + 1;
                var index           = 0;

                for (var y = pendingExpanded.minY; y <= pendingExpanded.maxY; y++)
                {
                    for (var x = pendingExpanded.minX; x <= pendingExpanded.maxX; x++)
                    {
                        if (currentExpanded.Contains(x, y) == true)
                        {
                            var expandedX = (int)(x - currentExpanded.minX);
                            var expandedY = (int)(y - currentExpanded.minY);

                            PendingPoints[index] = CurrentPoints[expandedX + expandedY * expandedStep];

                            Heights[index] = double.NegativeInfinity;
                        }
                        else
                        {
                            var faceU = (x + Middle) * Step;
                            var faceV = (y + Middle) * Step;
                            var faceW = 0.0;

                            if (faceU < 0.0)
                            {
                                faceW = -faceU; faceU = 0.0;
                            }
                            if (faceV < 0.0)
                            {
                                faceW = -faceV; faceV = 0.0;
                            }
                            if (faceU > 1.0)
                            {
                                faceW = faceU - 1.0; faceU = 1.0;
                            }
                            if (faceV > 1.0)
                            {
                                faceW = faceV - 1.0; faceV = 1.0;
                            }

                            var cubePos = CubeC + CubeH * faceU + CubeV * faceV + CubeO * faceW;

                            PendingPoints[index] = SgtTerrainTopology.UnitCubeToSphere(cubePos);

                            Heights[index] = Radius;
                        }

                        index++;
                    }
                }
            }