Refactored the edge_and_surface computation to get the norm and center too, refactored surface rendering