function [levels, averageLevelHeight, missingLayers] = SplitToLevels(data)
%% Split the data on the sets of points with the same height.
z = data(:, 3);
uniqueHeights = unique(z);
levelsSize = size(uniqueHeights, 1);
levels = cell(levelsSize, 1);
averageLevelHeight = 0;
missingLayers = false;
for i = 1:levelsSize
heightIndices = z == uniqueHeights(i, 1);
levels{i, 1} = data(heightIndices, :);
if (i > 1)
averageLevelHeight = averageLevelHeight + ...
uniqueHeights(i, 1) - uniqueHeights(i - 1, 1);
end
end
averageLevelHeight = averageLevelHeight / (levelsSize - 1);
for i = 1:levelsSize
heightIndices = z == uniqueHeights(i, 1);
levels{i, 1} = data(heightIndices, :);
if (i > 1)
levelHeight = uniqueHeights(i, 1) - uniqueHeights(i - 1, 1);
if max(levelHeight, averageLevelHeight) / min(levelHeight, averageLevelHeight) > 1.2
missingLayers = true;
break;
end
end
end
end