An algorithmic design method for structural glass roof structures