Beispiel #1
0
    public VoxelOctree(int3 cords, int size, int nodeMinSize)
    {
        Cords = cords;

        Count = 0;
        node  = new VoxelOctreeNode <TType>(new int3(), size, nodeMinSize);
    }
Beispiel #2
0
    private void Subdivide()
    {
        subNodes = new VoxelOctreeNode <TType> [8];
        for (int i = 0; i < subNodes.Length; i++)
        {
            var point = Position;

            if ((i & 4) == 4)
            {
                point.x += Size / 2;
            }
            if ((i & 2) == 2)
            {
                point.y += Size / 2;
            }
            if ((i & 1) == 1)
            {
                point.z += Size / 2;
            }

            subNodes[i] = new VoxelOctreeNode <TType>(point, Size / 2, minSize);
        }
    }