Extracting Surface Dimensions from Point Cloud

I would like to extract the basic surface dimensions/coordinates (3 walls, floor, etc…) of a room from the point cloud generated by the Astra.

Could anyone recommend the best way to get started on this?

Should I use OpenNI with a framework like point cloud library, or use the Astra SDK directly? Any tips would be helpful.