Esempio n. 1
0
    void TriangulateGapCell(int x, int y, int z)
    {
        /*
         * Voxel dummySwap1 = dummyT1;
         * Voxel dummySwap2 = dummyT2;
         * dummySwap1.BecomeDummyXOf(xNeighbor.voxels[MathUtils.getIndexFromXYZ(0, y, z + 1, resolution)], gridSize); // f
         * dummySwap2.BecomeDummyXOf(xNeighbor.voxels[MathUtils.getIndexFromXYZ(0, y + 1, z + 1, resolution)], gridSize); // g
         *
         * dummyT1 = dummy1; // b
         * dummy1 = dummySwap1; // f
         *
         * dummyT2 = dummy2; // c
         * dummy2 = dummySwap2; // g
         */
        Voxel c, b, f, g;

        c = new Voxel();
        b = new Voxel();
        f = new Voxel();
        g = new Voxel();

        c.BecomeDummyXOf(xNeighbor.voxels[MathUtils.getIndexFromXYZ(0, y + 1, z, resolution)], gridSize);
        b.BecomeDummyXOf(xNeighbor.voxels[MathUtils.getIndexFromXYZ(0, y, z, resolution)], gridSize);
        f.BecomeDummyXOf(xNeighbor.voxels[MathUtils.getIndexFromXYZ(0, y, z + 1, resolution)], gridSize);
        g.BecomeDummyXOf(xNeighbor.voxels[MathUtils.getIndexFromXYZ(0, y + 1, z + 1, resolution)], gridSize);

        TriangulateCell(
            voxels[MathUtils.getIndexFromXYZ(x, y, z, resolution)],
            b,
            c,
            voxels[MathUtils.getIndexFromXYZ(x, y + 1, z, resolution)],
            voxels[MathUtils.getIndexFromXYZ(x, y, z + 1, resolution)],
            f,
            g,
            voxels[MathUtils.getIndexFromXYZ(x, y + 1, z + 1, resolution)]
            );
    }