public VoxelOctree(int3 cords, int size, int nodeMinSize) { Cords = cords; Count = 0; node = new VoxelOctreeNode <TType>(new int3(), size, nodeMinSize); }
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); } }