int newBlockSize = split * split;
    private void createQuadPage(int size, int blockSize, Vector3f stepScale,            int[] heightMap, boolean clod) {        LoggingSystem.getLogger().log(Level.INFO,        "Creating Page");        //      create 4 terrain pages        Vector2f tempOffset = new Vector2f();        int quarterSize = size >> 2;        offsetAmount += quarterSize;        int split = (size + 1) / 2;        int newBlockSize = split * split;        //1 upper left        int[] heightBlock1 = new int[newBlockSize];        int count = 0;        for (int i = 0; i < split; i++) {            for (int j = 0; j < split; j++) {                heightBlock1[count++] = heightMap[j + (i * size)];            }        }        Vector3f origin1 = new Vector3f(-quarterSize * stepScale.x, 0,                -quarterSize * stepScale.z);        tempOffset.x = offset.x;        tempOffset.y = offset.y;        tempOffset.x += origin1.x;        tempOffset.y += origin1.z;        TerrainPage page1 = new TerrainPage(name + "Page1", blockSize, split,                stepScale, heightBlock1, clod, totalSize, tempOffset,                offsetAmount);        page1.setLocalTranslation(origin1);        this.attachChild(page1);        //2 lower left        int[] heightBlock2 = new int[newBlockSize];        count = 0;        for (int i = split - 1; i < size; i++) {            for (int j = 0; j < split; j++) {                heightBlock2[count++] = heightMap[j + (i * size)];            }        }        Vector3f origin2 = new Vector3f(-quarterSize * stepScale.x, 0,                quarterSize * stepScale.z);        tempOffset.x = offset.x;        tempOffset.y = offset.y;        tempOffset.x += origin2.x;        tempOffset.y += origin2.z;        TerrainPage page2 = new TerrainPage(name + "Page2", blockSize, split,                stepScale, heightBlock2, clod, totalSize, tempOffset,                offsetAmount);        page2.setLocalTranslation(origin2);        this.attachChild(page2);        //3 lower right        int[] heightBlock3 = new int[newBlockSize];        count = 0;        for (int i = 0; i < split; i++) {            for (int j = split - 1; j < size; j++) {                heightBlock3[count++] = heightMap[j + (i * size)];            }        }        Vector3f origin3 = new Vector3f(quarterSize * stepScale.x, 0,                -quarterSize * stepScale.z);        tempOffset.x = offset.x;        tempOffset.y = offset.y;        tempOffset.x += origin3.x;        tempOffset.y += origin3.z;        TerrainPage page3 = new TerrainPage(name + "Page3", blockSize, split,                stepScale, heightBlock3, clod, totalSize, tempOffset,                offsetAmount);        page3.setLocalTranslation(origin3);        this.attachChild(page3);        ////        //4 upper right        int[] heightBlock4 = new int[newBlockSize];        count = 0;        for (int i = split - 1; i < size; i++) {            for (int j = split - 1; j < size; j++) {                heightBlock4[count++] = heightMap[j + (i * size)];            }        }        Vector3f origin4 = new Vector3f(quarterSize * stepScale.x, 0,                quarterSize * stepScale.z);        tempOffset.x = offset.x;        tempOffset.y = offset.y;        tempOffset.x += origin4.x;        tempOffset.y += origin4.z;        TerrainPage page4 = new TerrainPage(name + "Page4", blockSize, split,                stepScale, heightBlock4, clod, totalSize, tempOffset,                offsetAmount);        page4.setLocalTranslation(origin4);        this.attachChild(page4);    }