Get new edge points for each edge (new data struct, with id of touching faces)
Get new vertex points (new data struct, with id of touching faces)
Update faces with the new face points, edge points and vertex points.
Update the mesh (vertices, edges and faces) after smoothing it.
Add some comments and debug prints