def METHOD_NAME(self, points, min_distance_inliers, verbose=True, output_inliers=True):
    """Fit plane to points
    Parameters
    ----------
    points : ndarray
        (n x 3) array containing points of point cloud
    min_distance_inliers : float
        Points with located within this distance from the plane are kept
    verbose : bool, optional
        Enable or disable verbose output. Default: True
    output_inliers : bool, optional
        Enable or disable outputting of inliers. Default: True
    Returns
    -------
    ndarray (float64)
        (vector of length 4) Coefficients of plane
    list of ndarray of length 3
        (list of ndarray vectors of length 3) Inlier points
    """
    # Coeffs: apex(x, y, z), axis(x, y, z) and theta
    coefficients = np.array([1, 0, 0, -1.5], dtype=np.float64)
    bounds = ([-1.0, -1.0, -1.0, -np.inf], [1.0, 1.0, 1.0, np.inf])
    if verbose:
        verb_level = 2
    else:
        verb_level = 0
    ret = least_squares(
        self.residuals,
        coefficients,
        bounds=bounds,
        args=([points]),
        ftol=None,
        xtol=1e-9,
        loss="soft_l1",
        verbose=verb_level,
        max_nfev=5000,
    )
    self.from_coeffs(ret.x)
    inliers = None
    if output_inliers:
        inliers = []
        for p in points:
            if self.distance(p) < min_distance_inliers:
                inliers.append(p)
    if verbose:
        print("Fitted plane with:")
        print("\t Coefficients:", self.coeffs)
        print("\t With", len(inliers), "inliers")
        pitch_offset_deg = atan2(self.coeffs[2], self.coeffs[0]) * 180 / pi
        print("\t Pitch offset from x-axis: ", pitch_offset_deg, "°")
        yaw_offset_deg = atan2(self.coeffs[1], self.coeffs[0]) * 180 / pi
        print("\t Yaw offset from x-axis:   ", yaw_offset_deg, "°")
    return self.coeffs, inliers