Is there an official specification for the XYZ format for point clouds?
I've been searching all over and I didn't find it. I've seen that there are some files which line contains:
points coordinates, (X Y Z for each point )
others contain coordinates plus colors, (X Y Z R G B for each point )
there are even others that have an "Intensity" parameter.
I need to consider all the possibilities.
No, there is not an official specification about the .xyz format for point clouds.
The .xyz format can be considered as part of a more general type of file formats: ASCII point cloud. You can consider members of this group many other extensions like: .asc,.txt,.pts
The problem is that because of that lack of specification the contents of the file may vary according to the creator.
The most logical thing would be that the first 3 columns always represent the X,Y,Z coordinates and the rest of the columns represent some scalar field associated to that point (Maybe R,G,B values, or Nx,Ny,Nz, etc)
If you want to consider all the possibilities you would need to take in account not only a variable number of columns but also the ASCII character used for separating each column and the possible existence of 1 or more "header" lines at the beggining of the file.
The best ASCII point cloud loader that I'm aware of is the included in CloudCompare.
Here is a screenshot of the dialog:
And a link to the source code.