docs: def fixed_point_density_preserving(points, cells, *args, **kwargs):
      """Idea:
      Move interior mesh points into the weighted averages of the circumcenters
      of their adjacent cells. If a triangle cell switches orientation in the
      process, don't move quite so far.
      """
  
      def get_new_points(mesh):
          # Get circumcenters everywhere except at cells adjacent to the boundary;
          # barycenters there.
          cc = mesh.cell_circumcenters
          bc = mesh.cell_barycenters
          # Find all cells with a boundary edge
          boundary_cell_ids = mesh.edges_cells[1][:, 0]
          cc[boundary_cell_ids] = bc[boundary_cell_ids]
          return get_new_points_count_averaged(mesh, cc)
  
      mesh = MeshTri(points, cells)
      runner(get_new_points, mesh, *args, **kwargs)
      return mesh.node_coords, mesh.cells["nodes"]