public async static Task<RoomGeometryViewModel> CreateFromRoom(Room room)
        {
            Data data = new Data();

            double[] projectedEdgeHeights = room.Edges.Select(e => e.ProjectedHeight).ToArray();
            double focalDistance = await data.GetFoucsDistance();

            List<double> distances = Measurer.GetEdgeDistances(
                projectedEdgeHeights,
                focalDistance,
                room.ProjectedReferenceHeight,
                room.ActualReferenceHeight);

            List<double> orientations = room.Edges.Select(e => e.ZRotation).ToList();

            List<double> actualWallSizes = Measurer.GetActualWallSizes(distances, orientations);

            RoomGeometryViewModel roomGeometry = new RoomGeometryViewModel(distances, orientations, actualWallSizes);

            return roomGeometry;
        }