docs: def get_resampled_top_edge(self, angle_var=0.1):
          """
          This methods computes a simplified representation of a fault top edge
          by removing the points that are not describing a change of direction,
          provided a certain tolerance angle.
  
          :param float angle_var:
              Number representing the maximum deviation (in degrees) admitted
              without the creation of a new segment
          :returns:
              A :class:`~openquake.hazardlib.geo.line.Line` representing the
              rupture surface's top edge.
          """
          mesh = self.mesh
          top_edge = [Point(mesh.lons[0][0], mesh.lats[0][0], mesh.depths[0][0])]
  
          for i in range(len(mesh.triangulate()[1][0]) - 1):
              v1 = numpy.asarray(mesh.triangulate()[1][0][i])
              v2 = numpy.asarray(mesh.triangulate()[1][0][i + 1])
              cosang = numpy.dot(v1, v2)
              sinang = numpy.linalg.norm(numpy.cross(v1, v2))
              angle = math.degrees(numpy.arctan2(sinang, cosang))
  
              if abs(angle) > angle_var:
  
                  top_edge.append(Point(mesh.lons[0][i + 1],
                                        mesh.lats[0][i + 1],
                                        mesh.depths[0][i + 1]))
  
          top_edge.append(Point(mesh.lons[0][-1],
                                mesh.lats[0][-1], mesh.depths[0][-1]))
          line_top_edge = Line(top_edge)
  
          return line_top_edge